【安全資訊】.NET Core:面向未來的開源跨平臺開發(fā)技術

來源:http://bbs.ichunqiu.com/thread-9875-1-1.html?from=ch

作為一種全新的開源和跨平臺的開發(fā)平臺,.NET Core 歷經(jīng)兩年多的開發(fā),終于在于2016年6月27日針對所有主流服務器和桌面操作系統(tǒng)發(fā)布了1.0 RTM 版本。.NET Core是一種通用開發(fā)平臺,它包含了自動內(nèi)存管理和現(xiàn)代化高級開發(fā)語言等重要特性,這些都能讓面向多個平臺開發(fā)靜態(tài)類型的高質(zhì)量應用程序變得輕松。.NET Core本身采用MIT協(xié)議開源,因此可以免費用于各種類型的商業(yè)和閉源項目。

全新的 .NET Core

不同于內(nèi)置于Windows系列操作系統(tǒng)上的.NET框架,.NET Core是微軟從2013年啟動新開發(fā)的一項技術,它與此前的.NET框架是不能直接兼容的。此外,與此前.NET的框架之間更顯著的不同可能是,.NET Core的完全開源,以及跨平臺的能力。

.NET Core是開源和跨平臺的

.NET Core本身的開發(fā)工作是基于開源項目代碼大本營GitHub網(wǎng)站的,.NET Core核心的代碼都采用了MIT授權協(xié)議,也有少數(shù)項目采用了Apache協(xié)議。在前不久的“開發(fā)者論壇”活動現(xiàn)場,針對筆者提出的.NET Core開源理念的詢問,微軟開發(fā)工具事業(yè)部副總裁潘正磊女士回答說“它一開始就被設計為開源的”,這一理念很真誠地表達了.NET Core開源的決心,在過去兩年多時間以內(nèi),核心開發(fā)團隊也以行動證實了這一點。

在GitHub上,與.NET Core相關的代碼庫有一百來個,分布在多個賬戶中。來自世界各地、包括中國的大量開發(fā)者都參與了.NET Core的開發(fā)過程:開發(fā)團隊會每周與社區(qū)跟進進度、討論計劃,隨時在線上回答其他開發(fā)者的提問,合并其他開發(fā)者貢獻的代碼。筆者也有幸見證這一過程,并實際參與到其中幾個項目的貢獻中。

跨平臺的說法,在各種開發(fā)技術上一直以來飽受爭議。從前,人們提出“編寫一次,到處運行”的理念到最后變成“編寫一次,到處調(diào)試”的笑話。以至于現(xiàn)在一提跨平臺,大家都持一種懷疑的態(tài)度。事實上,對跨平臺的需求是真實存在的:我們使用Windows或macOS從事開發(fā)工作,而使用Linux系統(tǒng)作為服務器環(huán)境;我們開發(fā)一套運行在服務器上的軟件產(chǎn)品,希望將服務器平臺的選擇自由留給客戶……

因此對于現(xiàn)代化的輕量級開發(fā)技術棧而言,跨平臺也成為一個基本要素。典型的輕量級開發(fā)平臺大多是基于動態(tài)語言的,比如PHP、Python或Node.js,這類動態(tài)語言正是由于“動態(tài)語言”的特性,在一些場合顯得過于靈活、難以掌控,在工程的內(nèi)建質(zhì)量和開發(fā)效率上取得平衡并不容易。

開源跨平臺的.NET Core

對于.NET Core來說,跨平臺這個目標并沒有多少歷史包袱。在開發(fā).NET Core本身的過程中,開發(fā)團隊很早就使用了持續(xù)集成的實踐來保障代碼針對多個平臺的兼容能力。在開發(fā)進程中,團隊同步維護多個示例項目,例如經(jīng)典的MusicStore,及時回歸核心特性、保障穩(wěn)定性。從兩年之前開始,就陸續(xù)有alpha、beta和RC版本發(fā)布出來,讓開發(fā)者提前體驗到新運行時的同時,也借助GitHub開源平臺及早收到來自社區(qū)的監(jiān)督和幫助。借助這些一系列的措施,.NET Core跨平臺的能力有著充分的事實保障。

.NET Core是適應趨勢的生產(chǎn)力平臺

新打造的.NET Core 有一些關鍵特性,頗具吸引力。例如與特定操作系統(tǒng)無耦合,可編譯為原生平臺代碼,運行效率極高;完全模塊化,內(nèi)置包管理器用于管理依賴項;提供完整而標準化的命令行工具集,與Docker等新近技術能無縫集成。它雖然是全新的開發(fā)平臺,卻直接使用C#這樣的明星靜態(tài)語言的最新版本作為開發(fā)語言,充分運用.NET平臺十幾年積累的設計理念,汲取過去數(shù)十年各種編程語言和開發(fā)模型中的精華,才最終鍛煉成適用于下一代開發(fā)工作的新平臺。

由于它是一項新興的技術,過往的類庫不能直接與它兼容。為了解決一開始應用這項技術可能存在的框架和類庫缺乏的問題,在開發(fā).NET Core框架的同時,微軟還投入資源以開源的方式重寫了大量開發(fā)框架和常用類庫,比如 ASP.NET MVC、EntityFramework等。不僅如此,一套面向非Windows環(huán)境的生態(tài)系統(tǒng)工具也在同期陸續(xù)地發(fā)布了出來,包括跨平臺的編輯器Visual Studio Code,高性能Web服務器Kestrel以及持續(xù)集成編譯工具Cake等。從這些舉動可以看出,微軟在.NET Core上投入的誠意實在真摯可見。

在國外,不少開發(fā)者已經(jīng)在積極響應.NET Core的路線,發(fā)布基于.NET Core的運行時的類庫,提供兼容.NET Core的SDK等。常用的XUnit.net、Moq、Autofac、MongoDB和RavenDB 等流行的類庫和工具已經(jīng)提供了對.NET Core的支持,或正在積極地開發(fā)新的版本。在國內(nèi).NET Core在社區(qū)中的交流學習也正在穩(wěn)步鋪開。

很多開發(fā)人員已經(jīng)著手文檔翻譯、源碼學習,以及實踐分享等工作。在博客園網(wǎng)站上已經(jīng)出現(xiàn)不少關于.NET Core的文章,而在頗受關注的公眾賬號“.NET跨平臺”中,也已經(jīng)發(fā)布了與.NET Core相關的文章。這些都預示著一個重要的新平臺的來臨,而且.NET Core這項新技術的成長一定是與社區(qū)合作密不可分的。

展望

軟件工程在走過了野蠻生長,到達了基于云的互聯(lián)網(wǎng)產(chǎn)業(yè)形態(tài)日趨成熟的今天,開發(fā)技術的發(fā)展已經(jīng)從現(xiàn)實中收獲了不少經(jīng)驗。從活躍的Web開發(fā)技術的發(fā)展足以反映出開發(fā)者對新技術的向往了。然而在大談了B/S架構十余年之后的今天向回看,服務器端的基礎開發(fā)技術在過去的五年、十年乃至更久的時間之內(nèi),并沒有發(fā)生大的改善。新入門的開發(fā)者,仍然走著上一代開發(fā)者的老路,一步一步摸著石頭過河——在網(wǎng)上搜索著上一代人寫下的伴隨他們成長留下的嚴重過時、版本錯亂,甚至漏洞百出的文章和貼子,似乎津津有味,卻是迷惑不解。

我們都需要新技術,那種能讓新一代開發(fā)者認為“屬于這個時代,并且面向未來”的新技術。請相信,.NET Core就是你期待的那個新技術。它剛剛產(chǎn)生,卻已胸懷古今,詩與遠方唾手可得!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容