Переход с .NET на Java [дубликаты]

18
задан Community 23 May 2017 в 12:10
поделиться

5 ответов

Я столкнулся с той же проблемой, идя другим путем: Java EE к .NET.

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

Я читал Jon Skeets "C# In Depth", так что я получил представление о некоторых приятных вещах, которые были добавлены в C# и которые выходят за рамки Java: LINQ, замыкания, делегаты и т.д.

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

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

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

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

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

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

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

8
ответ дан 30 November 2019 в 09:18
поделиться

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

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

2
ответ дан 30 November 2019 в 09:18
поделиться

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

0
ответ дан 30 November 2019 в 09:18
поделиться

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

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

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

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

Замечание относительно IDE

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

4
ответ дан 30 November 2019 в 09:18
поделиться

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

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

Удачи! :)

1
ответ дан 30 November 2019 в 09:18
поделиться