C# 从.NET迁移到Java

C# 从.NET迁移到Java,c#,java,.net,jakarta-ee,C#,Java,.net,Jakarta Ee,可能重复: 作为一名经验丰富的.NET开发人员(从1.0开始),我在本地区看到了很多有趣的工作,主要集中在JavaEE、ESB、WebSphere、JSP等方面。现在,我对大多数.NET“技术”都很熟悉,但Java是一个谜。我在大学时做过一些J2SE编程(2003年),但此后就没做什么了 是否有人做出了相同的转变(或相反的转变),并可以分享一些信息,警告,任何东西真的!NET和Java技能集有多大的可比性,转换起来有多容易?我在另一方面也遇到了同样的问题:Java EE到.NET 我在两种语言

可能重复:

作为一名经验丰富的.NET开发人员(从1.0开始),我在本地区看到了很多有趣的工作,主要集中在JavaEE、ESB、WebSphere、JSP等方面。现在,我对大多数.NET“技术”都很熟悉,但Java是一个谜。我在大学时做过一些J2SE编程(2003年),但此后就没做什么了


是否有人做出了相同的转变(或相反的转变),并可以分享一些信息,警告,任何东西真的!NET和Java技能集有多大的可比性,转换起来有多容易?

我在另一方面也遇到了同样的问题:Java EE到.NET

我在两种语言之间映射语言结构方面没有太多问题。用一种或另一种语言理解关系数据库访问并不困难。循环就是循环,如果就是如果,孩子们。不用担心

我读过Jon Skeets的“C#indepth”,因此我对添加到C#中的一些超越Java的好东西表示赞赏:LINQ、闭包、委托等

我的问题更多地与其他细节有关

Visual Studio对我来说是个谜。我已经习惯了。再竖琴有帮助。但和其他任何IDE一样,在熟悉它之前,您都会步履蹒跚,试图将您知道如何在另一个系统上做好的事情映射到新系统。VisualStudioExpress似乎与此不同

我也不知道如何组织、打包和部署应用程序。我对.NET模块一无所知,部署到IIS而不是像WebLogic这样的JavaEE应用服务器,等等

在Java项目中使用JUnit和TestNG是我的第二天性。我对努尼特没有同样的舒适感

我只是没有把它放在指尖上。这就像一个人在国外拿着一本语言指南:“我怎么说呢?”我对.NET不太流利

我真的需要一个好的项目和一个月的时间和一个经验丰富的导游来帮助我渡过难关。但这不是我在项目中的角色,所以我被卡住了


对于Python,我更愿意采用同样的方法。我有JetBrains的PyCharm,所以IDE不是问题。Python模块和我所熟悉的第三方开源软件一样丰富且易于使用。我有一本很棒的书《核心Python》,这本书一直在指导我。我使用的语言越多,我就越喜欢它。我也有同样的打包和部署问题,但我更相信我会用Python而不是.NET自己解决这些问题。

只要你远离复杂的类加载器交互,语言和标准库就应该有家的感觉,对于来自微软商店的人来说,最可怕的是大量的库和中间件选项,而语言简单,生态系统深刻,非常深刻,没有真正的标准选择


我会把注意力集中在大多数企业的“标准”技术上,但是如果你在一个项目上获得了技术领先地位,就要准备花大量时间研究适合你风格的最佳工具集。

在我看来,从语言的角度来看,Java和.NET(C#)之间的区别并没有那么大。我自己经常使用这两种语言,尽管我使用的Java比C语言更多

问题更多的是下面的平台和类库,它们具有不同的结构,有时为同一事物提供不同的概念。我的主要感觉是.NET更多地是由直接来自Microsoft的捆绑/供应商库驱动的,而在Java平台上,大多数库和框架都来自平台外部源

因此,在这方面最好的做法是查看您在.NET中解决的常见问题,并尝试用Java(部分)解决这些问题,以了解其中使用的库和框架

平台之间的另一个不同之处可能是JavaEE环境中的应用程序服务器的概念,因为我认为.NET没有与宿主应用程序等效的概念

关于IDE的旁注


特别是在重构支持方面,您可以在Eclipse、IntelliJ中找到Java工具,NetBeans比VisualStudio中的现成工具丰富得多。尽管ReSharper似乎为Visual Studio添加了许多缺失的功能。

我最近完成了这一转换。和你一样,我从1.0开始就使用.NET编程。我花了几周的时间才真正感到舒适——但最终,从C#开始,这并不难。最令人困惑的事情是从基于.NET委托的事件处理范式转向基于Java接口的事件处理范式。你会没事的

关于IDE,我仍然更喜欢VisualStudio而不是Eclipse,但每个人对此都有自己的看法。Eclipse有大量的特性,并且具有惊人的可扩展性,但我更关心的是我每天使用的基本功能。直到我从VisualStudio切换到Eclipse,我才意识到我使用TAB键编写了多少代码。我真的很怀念快速自动完成。如果有办法在Eclipse中打开类似的功能(而不是键入CTRL-SPACE->ENTER),请告诉我。:)


祝你好运!:)

我建议您从一个小项目开始,使用类似于.NET的体系结构,如JSP,类似于ASP或JSF,类似于Java服务器面。这样,您就不必为这个概念操心太多,您将更多地了解语言差异、IDE、部署等内容。然后你可以选择一个合适的J2EE应用程序。

到目前为止,你使用了哪些搜索词?相关:好吧,本质上我是在寻找整个事物之间的根本区别,而不是C#和Java之间的语法差异。例如,EJB在.NET中与什么相关?这可能是一个好问题……请看一看和中的