Я программист, который сделал 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 и купили самых умных людей в мире, чтобы написать его). Вы будете платить больше за лицензии, но, вероятно, меньше на людей.
Уже поздно, я устал и не хочу перечитывать. Я должен, я знаю. Но не будет. У меня нет орфографического чека, поэтому может быть много опечаток. Мой первый язык - голландский, мой второй французский и мой третий - английский (я живу в Бельгии, мы сложны), так что, полагаю, мне позволено некоторая опечатка? :)
Надеюсь, это даст некоторую ясность для вас.
Отличные ссылки, спасибо, что разместили их. – duffymo