.NET Core是.NET Framework的新一代版本,是微軟開發的個官方版本,也是微軟在一開始發展時就開源的軟件平臺,具備有跨平臺 (Windows、Mac OSX、Linux) 能力的應用程序開發框架 (Application Framework),未來還將支持 FreeBSD 與 Alpine 平臺。本文介紹了如何利用.NET Core搭建跨平臺的控制臺應用程序,主要包括搭建新程序、添加邏輯功能和運行新程序三個步驟。
盡管傳統意義上來說,.NET是只面向Windows的、閉源的專有平臺,然而,傳統觀念即將被顛覆。新的開源跨平臺的.NET Core正式開啟,意味著你可以在任意平臺寫C#或.NET,然后在Windows、Linus和macOS運行。
這個新的.NET平臺正在GitHub上嘗試對外開放,主要用到MIT和Apache的許可證,甚至還接收社區貢獻。新平臺的設計理念源自以往的開源編譯器Roslyn(.NET編譯器平臺),目的在于不局限于Windows或Visual Studio,而是允許開發者在任意集成開發環境(IDE)中使用任意系統,然后在任意服務器或平臺運行程序。
為了演示這個新平臺,我們搭建一個超級簡單的控制臺應用程序,然后使用新的dotnet命令行接口(CLI)在Windows和Linux上運行。開始之前,需要先安裝.NET Core(包含dotnet CLI工具)。微軟的在線文檔中為大多數平臺(包括各種各樣的發行版)提供完整的軟件文檔。
如果你不想在本地安裝.NET Core,微軟/dotnet:新Docker圖片預置了所有新的工具和SDK。
.NET Core版本迭代很快,我寫的這些主要適用于當時的新版本。
首先,我們用dotnet的新控制臺搭建一個新的控制臺應用程序,然后自動生成一個Program.cs和 .csproj,這是以當前的目錄命名的(我的名為app.csproj)。
為了驗證可行性,嘗試運行一下dotnet restore,這個可以恢復運行程序需要用到的所有包。這個步驟完成后,運行dotnet run,然后你就可以在控制臺看到關鍵信息Hello,World!了。
在你喜歡的文本編輯器中打開Program.cs,然后用下面的內容替換Console.WriteLine(“Hello World!”);,因為.NET與Visual Studio之間沒有耦合關系,所以你可以用任意你喜歡的IDE或文本編輯器,甚至可以用vi。
Console.WriteLine($"Hello
{System.Environment.GetEnvironmentVariable("USER")}!
I'm {System.Environment.MachineName} and I'm talking
to you from
{System.IO.Directory.GetCurrentDirectory()}");
對于不熟悉C#和.NET的人來說,這段代碼實際上是在用當前環境的信息打印一個更詳細版的經典Hello, World。注意,這里的代碼并不是針對某一個指定的平臺。
如果你現在運行dotnet build,你會得到一個.dll文件,還會有其他文件添加到你的./bin/Debug文件夾。你已經寫了一段跨平臺的控制臺程序,將那些文件復制到另一臺運行.NET Core的機器——Linux或者OS X也可以,然后運行dotnet ./path/to/your/app.dll,你將看到和前面一樣的輸出,然而你用的仍然是本地運行環境。幸運的是,.NET Core可以在一個獨立包中搭建和發布本地二進制文件,所以你的目標系統(或用戶)不用安裝.NET也可以運行程序。
要想嘗試跨平臺應用程序,我們必須先確定用于搭建平臺的.NET Core SDK,由于這個過程涉及到本地庫,除了指明需要用到的平臺以外,還需要確定風格和版本。
在應用目錄中打開.csproj文件,將下列XML標簽添加到各標簽中:
<propertygroup><runtimeidentifiers>win10-x64;osx.10.12-
x64;debian.8-x64</runtimeidentifiers></propertygroup>
這樣,.NET就知道我們想要為Windows 10 64-bit、macOS Sierra和Debian 8搭建一個獨立的應用程序,接下來要做的就是運行之前選擇的環境下的dotnet publish,然后在每一個平臺上編譯本地二進制文件。
注意一下,在./app/bin/Debug/netcoreapp1.1/文件夾中每一個平臺都有對應的目錄,每一個目錄都有對應的publish文件夾,這個文件夾里有你的本地應用程序的副本,還有所有需要運行的.NET庫的副本,所有沒必要在目標系統上安裝.NET,只需要把這些文件復制到一個新的文件夾然后運行可執行文件就好了。
使用C#和新的.NET Core平臺,你可以在任意平臺搭建應用程序,再將它發布到任意平臺——100%代碼復用、完全本地、無運行時、不用安裝框架。來GitHub吧,你可以看到新的框架讓這項技術更加強大!不管對于C#還是.NET,這都是非常激動人心的時刻!
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。