2010-08-19 3 views
18

Возможные Дублировать:
Tips for moving from C# to Java?Переход от .NET для Java

Как довольно опытный разработчик .NET (начиная с версии 1.0), я видел немало интересных рабочих мест в локальную область, в первую очередь ориентированную на Java EE, ESB, WebSphere, JSP и т. д. Теперь я хорошо знаком с большинством технологий .NET, но Java - загадка. Я немного программировал J2SE в университете (2003 год), но ничего особенного.

Кто-нибудь сделал тот же переход (или наоборот) и мог поделиться какой-то информацией, оговорками, что-нибудь действительно! Насколько сопоставимы навыки .NET и Java, и насколько легко можно сделать переход?

+0

Какие термины вы использовали до сих пор? –

+0

Связанный: http://stackoverflow.com/questions/295224/what-are-major-differences-between-c-and-java –

+0

Ну, по сути, я ищу фундаментальные различия между всем, а не синтаксическими различиями между C# и Java. Например, что EJB коррелирует с .NET? – Jamie

ответ

8

Я столкнулся с той же проблемой, что и в ином случае: Java EE to .NET.

У меня нет слишком много проблем с языковыми конструкциями языков между двумя языками. Нетрудно найти доступ к реляционным базам данных на одном языке или другом. Петли - это петли, если они есть, дети. Не стоит беспокоиться.

Я читал Джон Skeets «C# In Depth», так что я получил признательность за некоторые из хороших вещей, которые были добавлены в C#, которые выходят за рамки Java: LINQ, затворов, делегатов и т.д.

Мои проблемы были связаны с другими деталями.

Visual Studio для меня загадка. Я привык к IntelliJ. ReSharper помогает. Но, как и любая другая среда, пока вы не познакомитесь с ней, вы будете спотыкаться, пытаясь сопоставить что-то, что вы знаете, как добиться успеха в другой системе. Visual Studio Express, похоже, не то же самое.

Я также не осведомлен о организации, упаковке и развертывании приложений. Я в темноте на модулях .NET, развертывание в IIS вместо сервера приложений Java EE, например WebLogic и т. Д.

Использование JUnit и TestNG в моих проектах Java является второй натурой. У NUnit нет такого же уровня комфорта.

У меня просто нет его на кончиках пальцев. Это похоже на человека в чужой стране с путеводителем на язык: «Как я могу это сказать?» Я просто не владею .NET.

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

Мне удобнее брать тот же путь с Python. У меня есть PyCharm из JetBrains, поэтому среда IDE не является проблемой. Модули Python столь же многочисленны и просты в использовании, как и сторонние материалы с открытым исходным кодом, к которым я привык. У меня есть замечательная книга «Core Python», которая меня пропускает. И чем больше я использую этот язык, тем больше мне это нравится. У меня такие же проблемы с упаковкой и развертыванием, но я уверен, что самостоятельно их разрешу с помощью Python, чем с .NET.

+0

Просто примечание. В Full Visual Studio встроено очень хорошее модульное тестирование.Вы просто щелкните по методу, нажмите «Создать тест», и он создает тест для вас в отдельном проекте. Если этот метод был закрытым, защищенным или внутренним, он даже создает для него объект-аксессор, который позволяет модульному тесту получить доступ ко всем методам, как если бы они были общедоступными (что иногда очень удобно и сэкономит вам трудность написания подклассов для проверки защищенных методов) , Я использовал NUnit после того, как начал с этих модульных тестов, и NUnit просто чувствует неудобство в сравнении. – dbemerlin

+0

Даже с волшебником вы все равно должны положить мясо в методы. И если ваш мастер просто даст вам «счастливый путь», я бы сказал, что это делает вам плохую услугу. Иногда люди, которые влюбляются в волшебников, должны сделать шаг назад. – duffymo

+0

Visual Studio - один из лучших редакторов в мире, это может быть загадкой для вас, потому что вы очень много нового для него, и вы также можете добавить к нему плагин resharper, который добавит к нему еще несколько технологий, но VS 2013, а теперь VS 2014 загружены большинством дополнительных инструментов. – Ambuj

2

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

Я хотел бы сосредоточиться на «стандартных» технологиях в J2EE tutorial для большинства корпоративных магазинов, но если вы когда-либо получите техническое руководство по проекту, будьте готовы потратить много времени на изучение оптимального набора инструментов для вашего стиля.

4

На мой взгляд, разница между Java и .NET (C#) не такая большая, с точки зрения языка. Я сам часто использую оба, хотя я использую больше Java, чем C#.

Проблема заключается скорее в платформе ниже и библиотеках классов, которые имеют разную структуру и предоставляют иногда разные концепции для одного и того же. Главное в моем чувстве заключается в том, что .NET больше зависит от встроенных/поставщиков библиотек непосредственно от Microsoft, тогда как на Java Plattform большинство библиотек и фреймворков поступают из внешних источников платформы.

Итак, самое лучшее в этом отношении - это поиск частых проблем, которые вы решили в .NET, и попытайтесь их решить (частично) на Java, чтобы понять, какие библиотеки и фреймворки используются там.

Другая особенность, которая отличается от платформы, может быть концепцией сервера приложений в среде Java EE, поскольку я считаю, что .NET не имеет эквивалентной концепции для размещения приложений.

Sidenote относительно IDE

Особенно в отношении рефакторинга поддержки Java Набор инструментов вы найдете в Eclipse, IntelliJ, NetBeans гораздо богаче, чем в Visual Studio из коробки. Хотя ReSharper, похоже, добавляет большую часть недостающих функциональных возможностей в Visual Studio.

+0

И IntelliJ богаче, чем Eclipse и NetBeans. ReSharper закрывает этот пробел для Visual Studio. – duffymo

+0

Я добавил это к своему ответу. –

1

Я недавно сделал этот переход. Как и вы, я запрограммировал использование .NET с 1.0. Мне потребовалось несколько недель, чтобы по-настоящему почувствовать себя комфортно - но в конечном счете, из C#, это было не очень сложно. Самое запутанное начиналось с перехода от парадигмы обработки событий на основе делегата .NET к парадигме обработки событий на основе интерфейса Java. Вам будет хорошо.

Что касается IDE - я по-прежнему предпочитаю Visual Studio для Eclipse, но у каждого будет свое мнение об этом. Eclipse обладает множеством функций и расширяется, но меня больше интересует базовая функциональность, которую я использую каждый день. Я никогда не понимал, сколько кода я написал с помощью клавиши TAB, пока я не переключился с Visual Studio на Eclipse. Я очень скучаю по быстрому автозаполнению. Если есть способ включить аналогичную функцию в Eclipse (вместо ввода CTRL-SPACE -> ENTER), пожалуйста, дайте мне знать. :)

Удачи вам! :)

0

Я предлагаю вам начать с небольшого проекта, используя архитектуру, похожую на .NET, такую ​​как JSP, которая похожа на ASP или JSF, которая похожа на Java Server Faces. Тогда вам не нужно сильно беспокоиться о концепции, в которой вы получите больше различий между языками и IDE, их развертывания и всего этого. Затем вы можете найти подходящее приложение J2EE.

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