从.NET迁移到Java

时间:2010-08-19 10:52:43

标签: c# java .net java-ee

  

可能重复:
  Tips for moving from C# to Java?

作为一个相当有经验的.NET开发人员(从1.0开始),我在本地看到了很多有趣的工作,主要集中在Java EE,ESB,WebSphere,JSP等。现在,我很熟悉与大多数.NET“技术”一样,但Java是一个谜。我在大学(2003 ish)做了一些J2SE编程,但后来没有多少。

有没有人做过同样的过渡(或相反的过渡)并且可以分享一些信息,警告,真的! .NET和Java技能组的可比性如何,以及转换的容易程度如何?

5 个答案:

答案 0 :(得分:8)

我遇到了另一个问题:Java EE到.NET。

我在两种语言之间映射语言结构方面没有太多麻烦。用一种语言或另一种语言来计算关系数据库访问并不困难。循环是循环,ifs是ifs,kids。不用担心。

我已经阅读过Jon Skeets“C#In Depth”,所以我对C#中添加的超越Java的一些好东西表示赞赏:LINQ,闭包,代表等。

我的问题与其他细节有关。

Visual Studio对我来说是一个谜。我习惯了IntelliJ。 ReSharper帮助。但是和任何其他IDE一样,在你熟悉它之前,你将会磕磕绊绊,试图将你知道如何在另一个系统上做得好的东西映射到新系统。 Visual Studio Express似乎不是一回事。

我也不了解组织,打包和部署应用程序。我对.NET模块一无所知,部署到IIS而不是WebLogic等Java EE应用服务器。

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

我根本没有用手指尖。这就像一个在国外的人,有一本语言的指导书:“我该怎么说?”我只是不熟悉.NET。

我真的可以使用一个好项目,并与经验丰富的指南长达一个月的时间,让我超越驼峰。但那不是我在项目中的角色,所以我被困住了。

我更习惯在Python中使用相同的路径。我有来自JetBrains的PyCharm,所以IDE不是问题。 Python模块与我习惯的第三方开源资源一样丰富且易于使用。我有一本很棒的书“核心Python”,它正在引导我。而且我使用的语言越多,我就越喜欢它。我有相同的打包和部署问题,但我更有信心用Python自己解决它们而不是.NET。

答案 1 :(得分:4)

在我看来,从语言的角度来看,Java和.NET(C#)之间的区别并不大。我自己经常使用两者,虽然我使用的是Java而不是C#。

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

因此,在这方面最好的事情是查看您在.NET中解决的常见问题,并尝试用Java解决它们(部分),以了解那里使用的库和框架。

平台之间的另一个不同之处可能是Java EE环境中Application Server的概念,因为我认为.NET没有与托管应用程序相同的概念。

关于IDE的旁注

特别是在重构支持方面,您可以在Eclipse,IntelliJ中找到Java工具,NetBeans比开箱即用的Visual Studio更丰富。虽然ReSharper似乎为Visual Studio添加了许多缺少的功能。

答案 2 :(得分:2)

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

对于大多数企业商店,我会专注于J2EE tutorial中的“标准”技术,但如果你曾经获得项目的技术主管,那么就要花大量时间研究最佳的工具集。你的风格。

答案 3 :(得分:1)

我最近进行了这种转变。像你一样,我从1.0开始使用.NET进行编程。我花了几个星期才真正感到舒服 - 但最终来自C#,并不是很困难。最令人困惑的事情是从基于.NET委托的事件处理范例转变为基于Java的基于接口的事件处理范例。你没事。

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

祝你好运! :)

答案 4 :(得分:0)

我建议你从一个小项目开始,使用类似于.NET的体系结构,比如JSP,就像ASP或JSF,它类似于Java Server Faces。那么你不需要太多关于这个概念,你会更多地了解语言差异和IDE,部署和这些东西。然后,您可以使用适当的J2EE应用程序。