2013年,微軟針對Visual Studio 2013 提出了“Project N”項目,在此次Build大會上,其面紗正式揭曉,它就是.NET Native。在微軟MSDN官方博客上,Subramanian Ramaswamy和.NET Native團隊高級項目經理Andrew Pardoe對.NET Native預覽版進行了詳細的介紹。
.NET Native
.NET Native可以將C#代碼編譯為本地機器碼。據博客介紹,.NET Native可以優化所有的Windows Store應用。使用.NET Native編譯Windows Store應用程序,應用啟動速度將加快60%,并且內存占用更小,這主要得益于開發團隊優化.NET Native運行時(CLR的一個重構和優化)和使用先進的Microsoft VC++優化器后端。
該預覽版允許開發者測試和編譯應用程序,此外,最令開發者興奮地是,使用.NET Native不僅會讓應用擁有C++般的性能表現,還可以實現C#般的生產力。
目前,.NET Native預覽版支持Windows Store應用,開發者可以使用該版本構建基于ARM和x86架構(很快會支持x86)的應用。不久,.NET Native開發團隊還會提供跨平臺的一致體驗,并且將會繼續完善和提升.NET Native的應用范圍。
通過與Visual Studio結合,.NET Native將會提供一流的.NET開發體驗給用戶,用戶還將繼續享有編輯/編譯/調式等開發功能及體驗。
據微軟提供的FAQ獲知,目前.NET Native預覽版只支持C#語言,用 .NET Native編譯的程序將作為獨立的原生編譯代碼部署到目標機器上,無需再安裝.NET Framework。
目前,微軟已經用.NET Native開發了一些Windows Store甲方應用,這些應用包括Wordament、 Fresh Pain。
.NET Native預覽版下載地址: http://msdn.microsoft.com/en-US/vstudio/dotnetnative ,目前可以安裝在 Visual Studio 2013 Update 2 RC上。目前,微軟官方還未告知何時發布.NET Native正式版本。
使用.NET NativeToolchain編譯應用
項目加載后,你可以啟用.NET Native編譯器,前提是已經把應用針對x64或ARM架構進行了配置,此外,由于.NET Native編譯為本地代碼,所以你得指定一個真實的機器類型來代替CPU。具體步驟:
開發者們激情重燃
微軟此次推出.NET Native預覽版,讓開發者在.NET平臺上又看到了希望,開發者們的熱情被再一次燃起,引起了無數開發者的熱烈討論,筆者搜集了一些,整理如下:
陳宇:
技術上,.NET Native純粹是個優化。商業上,.NET Native的靜態鏈接,讓微軟可以進一步拉攏應用開發者,給他們提供大量方便易用的開發框架,而不用擔心普通用戶的機器上裝滿了各式各樣的框架,影響體驗了。這次微軟的.NET Native有兩個亮點:
一個是云編譯。也就是開發者提交的是虛擬機代碼,用戶直接下載自己設備可用的機器碼。不像Mono要手動編譯,這對用戶和開發者來說,都很方便。
另一個是,因為速度、空間的限制都不存在了,云編譯器可以比即時編譯JIT,比ART的安裝時編譯,做更多更好的優化。微軟的Visual C++做了這么多年,應該有足夠的技術儲備。備注(本段文字摘自知乎網)。
RednaxelaFX:
感覺.NET Native比起以前最強力的地方在于能夠做出“封閉世界的假設”并且放心做諸如class hierarchy analysis來做優化,而并不是說因為它用了VC++的編譯器后端所以就快――要知道原本CLR的x64 Server JIT也是源自VC++的后端… 話說C# 的語言特性本來就比C++更好優化,例如別名分析會好做很多。(來自新浪微博)
Lex_Li:
總體來說,微軟從Xamarin那邊學到了不少。.NET Native源自AOT,但是優化更好。(來自新浪微博)
寫在最后
針對.NET平臺,微軟給開發者帶來的震撼不只是發布了.NET Native,在2014 Builid大會上,微軟提出了“ The Next Generation of .NET”。.NET團隊構建了一些新技術來擴展.NET核心功能,努力提升應用程序和用戶體驗,發布了一系列產品:
微軟的這些舉措足以說明對開發者的重視,相信,未來的微軟也不會讓開發者們失望。
文章部分內容翻譯自MSDN博客。
上一篇 移動開發創業團隊再下一城!UCloud與飛流戰略合作
下一篇 深入了解泛型