在Linux和Mac OS X系统上运行.NET
.NET Core運行時已經看到了實現真正的跨平臺的美好前景,它最終出現在Linux和Mac OS X平臺上。在上周舉辦的Microsoft Build大會上,來自微軟的項目經理Habib Heydarian為聽眾分析了這一舉措對開發者們所帶來的益處,并告訴開發者們如何開始探索這些新的機會。在名為“讓.NET實現跨平臺”的一場講座中,Heydarian首先介紹了開發者如何進行一次全新的.NET Core安裝。
\\首先,所有的.NET代碼都包含在一個單獨的文件夾中,而無需將它安裝在某個系統級別的位置。這樣,只要愿意,每個.NET應用都可以使用一個完全不同的編譯版本。并且在Windows系統上進行編譯的代碼也能夠在Mac OS X和Linux系統上運行。
\\要在以上系統中運行一個基于命令行的標準HelloWorld程序,可使用以下方式:
\\./corerun HelloWorld.exe
\\// corereun是一個原生的運行app的環境
\\// 在Windows上,引導.NET應用的功能已經內建于操作系統中了
\\在非Windows平臺上使用.NET,就意味著開發者們能夠使用ASP.NET 5、CoreCLR,并且從以下共享的功能中受益了:
\\如何獲取.NET Core
\\對于Mac OS X開發者來說,推薦的方式是使用Homebrew以獲取必要的組件。當安裝好Homebrew之后,就可以通過以下命令獲取.NET組件了:
\\brew tap aspnet/dnx
\brew update
\brew install dnvm
\dnx . kestrel
Linux用戶可以從該項目的網站上下載一個包含了所有必要組件的TAR文件,隨后按照以下方式進行安裝:
\\tar zxvf PartsUnlimited-demo-app-linux.tar.gz -C ~/
\source ~/.dnx/dnvm/dnvm.sh
\dnvm use 1.0.0-beta5-11624 -r coreclr -arch x64
\dnx . kestrel
你一定注意到了一點,在這個兩個平臺上所運行的最后一條指令都是kestrel的執行。Kestrel也正是“跨平臺的ASP.NET 5 web服務器”,DNVM則是.NET的版本管理器。目前,該項目只支持64位平臺的Linux和Mac OS X。開發團隊仍然在繼續研究如何讓它支持32位的系統。
\\緊隨Linux和Mac OS X之后,對FreeBSD的支持最近也加入到該項目中。對于這三個平臺來說,目前還存在著一個限制,那就是從源代碼編譯.NET Core的功能僅限于Windows版本。要從源代碼編譯.NET,開發者需要首先編譯CoreCLR,然后再編譯CoreFX。
\\正如Windows平臺上的.NET開發者能夠利用平臺調用(PInvoke)功能一樣,Linux平臺上的開發者也能夠使用DLL Import這一命令:
\\[DllImport(“libc”)]
\private static extern int printf(string format);
\…
\Printf(“Hello, //BUILD 2015!\”);
下一步計劃
\\Heydarian在演講余下的部分談到了該團隊下一步的計劃,以及微軟對這一項目的目標。隨著Visual Studio不斷地擴展到非Windows的平臺上,微軟希望能夠改進在這些新環境中的調試功能。對于VS2015來說,就是要實現遠程調試。而對于VS Code來說,首先要從實現本地調試開始。
\\另一個改進的方向是整體的上線預備。為了在這方面有所突破,團隊打算整合MSBuild的支持,并消除目前對Mono在這方面功能的依賴。
\\Heydarian表示,當.NET在Linux和Mac OS X平臺上正式發布,并成為“RTM”版本之后,微軟將做出以下正式的承諾:
\\在你的應用中加入對Linux和Mac OS X的支持
\\微軟將推出一套API可移植性工具,用于對現有的代碼進行分析,找出所需的程序集和目標平臺。目前為止,唯一對兼容性進行了測試的Linux分發平臺是Ubuntu 14.04.2 LTS。雖然沒有明確地表示不支持其它的Linux分發平臺,但無法保證在這些平臺上是否能夠正常運行。
\\Heydarian認為目前來看,微軟所提供的.NET與Mono版本相比,所針對的市場方向并不相同。Haydarian表示:“……雖然[Mono]在移動場合的表現優秀,但它并不是為服務器或云端生產環境的使用場景而設計的……”,而.NET Core傾向于在具有高吞吐量、高伸縮性,以及更高的修復前平均時間(MTTF)的服務器環境中所使用。
\\希望通過.NET即將提供的功能,從跨平臺方式中受益的開發者可以首先從VS2015RC中的ASP.NET 5項目模板開始打造及測試應用,并且參考GitHub上的ASP.NET示例應用Parts Unlimited。凡是能夠在Windows上的ASP.NET 5中成功運行的應用,一旦等到.NET Core RTM之后,就能夠無縫地遷移至Linux平臺上。
\\查看英文原文:Running .NET on Linux and Mac OS X
總結
以上是生活随笔為你收集整理的在Linux和Mac OS X系统上运行.NET的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《c语言从入门到精通》看书笔记——第4章
- 下一篇: linux -- read(), wri