超詳細,手把手教你入門.NET for Linux

tianxiaoxu發表於2018-05-07

基本上,當你知道了一個程式設計師的首選作業系統是什麼的同時,你就可以猜測出他們使用的是什麼程式語言。例如,如果程式設計師使用的是Windows,那麼他們可能使用的語言列表包括C#,JavaScript和TypeScript,如果是比較傳統的程式設計師,那可能使用Visual Basic,如果是緊跟時代潮流的程式設計師,那他可能就是在用F#;如果他們使用的是Linux,你也會得到一個開源專案列表:Go,Python,Ruby,Rails,Grails,Node.js,Haskell,Elixir等等,當然我們也不能忽略最近嶄露頭角的新語言——Kotlin。

  但是,微軟的一個舉動就打破了這個局面,其製作NET框架,建立.NET Core,開放原始碼可以任何平臺上執行,例如Windows,Linux,MacOS,甚至還可以在手機作業系統—三星Tizen上執行。鑑於這種情況,Linux程式設計師應該儘快熟悉.NET Core,並嘗試使用它來構建生產應用程式。

  如何在Linux上安裝.NET Core

  可以執行.NET Core的Linux發行版包括Red Hat EnterpriseLinux(RHEL),Ubuntu,Debian,Fedora,CentOS,Oracle和SUSE。

  每個發行版都有自己的安裝說明,本文以Fedora 26為例:

  第1步:新增dotnet product feed。

  sudo rpm --import https:// packages.microsoft.com / keys / microsoft.asc

  sudo sh -c'echo -e“[packages-microsoft-com-prod] nname = packages-microsoft-com-prod nbaseurl = https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod nenabled = 1 ngpgcheck = 1 ngpgkey = https://packages.microsoft.com/keys/microsoft.asc“> / etc /yum.repos.d/dotnetdev.repo”

  第2步:安裝.NET Core SDK。

  sudo dnf update

  sudo dnf install libunwind libicu compat-openssl10

  sudo dnf install dotnet-sdk-2.0.0

  建立Hello World控制檯應用程式

  .NET Core安裝完之後,下一步就是建立 “Hello World”控制檯應用程式。

  超詳細,手把手教你入門.NET for Linux

  輸出:

  超詳細,手把手教你入門.NET for Linux

  下面我們來分析一下,上面這段程式碼做了哪些事情?

  dotnew new console

  毫無疑問,這個大家都知道它創造了“Hello World!”控制檯應用,需要注意的是,專案名稱需要匹配目錄名稱; 程式碼是使用模板(控制檯應用程式)構建;專案的依賴關係由從nuget.org提取的dotnet restore命令自動檢索。

  如果檢視目錄的話,你會看到有些檔案被建立了:

  Program.cs

  helloworld.csproj

  Program.cs是C#控制檯應用程式程式碼,Helloworld.csproj是MSBuild相容的專案檔案,當建立Web服務或網站時,專案檔案將具有新的意義。

  dotnet run

  這個命令做了兩件事:建立程式碼,並執行新建的程式碼。無論何時呼叫dotnet run,它都會檢查* .csproj檔案是否已被更改,並執行dotnet restore命令。同時它還會檢查是否有任何原始碼已被更改,並在後臺執行dotnet構建命令構建可執行檔案。最後,它會執行可執行檔案。

  可執行檔案在哪?

  以下是可執行檔案的路徑:

  /opt/rh/rh-dotnet20/root/usr/bin/dotnet

  當你建立一個.net應用,一個元件或者庫的時候,你也正在建立一個DLL。如果你想檢視dotnet build命令建立的內容,可以看看bin / Debug / netcoreapp2.0 /,其中包括helloworld.dll,JSON配置檔案,和helloworld.pdb(除錯資料庫)檔案,同時你也可以檢視JSON檔案。

  執行dotnet run,執行的程式是dotnet。該程式會呼叫DLL檔案,併成為應用程式。

  行動式應用程式

  這個部分是.NET Core開始真正脫離僅限Windows的.NET Framework的地方:剛剛建立的DLL可以執行在安裝了.NET Core的任何系統上,無論是Linux,Windows還是MacOS。它是行動式的,所以被稱為“行動式應用程式”。

  獨立應用程式

  如果你想分發一個應用程式,但是又不想讓使用者在他們的機器上安裝.NET Core,怎麼辦?.NET Core有辦法:獨立應用程式。

  建立獨立應用程式意味著你可以將應用程式分發到任何系統,並且可以無需安裝.NET Core執行。這意味著更快更簡單的安裝,同時也意味著你可以在同一個系統上有多個應用程式執行不同版本的.NET Core。

  需要改進的地方

  當你使用dotnet publish命令建立獨立應用程式時,DLL被放置到目標目錄連同所有的.NET位必須執行DLL。也就是說,你可以在目錄中看到50個檔案。但是這個問題也將很快得到改變,已經在實驗的.NET Native將很快被引入,並在.NET Core釋出。它將構建一個包含所有位元的可執行檔案,這就像Go語言編譯一樣,可以指定目標平臺並得到可執行檔案。

  在64位處理器上為RHEL 7.x構建發行版:

  dotnet publish -c Release -r rhel.7-x64

  Web服務,網站…

  .NET Core模板包含了更多內容,包括對F#和Visual Basic的支援。要獲取內建到.NET Core中的可用模板起始列表,可以使用命令dotnet new --help。

  提示:.NET Core模板可以由第三方建立。

  和大多數命令列工具一樣,使用--help命令可以隨時獲得上下文幫助。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2154098/,如需轉載,請註明出處,否則將追究法律責任。

相關文章