1.做爲一個科班出生的根正苗紅的軟件開發人員,我認爲如今的一羣年輕的程序員老是在討論JAVA 好仍是.NET 好的同時,我做爲一個作4年開發的.NET 程序員中間穿插了1年JAVA 開發的來講更加的具備發言的資格。html
2.其實做爲一個開發人員來講真的沒有必要說java 好仍是.net 好 其實我認爲沒有什麼可比較的。在我沒有作java以前我我的認爲微軟的VS 2017 IDE開發工具真的是很好用這個是無可厚非的。目前java的開發工具IDEA 2018 和Ecplise 也還挺好用。前端
3.我對任何一門語言都沒有宗教式狂熱崇拜,所以我也相對理性的對整個問題進行分析。 必要和技術進行談戀愛。順勢而爲,目前公司作的都是一些政府的項目,須要什麼技術開發咱們就學習什麼技術,沒比要執著於.NET開發 仍是java 開發。從16年5月份上手作java 開發 網上的文檔找找而後找了一些Java EE 的教學視頻 看看 和書籍看看 基礎語法部分都不用須要看太多的時間,基本上和C# 的語法差很少,可是java 給個人感受就是語法很Low 什麼都是須要配置,陪服務器配置環境配置以前我用網上java 的一個開源的框架 zheng是基於Spring+SpringMVC+Mybatis分佈式敏捷開發系統架構,提供整套公共微服務服務模塊:集中權限管理(單點登陸)、內容管理、支付中心、用戶管理(支持第三方登陸)、微信平臺、存儲系統、配置中心、日誌分析、任務和通知等,支持服務治理、監控和追蹤,努力爲中小型企業打造全方位J2EE企業級開發解決方案。我配置起來折騰了一天才跑起來整個項目,我當時就想若是是.NET 項目我就10-20分鐘足以看出來,跑起來一個javaWeb的項目真是不容易的。C# 的語法簡潔並且優美可是底層用的是微軟的集成的.netFramework 性能實在是不怎麼好,這個是無可厚非的,你能夠試一下用微軟的Linq lambda 表達式 或者參數化SQL ADO.NET 查詢一條數據 和用java 作個最基礎的JDBC 的查詢。性能快慢差的不是一點兩點的。可是說句心裏話,若是客戶對於開發語言和平臺沒有什麼要求,我仍是喜歡用.NET Core 開發 由於VS 2017 應用C# 語言開發的真是快作Web 項目我用使用WebApi+MVC+CodeFrist +BootStap3.4 開發真的是快,我前端目前仍是習慣使用BootStrap 並且移動端我仍是喜歡用WeUI 作開發。java
4.其實說句真心話我工做也有多年了,可是技術嘛也是在不斷的提升到最後工做找來換去的,最後仍是寫業務邏輯代碼,技術的本質我認爲沒有什麼變化,可是按照目前南京的行情以及整個互聯網的行情來看Java 的崗位確實是最多的。爲啥了由於國人更喜歡熱衷於開源,目前來講.NetCore 以及Mono 在Linux 運行也仍是不錯的。可是國人開發就是喜歡用Java 這個沒辦法迴避的。我做爲一個公司的項目負責人 兼任項目開發,目前我公司許多和政府合做的項目都是應用.Net開發的。.Net開發真的很快。程序員
5.從2018年開始公司進行不斷的進行招人,.Net 招聘了半年有面試的可是卻沒有合適的,Java 卻是招進來很多,幾年事後說不定南京就剩下咱們這一羣老傢伙了在作.Net 了。Java入門門檻會比較高一些可是有開發的基礎學什麼都比較快的,須要有足夠的毅力和百折不撓的精神,只要你能堅持下來你就能夠將不少人在入門門檻上就將不少競爭者甩在身後。.Net入門門檻比較低,裝上VisualStudio就能夠立刻進行開發,不須要進行太多的配置 這樣能夠很輕鬆的掌握入門.Net學習,是有很成就感的事情,能讓你有興趣進一步學習,可是你不能止步於此,所以你會發現身邊也有無數的人也是「輕鬆入門」,你就須要繼續深刻學習,深刻學習一樣須要毅力和探索的精神。面試
6.目前公司的技術我決定後面的政府的新項目都採用Java Web 來進行開發,我學習JavaWeb 也接近一年多了,一邊摸索一邊幹項目時間久了也就習慣了,真心話 Java 的開發工具啥的真是不太人性化,可是沒辦法只能忍痛割愛了。上手作Java 開發,公司的要求,其實技術學到3-5年 技術也就基本純熟了,你說後面你在深刻學習,只是爲了準備而已 ,什麼分佈式 緩存 啥的客戶不要求,那你作這個工做毫無心義對吧,數據量就200-300w 左右。spring
其中實際應用的開發的工具後端
職責 | .NET平臺 | Java平臺 | 解釋 |
---|---|---|---|
項目管理 | VS2010-2019 | IDEA2018/Eclips2018 | .NET只有微軟官方IDE,Java沒有官方的IDE,沒有VS好用,可是有多個選擇 |
項目模板 | VS2010+MSBuild 開發 | IDE+Maven | .NET項目的模板是VS自帶的,是直接符合MSBuild(編譯器)標準的,項目由sln+csproj文件組織,Java平臺編譯器的標準是公開的,目前主流項目都是基於Maven模板來建立,項目由pom.xml文件組織。 |
編譯&調試 | VS2010+MSBuild+SDK | IDE+Maven+SDK | .NET平臺的編譯器是獨立的,Java平臺的編譯器是集成在JDK中,Maven模板的項目是由pom.xml文件組織,可是編譯器並非認識pom.xml,因此編譯須要Maven的參與 |
Package管理 | NuGet | Maven | Nuget是微軟官方開源的VS插件,Maven是Apache下的開源項目。ken.io以爲Maven更靈活、強大。NuGet容易上手。 |
打包/發佈 | VS2010+MSBuild+SDK | IDE+Maven+SDK | .NET平臺的編譯器是獨立的,Java平臺的編譯器是集成在JDK中,Maven模板的項目是由pom.xml文件組織的,可是編譯器並非認識pom.xml,因此打包須要Maven的參與。IDE主要是提供圖形化界面替代命令操做 |
NET的Web框架基本上都是微軟官方的,官方的框架也最爲流行,而Java平臺,除了官方提供的Servlet API(至關於.NET的System.Web)其餘的基本都由Spring你們族統治了。本次咱們主要對比目前Web開發最經常使用的MVC框架以及持久層框架緩存
功能 | .NET | Java | ken.io的說明 |
---|---|---|---|
Web核心 | ASP.NET | Servlet | — |
Web框架 | ASP.NET MVC | Spring MVC | ASP.NET MVC是微軟官方框架,Srping MVC框架隸屬於Spring你們族,依賴於Spring |
視圖引擎 | Razor | Thymeleaf/FreeMarker | Razor是微軟官方的視圖引擎,很是好用,Spring MVC並無視圖引擎,可是有Thymeleaf,FreeMarker。ken.io更喜歡Razor的風格 |
持久層 | Entity Framework | MyBatis | EF是微軟官方的持久層框架,易上手、開發效率高、但侵入性強。MyBatis配置靈活,無侵入性。各有利弊。 |
.NET平臺的框架因爲都是微軟官方的,比較好組織,上手容易。Java平臺的框架,靈活可配置。這也是Java平臺一向的風格。可是ken.io不得不吐槽的是,Spring MVC做爲一個MVC框架,居然沒有本身的視圖引擎,那MVC種的View去哪了?
多是由於Java做爲Web後端的主力平臺,確實不多關注視圖層,可是Spring MVC沒有View層引擎,仍是感受不合適。Thymeleaf跟FreeMarker,ken.io更推薦FreeMarker。由於ken.io更喜歡FreeMaker的語法。多是用慣了Razor的緣故。服務器
對於項目部署。.NET平臺貌似沒得選,只能選Windows+IIS,雖然有Mono,但畢竟不是支持全部的類庫。而Java平臺既能夠選擇Windows+Tomcat,也能夠選擇Linux+Tomcat。可是一般會選擇Linux+Tomcat畢竟成本低。微信
職責 | .NET | Java |
---|---|---|
操做系統 | Windows Server | Windows Server、Linux Server |
Web服務器 | IIS | Tomcat(Tomcat是目前最主流的,也有其餘的Servlet容易例如:JBoss) |
不過Java平臺的特性,Java項目的部署會比.NET項目部署偏麻煩一些。
IIS圖形化界面一直下一步,再調整下應用程序池的版本就好了。而Tomcat不管是在Windows,仍是在Linux,都經過修改配置文件完成站點配置。
7.立刻就2019年了日常繼續將Java 基礎 以及一些Java Web SSM+MYSQL SSH+MYSQL Redis 一些經常使用的技術學習好就能夠了,學習太多的新技術用不到也是沒辦法,對於一個開發來講 我最看重的仍是一我的快速解決問題的能力和 不段的學習能力。
部分文字引用:https://www.cnblogs.com/ken-io/p/java-vs-dotnet.html 的博客
2018/12/04 23:40 :30