2010-08-19 58 views
18

可能重複:
Tips for moving from C# to Java?移動從.NET到Java

一個相當有經驗的.NET開發人員(自1.0),我見過的不少有趣的工作本地區主要關注Java EE,ESB,WebSphere,JSP等。現在,我對大多數.NET「技術人員」都非常熟悉,但Java是一個謎。我在大學做了一些J2SE編程(2003 ish),但是沒有什麼。

有沒有人做過相同的過渡(或相反的過渡),可以分享一些信息,注意事項,任何事情! .NET和Java技能集的可比性如何,以及人們如何輕鬆地進行轉換?

+0

您目前使用了哪些搜索詞? – 2010-08-19 10:55:10

+0

相關:http://stackoverflow.com/questions/295224/what-are-major-differences-between-c-and-java – 2010-08-19 10:55:11

+0

好吧,基本上我正在尋找整個事情之間的根本區別,而不是語法差異在C#和Java之間。 例如,EJB在.NET中與什麼關聯? – Jamie 2010-08-19 11:00:53

回答

8

我遇到了相反的問題:Java EE to .NET。

我對這兩種語言之間的映射語言結構沒有太多的麻煩。用一種語言或其他語言來計算關係數據庫訪問並不困難。循環是循環,如果是ifs,孩子。不用擔心。

我讀過喬恩長柄水杓「C#在深度」,所以我已經得到了讚賞,一些已添加到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解決它們。

+0

只需注意:Full Visual Studio內置了非常好的單元測試。你只需要點擊一個方法,點擊「創建測試」,它會在一個單獨的項目中爲你創建測試。如果方法是私有的,受保護的或者內部的,它甚至爲它創建一個訪問器對象,這允許單元測試訪問所有方法,就好像它們是公共的一樣(這有時非常方便,並且節省了編寫子類來測試受保護方法的麻煩) 。在開始進行單元測試之後,我使用了NUnit,NUnit在比較時感覺笨拙。 – dbemerlin 2010-08-19 12:05:18

+0

即使有一個嚮導,你仍然必須把肉放在方法中。如果你的嚮導只給你「開心路徑」的測試,我會說這是對你的傷害。有時候,愛上巫師的人應該退後一步。 – duffymo 2010-08-19 22:17:11

+0

Visual Studio是世界上最好的編輯之一,它對你來說可能是個謎,因爲你對它非常新穎,你也可以添加resharper插件,它會增加更多的技術力量,但VS 2013和現在的VS 2014都加載了大部分額外的工具。 – Ambuj 2015-04-03 17:42:47

2

只要你遠離複雜的類加載器交互,語言和標準庫應該感到家,對於來自微軟商店的人來說,恐嚇什麼是壓倒性的庫和中間件選項,而語言很簡單,生態系統很深,很深,沒有真正的標準選擇。

我會專注於大多數企業商店的J2EE tutorial中的'標準'技術人員,但如果您曾經在項目中獲得技術帶頭人,請準備花大量時間爲您的風格研究最佳工具集。

4

在我看來,從語言的角度來看,Java和.NET(C#)的區別並不大。雖然我比C#使用更多的Java,但我自己經常使用它們兩者。

問題更多的是下面的平臺和具有不同結構的類庫,併爲同一事物提供了有時不同的概念。在我看來,主要的原因在於,.NET更多的是由捆綁/供應商庫直接從微軟驅動,而在Java Plattform上,大多數庫和框架都來自平臺外部來源。

所以在這方面最好的事情是看看你在.NET中解決的頻繁問題,並嘗試在Java中解決它們(部分),以感受那裏使用的庫和框架。

平臺之間的另一件事情可能是Java EE環境中的Application Server的概念,因爲我認爲.NET沒有與宿主應用程序等效的概念。

關於IDE

特別是關於重構的旁註支持Java工具,你會在Eclipse中的IntelliJ發現,NetBeans是不是在Visual Studio更豐富的開箱即用。雖然ReSharper似乎將大部分缺失的功能添加到Visual Studio中。

+0

而IntelliJ比Eclipse和NetBeans都豐富。 ReSharper縮小了Visual Studio的差距。 – duffymo 2010-08-19 12:03:39

+0

我已經添加到我的答案。 – 2010-08-19 12:14:23

1

我最近做了這個轉換。像你一樣,我從1.0開始使用.NET進行編程。我花了幾周的時間才真正舒服 - 但最終來自C#,並不是很困難。最令人困惑的事情是從.NET基於委託的事件處理模式轉變爲基於Java的基於接口的事件處理模式。你會沒事的。

關於IDE - 我仍然偏愛Visual Studio到Eclipse,但每個人都會對此有自己的看法。 Eclipse有很多功能,並且可以擴展,但我更關心每天使用的基本功能。直到我從Visual Studio切換到Eclipse之前,我從來沒有意識到使用TAB鍵編寫了多少代碼。我真的很想念快速自動完成。如果有方法可以在Eclipse中打開類似的功能(而不是輸入CTRL-SPACE - > ENTER),請告訴我。 :)

祝你好運! :)

0

我建議你從一個使用類似於.NET的體系結構的小型項目開始,就像JSP或類似於Java Server Faces的JSP一樣。然後,您不需要爲這個概念煩惱太多,這些概念將更多地融入語言差異和IDE,部署和這些東西。然後你可以選擇一個合適的J2EE應用程序。