本文由葡萄城技術團隊於博客園原創並首發css
轉載請註明出處:葡萄城官網,葡萄城爲開發者提供專業的開發工具、解決方案和服務,賦能開發者。前端
最新.Net Core 熱詞霸佔了各個技術熱搜,看來微軟近年來發布的 .Net Core 仍是成功了引發了你們的熱烈討論。若是您對微軟熟悉,確定是很瞭解.Net 平臺,可是隨着互聯網的興起,好像微軟這個霸主的地位有所撼動。正則表達式
.NET Core 是.NET Framework的新一代版本,是微軟開發的第一個跨平臺 (Windows、Mac OSX、Linux) 的應用程序開發框架(Application Framework),將來也將會支持 FreeBSD 與 Alpine 平臺。.Net Core也是微軟在一開始發展時就開源的軟件平臺[1],因爲 .NET Core 的開發目標是跨平臺的所以 .NET Core 會包含 .NET Framework 的類別庫,但與 .NET Framework 不一樣的是 .NET Core 採用包化 (Packages) 的管理方式,應用程序只須要獲取須要的組件便可,與 .NET Framework 大包式安裝的做法大相徑庭,同時各包亦有獨立的版本線 (Version line),再也不硬性要求應用程序跟隨主線版本。後端
重點來啦:服務器
目前能夠看到不少傳統行業的信息系統也在逐漸升級平臺,並且不少大的互聯網公司也已經使用,畢竟一次開發便可實現跨平臺的部署及應用,也是減小成本的重要體現。框架
能夠肯定.Net Core 是將來的發展趨勢。 .Net FrameWork也會延續使用,畢竟短時間內遷移一些大型項目是頗有難度的,並且也不太可能。.Net Core 和.Net FrameWork 的關係就如同是新能源汽車和傳統穩定的油耗汽車。油耗汽車已經經歷了多年的發展,技術很是成熟穩定,能夠放心自由的使用。而新能源汽車是一個新興的技術,也是將來將要取待傳統技術的將來發展方向,因此使用.Net Core 開發項目必須越早越好。編輯器
.Net Core 與. Net FrameWork 對比:工具
.NET Core性能 |
.NET Framework開發工具 |
跨平臺 (OS platform): 支持Windows, Linux, 及 macOS |
僅支持在 Windows運行 |
安裝過程是獨立,端對端,能夠在同一計算器中爲應用程序指定獨立的.Net Core 版本。 |
一臺計算機上的全部應用程序都在同一.NET Framework版本上運行 |
高性能:在集合,數學,正則表達式,字符串,文件等方面都有提高。. |
高兼容性 |
開源: 基於.NET平臺既能夠根據 MIT或 Apache 2 受權 |
與最普遍的NuGet軟件包,第三方庫和內部庫兼容 |
v2.0 實現了.NET Standard 2.0¹ |
v4.6.1+ 以上版本支持s .NET Standard 2.0 |
使用.Net Core 優點:
1. 支持在任何平臺部署,跨平臺幾乎沒有任何成本
2. 龐大的.Net 標準庫支持
3. 面向高性能的服務器開發,基於 微軟 Azure雲的平臺優點,已提供高性能的服務。
4. 高性能和可移植性
5. 兼容多平臺
不少原有的項目是基於.Net FrameWork 開發的,多是 Windows. WPF, ASP.NET MVC,那自己的侷限是隻能在Windows系統部署外,還涉及到一些核心功能的實現。傳統框架的種種不足,須要大的突破和改變。這意味着打破變化,但結果是值得期待的。
遷移原有項目到新的.Net Core 平臺意味着你能夠保留舊項目的全部核心業務功能,不須要重構整個項目,從0開始開發。如下是咱們根據經驗給出了幾類的應用的遷移難度。
項目類型 |
遷移難易程度 |
Web 應用: ASP.NET MVC |
簡單 |
WebForm 應用 |
不建議遷移,由於.Net Core 支持 WebForm |
Windows 應用 (Universal Framework) |
不須要遷移 |
Windows 應用(基於Sliverlight) |
簡單 |
WPF 及WinForms 桌面應用 |
複雜 |
控制檯應用 |
簡單 |
1. 遷移仍是重構
若是針對前端項目,遷移是最佳選擇,畢竟前端代碼都可複用,惟一要改動的就是後端代碼。儘管.Net Core 和.Net Frame Work 項目都是基於C# 語言作開發的,然而二者是不一樣的運行機制。因此若是是後端很重的項目,仍是建議重寫,這樣也會利用一些新技術的優點。
2. NuGet 包
在遷移以前,須要確認引用的.Net 標準庫是否在.Net Core中支持或丟棄,若是不支持的話,就須要考慮如何用新的包代替或者當前功能的重構。
.Net 標準包是在.Net 4.6.1 和.Net Core 中均可使用的,因此只須要可使用該技術升級舊的PCL。若是你添加了.Net 標準庫的引用,一樣也能夠在.Net Core 項目中使用。
3. Html / JavaScript / CSS 複用
能夠將這些文件直接複製到.NET Core解決方案中。 可是,請確保更改代碼中的文件路徑,例如CSS中的圖像路徑。 由於經典的ASP.NET / MVC模板使用「 / Content /」目錄,而.NET Core使用「 / css /」,「 / js /」,「 / lib /」等。對此沒有任何限制,它們只是約定而已 。
在開發項目時候,新的平臺和技術老是帶給你項目的一些新的重大突破功能,好比性能,好比核心功能提高,因此不只咱們的項目要一直跟隨升級,咱們所選擇的開發工具,也要緊跟技術前沿,甚至要領先於咱們的項目升級進度,爲咱們開發項目始終提供最有力的技術支持。
.NET Core是多平臺應用程序的將來。 如咱們所見,.NET Core提供了傳統框架不支持的強大的本機新功能。 另外一方面,.NET Core並不徹底支持全部現有的應用程序類型進行遷移,尤爲是那些與Windows OS緊密集成的應用程序類型,所以必須仔細考慮並計劃這些挑戰。
因此咱們在選擇新平臺的同時,也須要考慮一些輔助開發的工具。以及這些工具在該領域的技術背景,是否足夠穩定,是否有足夠明確的將來,甚至比咱們更能預先跟蹤將來的技術棧,以始終在咱們遷移新項目的時候提供輔助工具。
這裏推介一些支持.Net Core 平臺的開發控件:
綜上所述,不管從其性能和生態上預測,.NET Core 都極有可能成爲最受歡迎的開發平臺,不過,當前國內僅有騰訊、阿里等廠家願意試水,葡萄城做爲一傢俱有30多年開發經驗的軟件廠商,一樣也在持續對.NET控件進行更新迭代。
若是您有 .NET Core及其衍生技術和開發工具的需求,請訪問葡萄城官網瞭解詳情。