2009-02-05 3 views
6

Мы думаем о объединении технологии .NET с технологией Java (WCF, JBoss/ESB, MOM, WPF, WF), и мне нужно иметь высокоуровневый представление о том, что такое яблоки и апельсины в .NET 3.5 и Java мирах.Ищите статью об оценке архитектуры архитектуры .NET 3.5/J2EE

Кто-нибудь знает о хорошей, ясной статьи или еще лучше простой график, который отвечает на вопросы, такие как:

  • WCF в мире Java является ______
  • эквивалент WPF в мире Java является _____
  • Замкнутая вещь JBoss в мире .NET является _____
  • виртуальная машина и CLR, по существу одинаковы для этих различий, за исключением: ....
  • в мире Java вы не имеете конц ept of WF/WCF/WPF, вместо этого у вас есть ....
  • в мире Java пока нет «LINQ», но вы можете использовать ___
  • ближайший доступ к службам данных ADO.NET в Java-мир - это ...

Я не собираюсь обсуждать это, поэтому я не ищу «боевые точки», мне просто нужна нейтральная «какая-то» диаграмма, сравнивающая два мира.

ответ

4

Очень сложно найти хорошую информацию об этом, еще более сложную информацию в актуальном состоянии. Большинство из них относится к .NET 1.1 или 2.0.

Во всяком случае, я приведу здесь некоторые ссылки, которые могут представлять интерес:

Надежда это помогает! Я буду постоянно обновлять это, когда останавливаюсь на какой-то полезной информации.

+1

Отличные ссылки, спасибо, что разместили их. – duffymo

6

Я не знаю хорошей, четкой диаграммы, но отвечу на ваши вопросы. (Предупреждение - я разработчик J2EE, и в последний раз, когда я программировал Microsoft, это было с классическим ASP и VB 6. Я не смогу оценить технологии MS, но у меня есть хорошее чувство многого из эквивалентов Java)

  • WCF:. WCF, кажется, об упрощении веб-служб. Эквивалент J2EE будет Apache CXF, который использует аннотации, доступные в спецификации JAX-WS 2.0, чтобы упростить создание веб-служб.
  • WPF: Это легко. Технология Microsoft выглядит как прямое копирование JavaServer Faces. Я не могу сказать, какой из них лучше, но они очень похожи друг на друга. EDIT: Я был слишком быстр с этой отметкой - JSF не работает на рабочем столе, как полагается WPF. Основные технологии аналогичны, но JavaFX может быть лучшим сравнением.
  • JBoss in .NET: Кто-то может захотеть установить меня прямо, но я чувствую себя достаточно уверенно, говоря, что этого не существует. Думаю об этом. Вы запрашиваете бесплатный продукт с открытым исходным кодом для запуска проприетарной, несвободной спецификации. Если вы идете с Microsoft, вы застряли в IIS так же сильно, как и в Windows.
  • JVM vs. CLR: Я нашел бумагу, имеющуюся в наличии here, что предполагает, что между ними нет или нет разницы. Много аргументов между двумя, которые я видел, сосредотачивается на слабых (реальных или воспринимаемых) Windows в качестве серверной технологии.
  • Что такое Java-мир вместо WF/WPF/WCF: Теперь вот где, на мой взгляд, мир Java имеет реальные преимущества перед MS. Там есть множество фреймворков, поэтому вы обязательно найдете что-то, что соответствует вашим потребностям (бесплатно!). Вы можете использовать Spring MVC или Struts 2.0 или Wicket. Для вашего уровня базы данных у вас есть выбор Hibernate или Ibatis. Посмотрите на this list рамок веб-служб. Java содержит в общей сложности девять фреймворков. У Microsoft есть один: WCF.
  • LINQ Java Equivalent: Опять же, кто-то может меня поправить, но я не уверен, что есть эквивалент. Преимущество Microsoft.
  • ADO.NET Data Services: Это выполнимо на Java через JPA и RESTful Web Services, но я думаю, что в мире MS немного проще реализовать.

Там еще одна области, где я воспринимаю Microsoft будет ползучим впереди сообщества Java: они делают некоторые умные инвестиции в функциональном программировании, в то время как Java люди будут препираться бесцельно о лучшем способе добавить затворы для Java. Есть также некоторые новые технологии - OSGi, а именно - для обработки сложной сложности, связанной с огромным количеством инфраструктур Java. Поскольку MS имеет более жесткий контроль над своим доменом, им легче справляться с их различными компонентами.

И тогда есть человеческие соображения: кто вы можете найти для работы какие технологии и сколько найма для X будет стоить против найма на Y. Но это правда, независимо от того, что вы выберете.

Надеюсь, это поможет!

+0

просветительский ответ, сравнение WPF/JavaServer Faces было неожиданностью, что же тогда XAML в Java World? Кроме того, есть ли продукт (ы), который решает дихотомию дизайнера/разработчика, а также Blend/Visual Studio? –

+0

Есть определенно несколько вещей, которые WPF приносит к таблице, которой не хватает JSF. JSF не может делать настольные приложения очень хорошо - не удивительно, учитывая, что Java поддерживает все настольные платформы. И поддержка конструкторских инструментов всегда была очень плохой в JSF. В MyEclipse есть некоторые инструменты (продолжение) – rtperson

+0

... но они не особенно полезны. Но ядро ​​этих двух технологий кажется очень похожим: набор инструментов на базе XML, компонент/виджет. Вы можете взглянуть на JavaFX, прямого конкурента Silverlight и, вероятно, на лучшее сравнение. – rtperson

0

У ИМО слишком много фреймворков для Java. Та же проблема с десятками Linux-дистрибутивов ...

Конечно, это может сказать то же самое для .NET, но это просто яснее. что мой +0,02

+1

Смешно, я разочарован философией .NET/MS: «Вот как это делается, делайте это по-нашему или уходите!». –

+0

Согласен. Есть очень определенный недостаток в том, что большая центральная организация решает, что сработает для вас. Когда я был разработчиком MS, одним из моих самых больших разочарований было то, что если бы MS хотела, чтобы вы его использовали, у вас не было альтернатив, даже если технология была плохой, багги или просто не работала. – rtperson

+0

Как разработчик .Net, я думаю, что выбор хорош. Я удивляюсь, как часто материал MS является повторным изобретением существующего инструмента, который существует навсегда и часто переносится с Java. – danswain

0

На посту rtperson в:

.NET имеет NHibernate и iBatis.NET. Не так хорошо, как их Java-коллеги, кажется, но достаточно хороши.

На самом деле, есть много проектов с открытым исходным кодом на стороне .NET: проект Castle (MVC, IoC), NUnit, Spring.NET ... И давайте не будем забывать о Mono как реализации с открытым исходным кодом ядро .NET.

0

Я программист, который сделал C++, Java, а теперь развитие C#.

Вот мой ответ на первоначальный вопрос:

WCF = EJBs/J2EE-сервер (например, JBoss)

WPF = Качели (JavaFX)

JBoss = Я не думаю потребности WCF сервер, просто запускается в среде .net. Не уверен в этом, хотя и все еще учась. JVM vs CLR: CLR может делать все, что может JVM, но CLR также может: запустить неуправляемый код, разделить один процесс на несколько логических (AppDomains). Имеет очень хорошую C++-интеграцию по сравнению с java, CLR просто лучше. Язык C# также лучше, чем java (Lambda's, delegetes, деревья выражений, ссылки, структуры, методы расширения, частичные классы, общие без бокса. Здесь они сделали очень хорошую работу!), Но работают только на окнах.

WF = не знаю, если она существует, может

Linq = В настоящее время не может быть реализована в Java, потому что вам нужно: лямбда-х, деревья выражений и методы расширения

ADO.NET DataServices: Я не» t знать что-то симулятивное в java, но это может быть легко реализовано. Вероятно, существует в каком-то проекте открытия.

Сделав как это мой вывод о том, как они относятся:

.net легче учиться, очень так, но столь же мощный. Причина этого в том, что назначение методов в api является более последовательным, решения лучше целенаправлены, а некоторые api разработаны гораздо лучше (WPF - пример этого, не могу сказать этого для других апи, все еще изучая). Из-за этого программисты .net будут стоить меньше.

Разработка приложения в C# будет в 1,5-2 раза быстрее, чем на Java. Там IDE (визуальная студия) чувствует себя лучше. Вы можете продлить его через 20 минут, без дерьма! Попытка понять механизмы расширения eclypse - непростая задача! Функциональность рефакторинга кода Eclipse выигрывает в одной ноге. Визуальная студия выигрывает у многих других. (Возможно, имеются коммерческие плагины?)

При использовании .Net вам, возможно, придется платить лицензии, для операционной системы и для IIS. Для базы данных вы можете уйти с MySQL.

Для java вам не придется платить лицензии. Однако на самом деле вам все равно придется. Серьезные приложения запускают Redhad или некоторые другие бесплатные ОС. Веб-сервер может быть полностью бесплатным. Кроме того, эти системы сложнее управлять, поэтому ваш администратор, вероятно, будет стоить дороже.

Я сертифицированный разработчиком Java (92%), а также сертифицированный веб-сервис (JSP, сервлеты, 87%) и сертифицированный разработчик веб-компонентов (EJB, 82%). Я также являюсь сертифицированным разработчиком Microsoft (90%) и сертифицированным разработчиком WPF (90%). Экзамены Java сложнее экзаменов Microsoft. Это потому, что экзамены по джасу задают многие детские нерелевантные вопросы.Как то, что является правильным именем метода для сохранения объекта: SaveChanges(), PersistChanges(), EmitChanges() или SendChangesToDatabase(). Кто-нибудь знает, что знать имя метода не полезно. Вы IDE предоставит вам правильное имя. И если у вас действительно были имена методов, настолько похожие друг на друга, что у вас очень плохая и запутанная апи! Важно то, что вы знаете, почему вы это называете! Экзамены Microsoft больше сосредотачиваются на том, почему именно так. На мой взгляд, экзамены Microsoft действительно помогают вам стать лучшим программистом. Экзамены Java также полезны, но больше похожи на изучение телефонной книги; это очень сложно, но бесполезно.

Подводя итог, я считаю, что C# является технически суперэкономным (было бы логично, поскольку они многому научились у java и купили самых умных людей в мире, чтобы написать его). Вы будете платить больше за лицензии, но, вероятно, меньше на людей.

Уже поздно, я устал и не хочу перечитывать. Я должен, я знаю. Но не будет. У меня нет орфографического чека, поэтому может быть много опечаток. Мой первый язык - голландский, мой второй французский и мой третий - английский (я живу в Бельгии, мы сложны), так что, полагаю, мне позволено некоторая опечатка? :)

Надеюсь, это даст некоторую ясность для вас.

Смежные вопросы