營(yíng)銷(xiāo)網(wǎng)站建設(shè)
全網(wǎng)營(yíng)銷(xiāo)網(wǎng)站
高端網(wǎng)站建設(shè)
商城網(wǎng)站建設(shè)
外貿(mào)網(wǎng)站建設(shè)
小程序開(kāi)發(fā)
區(qū)塊鏈開(kāi)發(fā)
物聯(lián)網(wǎng)項(xiàng)目開(kāi)發(fā)
定制app開(kāi)發(fā)
在線教育網(wǎng)站
速成網(wǎng)站建設(shè)
服裝網(wǎng)站建設(shè)
餐飲網(wǎng)站建設(shè)
珠寶首飾網(wǎng)站
機(jī)械制造網(wǎng)站
文化旅游網(wǎng)站
家裝建材網(wǎng)站
美容化妝品網(wǎng)站
數(shù)碼產(chǎn)品網(wǎng)站
模板案例庫(kù)
文章編輯:網(wǎng)站建設(shè) 文章來(lái)源:建站行業(yè)資訊 瀏覽量:次
NET Core是.NET Framework的新一代版本,是微軟開(kāi)發(fā)的第一個(gè)官方版本,也是微軟在一開(kāi)始發(fā)展時(shí)就開(kāi)源的軟件平臺(tái),具備有跨平臺(tái) (Windows、Mac OSX、Linux) 能力的應(yīng)用程序開(kāi)發(fā)框架 (Application Framework),未來(lái)還將支持 FreeBSD 與 Alpine 平臺(tái)。本文介紹了如何利用.NET Core搭建跨平臺(tái)的控制臺(tái)應(yīng)用程序,主要包括搭建新程序、添加邏輯功能和運(yùn)行新程序三個(gè)步驟。
盡管傳統(tǒng)意義上來(lái)說(shuō),.NET是只面向Windows的、閉源的專(zhuān)有平臺(tái),然而,傳統(tǒng)觀念即將被顛覆。新的開(kāi)源跨平臺(tái)的.NET Core正式開(kāi)啟,意味著你可以在任意平臺(tái)寫(xiě)C#或.NET,然后在Windows、Linus和macOS運(yùn)行。
這個(gè)新的.NET平臺(tái)正在GitHub上嘗試對(duì)外開(kāi)放,主要用到MIT和Apache的許可證,甚至還接收社區(qū)貢獻(xiàn)。新平臺(tái)的設(shè)計(jì)理念源自以往的開(kāi)源編譯器Roslyn(.NET編譯器平臺(tái)),目的在于不局限于Windows或Visual Studio,而是允許開(kāi)發(fā)者在任意集成開(kāi)發(fā)環(huán)境(IDE)中使用任意系統(tǒng),然后在任意服務(wù)器或平臺(tái)運(yùn)行程序。
為了演示這個(gè)新平臺(tái),我們搭建一個(gè)超級(jí)簡(jiǎn)單的控制臺(tái)應(yīng)用程序,然后使用新的dotnet命令行接口(CLI)在Windows和Linux上運(yùn)行。開(kāi)始之前,需要先安裝.NET Core(包含dotnet CLI工具)。微軟的在線文檔中為大多數(shù)平臺(tái)(包括各種各樣的發(fā)行版)提供完整的軟件文檔。
如果你不想在本地安裝.NET Core,微軟/dotnet:最新Docker圖片預(yù)置了所有最新的工具和SDK。
搭建新程序
.NET Core版本迭代很快,我寫(xiě)的這些主要適用于當(dāng)時(shí)的最新版本。
首先,我們用dotnet的新控制臺(tái)搭建一個(gè)新的控制臺(tái)應(yīng)用程序,然后自動(dòng)生成一個(gè)Program.cs和 .csproj,這是以當(dāng)前的目錄命名的(我的名為app.csproj)。
為了驗(yàn)證可行性,嘗試運(yùn)行一下dotnet restore,這個(gè)可以恢復(fù)運(yùn)行程序需要用到的所有包。這個(gè)步驟完成后,運(yùn)行dotnet run,然后你就可以在控制臺(tái)看到關(guān)鍵信息Hello,World!了。
添加邏輯功能
在你最喜歡的文本編輯器中打開(kāi)Program.cs,然后用下面的內(nèi)容替換Console.WriteLine(“Hello World!”);,因?yàn)?NET與Visual Studio之間沒(méi)有耦合關(guān)系,所以你可以用任意你喜歡的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()}");
對(duì)于不熟悉C#和.NET的人來(lái)說(shuō),這段代碼實(shí)際上是在用當(dāng)前環(huán)境的信息打印一個(gè)更詳細(xì)版的經(jīng)典Hello, World。注意,這里的代碼并不是針對(duì)某一個(gè)指定的平臺(tái)。
運(yùn)行新程序
如果你現(xiàn)在運(yùn)行dotnet build,你會(huì)得到一個(gè).dll文件,還會(huì)有其他文件添加到你的./bin/Debug文件夾。你已經(jīng)寫(xiě)了一段跨平臺(tái)的控制臺(tái)程序,將那些文件復(fù)制到另一臺(tái)運(yùn)行.NET Core的機(jī)器——Linux或者OS X也可以,然后運(yùn)行dotnet ./path/to/your/app.dll,你將看到和前面一樣的輸出,然而你用的仍然是本地運(yùn)行環(huán)境。幸運(yùn)的是,.NET Core可以在一個(gè)獨(dú)立包中搭建和發(fā)布本地二進(jìn)制文件,所以你的目標(biāo)系統(tǒng)(或用戶(hù))不用安裝.NET也可以運(yùn)行程序。
嘗試其他平臺(tái)
要想嘗試跨平臺(tái)應(yīng)用程序,我們必須先確定用于搭建平臺(tái)的.NET Core SDK,由于這個(gè)過(guò)程涉及到本地庫(kù),除了指明需要用到的平臺(tái)以外,還需要確定風(fēng)格和版本。
在應(yīng)用目錄中打開(kāi).csproj文件,將下列XML標(biāo)簽添加到各標(biāo)簽中:
<propertygroup><runtimeidentifiers>win10-x64;osx.10.12-
x64;debian.8-x64</runtimeidentifiers></propertygroup>
這樣,.NET就知道我們想要為Windows 10 64-bit、macOS Sierra和Debian 8搭建一個(gè)獨(dú)立的應(yīng)用程序,接下來(lái)要做的就是運(yùn)行之前選擇的環(huán)境下的dotnet publish,然后在每一個(gè)平臺(tái)上編譯本地二進(jìn)制文件。
注意一下,在./app/bin/Debug/netcoreapp1.1/文件夾中每一個(gè)平臺(tái)都有對(duì)應(yīng)的目錄,每一個(gè)目錄都有對(duì)應(yīng)的publish文件夾,這個(gè)文件夾里有你的本地應(yīng)用程序的副本,還有所有需要運(yùn)行的.NET庫(kù)的副本,所有沒(méi)必要在目標(biāo)系統(tǒng)上安裝.NET,只需要把這些文件復(fù)制到一個(gè)新的文件夾然后運(yùn)行可執(zhí)行文件就好了。
結(jié)語(yǔ)
使用C#和新的.NET Core平臺(tái),你可以在任意平臺(tái)搭建應(yīng)用程序,再將它發(fā)布到任意平臺(tái)——100%代碼復(fù)用、完全本地、無(wú)運(yùn)行時(shí)、不用安裝框架。來(lái)GitHub吧,你可以看到新的框架讓這項(xiàng)技術(shù)更加強(qiáng)大!不管對(duì)于C#還是.NET,這都是非常激動(dòng)人心的時(shí)刻!深圳網(wǎng)站建設(shè)公司博納網(wǎng)絡(luò)編輯整理。
[聲明]本網(wǎng)轉(zhuǎn)載網(wǎng)絡(luò)媒體稿件是為了傳播更多的信息,此類(lèi)稿件不代表本網(wǎng)觀點(diǎn),本網(wǎng)不承擔(dān)此類(lèi)稿件侵權(quán)行為的連帶責(zé)任。故此,如果您發(fā)現(xiàn)本網(wǎng)站的內(nèi)容侵犯了您的版權(quán),請(qǐng)您的相關(guān)內(nèi)容發(fā)至此郵箱【qin@198bona.com 】,我們?cè)诖_認(rèn)后,會(huì)立即刪除,保證您的版權(quán)。
技術(shù)咨詢(xún)
價(jià)格咨詢(xún)
建議投訴
0755-82538016
關(guān)閉窗口