Подтвердить что ты не робот

Переход от .NET к Java

Возможный дубликат:
Советы по переходу с С# на Java?

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

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

4b9b3361

Ответ 1

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

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

Я читал Jon Skeets "С# In Depth", поэтому я получил признательность за некоторые приятные вещи, которые были добавлены в С#, выходящие за пределы 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.

Ответ 2

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

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

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

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

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

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

Ответ 3

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

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

Ответ 4

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

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

Удачи!:)

Ответ 5

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