.NET開源進行時:消除誤解、努力前行(本文首發於《程序員》2015第10A期的原始版本)

2014年11月12日,ASP.NET之父、微軟雲計算與企業級產品工程部執行副總裁Scott Guthrie,在Connect全球開發者在線會議上宣佈,微軟將開源所有.NET核心運行時,並將.NET 擴展爲可在 Linux 和 Mac OS 平臺上運行。.NET核心運行時將基於MIT開源許可協議發佈,其中將包括執行.NET代碼所需的一切項目——CLR、JIT編譯器、垃圾收集器(GC)和核心.NET基礎類庫。git

自從11月公佈這一計劃以來微軟已將本身的關鍵技術都進行了開源,包括.NET Core、Roslyn、ASP.NET 五、MSbuild、WCF、OData等。按照微軟ASP.NET 5 的路線圖(詳見 ASP.NET 5 Schedule and Roadmap),2015年9月2日已經發布了里程碑的跨平臺版本,完成.NET Core 的跨平臺開發,爲 Mac 與 Linux 平臺提供基於 .NET Core 的 dnx,實現完整的 .NET 跨平臺開發工做流,並基於跨平臺 .NET 開發一些應用案例,等到下個月初發布Beta 8的的時候就進入特性凍結階段了。 github

微軟實際上一共推出了三個以MIT方式受權的源代碼集: 微信

  • ReferenceSource
  • CoreFX
  • CoreCLR

上圖中.NET Core 5 能夠完整跨平臺,.NET Framework 4.6 運行在Windows平臺,對應Mono 4.2 版本運行在Linux,Mac平臺。要理清楚.NET Core和 .NET 、Mono之間的關係, 這個在.NET Core的 https://github.com/dotnet/core 有詳細的說明。簡單的說就是.NET Core是.NET Framework的子集,包含了.NET 運行時庫的核心功能,在跨平臺和資源受限環境中使用,.NET Framework還以MIT協議開源了ReferenceSource , ReferenceSource 是和Windows平臺的有較深的耦合關係,Mono團隊將ReferenceSource項目中的代碼整合進入Mono,將Mono項目中一些有bug或未完成的組件替換爲.NET的對應代碼,你能夠在Trello網站上跟蹤該項目的進展狀況,Mono最新的4.2 版本已經基本上完成了代碼整合工做。經過Mono和微軟的.NET團隊的合做,把.NET Core的代碼融到Mono項目中,同時把Mono中的平臺依賴代碼貢獻給.NET,如今能夠實現完整的.NET堆棧的跨平臺。也就說在.NET Core推出以後,.NET Framework與Mono將基於.NET Core從新構建。.NET Framework將成爲.NET Core在Windows上的一個發行版,Mono將成爲.NET Core的一個跨平臺發行版。大數據

開源是大勢所趨,就在6年前,各大公司和廠商還在討論是否應該開源,但如今你們討論的則是如何更好地開源。隨着互聯網時代的發展和成熟,開源已經成爲標配。從Github的.NET Core開源項目來看,目前已經有將近8273個star,老牌的Mono項目也才3769個Star,已經說明開發社區對微軟開源的支持。網站

相比Java體系成熟的生態圈,目前.NET在社區生態系統建設上還須要一段比較長的時間來完善。生態系統不僅僅是開發者,還須要包括他背後的就任公司、他開發的產品面向的客戶、開發者的合做夥伴等等,固然還有微軟。開發者可以從.NET這個平臺上更容易創業、具備多語言跨平臺的、具有快速部署優點、適合迭代開發的,涵蓋從服務端到客戶端、移動端,物聯網IOT,具備超級高效率的Visual Studio Community 2015。除此以外要讓開發者有參與感,他在開發方面的經驗和知識可以經過生態系統分享出去,影響其餘人和公司,而且他的意見可以獲得及時的反饋,那麼這種參與感會吸引開發者。ui

最近幾年,微軟對於開源愈來愈支持,可是給開發社區的形象尚未轉變過來。有篇文章《對微軟技術的典型誤解和偏見》寫的很是貼切,對微軟技術的誤解與偏見在社區裏是很微妙的,很多人對微軟的開發技術棧有一些由來已久的偏見。微軟已經作行業老大不少年,其在閉源方面的印象給開發者影響太深入了,很難在短期內扭轉。須要持續的運營投入和影響。雲計算

其實微軟過去在社區運營方面頗有經驗,包括各類線上線下的活動,還有MVP等獎勵機制,在開源方面,微軟能夠繼續從前的動做,我本人是微軟連任10年的ASP.NET方向的MVP,運營一個微信公衆號-dotNET跨平臺,主要就是本土化將微軟開源項目的介紹、進展、分析和案例要及時告知中國開發者。建議微軟官方培養成功案例,榜樣的力量是無窮的,開源以後的贏家在哪裏?甜頭在哪裏?樹立這樣的榜樣,開發社區都會看到。spa

開源的好處是,吸取整個技術社區的力量促進開源項目的發展和競爭力,提升開發者的參與感和信任度,有利於吸引開發者,構建良好的生態系統。.NET開源,開發者沒必要擔憂這個項目會半途而廢,能夠更關注項目自己的發展和特性,背後有.NET基金會,微軟和Xamarin公司,他們都有明確的開發路線圖,強大的技術團隊支持。3d

在雲計算、大數據、移動互聯網和物聯網的時代,開發者須要看到微軟在承諾開源以後的迅速行動,開源社區和生態快速搭建起來,跨平臺官方支持版本快速發佈出來,抓住移動互聯網的契機,把整個.NET新局面打開。blog

相關文章
相關標籤/搜索