不久前看到一篇博文,那是關於多個服務的服務器平台的詳細教程,它使用 GitLab CI 在 AWS 上,當時使用單個命令行進行部署, 至今回想,令人感覺很酷。

這兩天,偶然聽說一些軟件公司的 HR 在招聘原則上拒絕任何希望使用.NET 的候選人,原因如下:.NET 是一個古老的封閉式生態係統,與其他更性感的開發平台截然不同,如 NodeJS 或 RubyRails,這些開發平台更加靈活和開放。.NET 實際上有點像 Java,但是,JAVA 擁有強大的開源生態圈、而且可以跨平台,關鍵的是 Java 不被邪惡的微軟一家壟斷。
當時,我正在我的個人 MacBook 上使用 C#和.NET Core 開發 Web 應用程序,我使用 Lambdas 函數,Linux EC2 和 Docker 容器在 AWS 上使用 GitLab 進行部署。我甚至 5 年前曾經在.NET Core 的官方開源 Github 存儲庫中 Pull 了一些代碼和測試,這些存儲庫仍在其上。
毋庸置疑,我作為一名.NET 開發人員,聽到這一點消息,我的內心開始覺得不舒服。
所以在此,我想做幾個 demo,來告訴大家可以在 C#和.NET Core 中輕鬆快速地開發、部署,就像我們在 JavaScript 和 NodeJS 中所做的那樣: 跨平台、開源、一個命令行搞定一切。
.NET Core 平台是什麼?
當我們談論.NET Core 平台時,事情很快變得比較複雜,在這裏,我隻引用官方文檔:
.NET Core 運行時:類型係統,程序集加載,垃圾收集器,本機互操作和其他基本服務。
.NET Core 框架庫提供原始數據類型,應用程序組合類型和基本實用程序。
ASP.NET 運行時:提供了一個框架,用於構建基於雲的互聯網應用程序,例如 Web 應用程序,IoT 應用程序和移動後端。.NET Core CLI:提供工具和語言編譯器(Roslyn 和 F#)支持.NET Core 開發人員體驗。
dotnet 工具:用於啟動.NET Core 應用程序和 CLI 工具。它選擇並托管運行時,提供程序集加載策略並啟動應用程序和工具。
以上內容總結:
運行時,可以通過執行.NET Core 的二進製文件。
ASP.NET Core 是一個框架和一組庫,可以用來構建 Web 應用程序和 Web API。
.NET Core CLI 與其他平台 CLI 類似,允許創建,構建,發布,設置和支撐項目以及其他操作。
Hello world,動手操作吧:
我的目標是向您展示如何快速輕鬆地使用.NET Core 來創建應用程序和網站,就像使用 NodeJS 或 RubyRails 一樣 - 讓我們開始吧:
在 Linux 安裝很簡單 ; 隻需點擊此鏈接並選擇您的發布,同時注冊 Microsoft 密鑰和 feed。
安裝必要的軟件包需要大約三、四個命令。
在 Linux Ubuntu 上,從終端看起來的樣子:
wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get install apt-transport-https
sudo apt-get update
sudo apt-get install dotnet-sdk-2.2
安裝完成後,通過如下命令進行測試是否成功:
dotnet --version
> 2.2.300
在 MacO 或 Windows 上安裝.NET Core 更簡單:隻需從官方 Microsoft 門戶下載安裝包,安裝程序為您自動完成這些工作,通常隻需要幾分鍾。
Hello World!
在眾所周知的程序教程中,首先創建一個控製台應用程序:顯示 Hello World!。
通過命令行來創建文件夾,然後通過命令行創建控製台應用程序工程:
mkdir hello-world cd hello-world dotnet new console 你將得到如下文件結構:
hello-world
├── bin
├── obj
├── hello-world.csproj
├── Program.cs
您可以忽略 bin 和 obj 文件夾,這些文件夾僅用於構建和調試。事實上,我在 VSCode 和 Git 上都忽略了它們。
.csproj 文件包含有關運行時,包,版本和其他項目配置屬性的信息。它默認很小。
Exe
netcoreapp2.2
最後,我們最重要的文件:Program.cs。
using System; namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } } } 在這裏,沒有什麼是棘手的 - 你有你的默認命名空間。通過靜態方法 Main()聲明主入口點的類。類或命名空間可以更改為您想要的任何內容,也不需要公開,Main 方法也不需要。這裏的類是內部的,方法是私有的。
唯一的限製是至少要有這個靜態 Main 方法。甚至參數都是可選的,但它們的存在是為了通過命令行執行提供對參數的訪問。
現在,讓我們運行應用程序:
dotnet run
> Hello World!
要獲得可在具有.NET Core 運行時(此處為 2.2 版)的任何環境中部署的應用程序的發行版,隻需按如下方式發布應用程序:
dotnet publish -c Release -o dist
生成的 dist 文件夾應如下所示:
dist
├── hello-world.deps.json
├── hello-world.dll
├── hello-world.pdb
├── hello-world.runtimeconfig.json
可以刪除 hello-world.pdb,因為它僅用於調試目的,但默認情況下會生成 pdb,即使在發布模式下也是如此。您可以通過將此代碼段添加到 hello-world.csproj(在標記下)來禁用此自動生成 pdb。
false
hello-world.dll 就是是您編譯的代碼,使用此運行時命令可執行:
dotnet hello-world.dll
dlldeps.json 和 runtimeconfig.json 文件分別用於處理其他包的依賴關係和配置運行時。
最後,您可以使用 dotnet publish 運行時標識符目錄輕鬆地在發布特定平台:
dotnet publish -c Release -r win-x64 -o dist/win-x64
dotnet publish -c Release -r osx-x64 -o dist/osx-x64
dotnet publish -c Release -r linux-x64 -o dist/linux-x64
Hello Web !
好吧,這很酷,我們很容易在控製台上寫了一行,但是有些網絡 Web 呢?好吧,這也很容易做到!
首先,讓我們添加 ASP.NET Core 的包:
dotnet add package Microsoft.AspNetCore
引用新包就像為 NodeJS 導入 npm 包一樣。
這個包將允許我們配置,構建和運行一個簡單的 WebHost 程序。這可以在 Main()方法中的單行代碼中完成。
生成的 Program.cs 應如下所示:
using System;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
namespace HelloWorld
{
class Program
{
static void Main()
{
Console.WriteLine("Hello World!");
WebHost.CreateDefaultBuilder()
.Configure(app => app.Run(context => context.Response.WriteAsync("Hello World!")))
.Build()
.Run();
}
}
}
您可以使用與上麵相同的命令來運行和構建應用程序:
dotnet run
現在打開你的瀏覽器,轉到 http:// localhost:5000,享受這個簡潔的 Hello World, 網頁:

本文到此為止,本次實踐完全基於 Macbook 電腦,在 Linux 命令行下完成,很酷,不是嘛。
在閱讀完之後,我真的希望你對.NET Core 的看法有所改變:微軟在多年前對.NetCore 進行開源, .NetCore 不僅僅隻支持 Windows、而是可以跨平台和開源,令人興奮的是是,到 2019 年秋天,.NET Core 3.0 即將問世,作為技術從業人員,這些驚喜的變化你不得不關注。
載自:ITEYE
力軟軟件快速開發平台
相關資訊
最新熱門應用
bicc數字交易所app
其它軟件32.92MB
下載
比特國際網交易平台
其它軟件298.7 MB
下載
熱幣交易所app官方最新版
其它軟件287.27 MB
下載
歐昜交易所
其它軟件397.1MB
下載
vvbtc交易所最新app
其它軟件31.69MB
下載
星幣交易所app蘋果版
其它軟件95.74MB
下載
zg交易所安卓版app
其它軟件41.99MB
下載
比特幣交易app安卓手機
其它軟件179MB
下載
福音交易所蘋果app
其它軟件287.27 MB
下載
鏈易交易所官網版
其它軟件72.70MB
下載