首頁 > 軟體

10分鐘學會在Windows/Linux下設定ASP.Net Core開發環境並部署應用

2020-06-16 17:08:28

建立和開發ASP.NET Core應用可以有二種方式:最簡單的方式是通過Visual Studio 2017 來建立,其優點是簡單方便,但需要安裝最新版本Visual Studio 2017 preview 15.3 。另一種方式是使用Visual Studio Code來建立,Visual Studio Code 則是一款輕量級的編輯器 ,可在多種作業系統中執行,如果情況允許,筆者更建議使用Visual Studio Code來進行開發,可在多種平台開發,同時也更靈活,享受更多開發的樂趣。

  • 1.1. 先決條件
    • 1.1.1. 安裝.NET Core 2.0
    • 1.1.2. 安裝Visual Studio 2017
    • 1.1.3. 安裝Visual Studio Code
  • 1.2. 通過Visual Studio 2017 建立應用
  • 1.3. 通過Visual Studio Code 建立應用
  • 1.4. 託管ASP.NET Core 應用
    • 1.4.1. Windows平台託管ASP.NET Core應用
    • 1.4.2. Linux平台下託管ASP.NET Core應用
  • 1.5. 總結

 

1.1. 先決條件

 

1.1.1. 安裝.NET Core 2.0

開發ASP.NET Core 2.0的應用,前提是需要安裝.NET Core 2.0 正式版。

下載地址https://www.microsoft.com/net/download/core

安裝完成後,可在命令列(cmd)中鍵入命令檢視安裝資訊:

dotnet --info

安裝資訊如下圖,表示.NET Core 2.0 已經成功安裝

 

1.1.2. 安裝Visual Studio 2017

如果需要使用Visual Studio 2017 來開發,需要安裝 Visual Studio 2017 Preview version 15.3,個人開發者可選擇社群版,社群版的功能對於日常的開發已經足夠,並且是免費。

下載地址 https://www.visualstudio.com/vs/preview/?dotnetid=639356346.1501080398

下載完成後可選擇相應的工作負載來安裝,如果只是執行ASP.NET Core應用則可以只安裝響應部分,如下圖所示:

 

1.1.3. 安裝Visual Studio Code

Visual Studio Code 是一個輕量級的原始碼編輯器,可以執行在Windows,MacOs,和Linux。通過安裝擴充套件可用來開發諸如C++、C#、 Python、PHP、Go等語言。

下載地址(https://code.visualstudio.com/)[https://code.visualstudio.com/]

安裝完成後,需要安裝c#開發擴充套件如下圖所示

 

1.2. 通過Visual Studio 2017 建立應用

通過Visual Studio 2017 建立應用非常簡單,在新建專案時選擇 ASP.NET Core webapplication即可

在確認選擇後,還會彈出一個對話方塊,選擇程式碼結構模板,此處任意選擇Web Application(MVC),專案即可生成完畢。在Visual Studio 2017中點選執行,一個ASP.NET Core 網站即可執行。

 

1.3. 通過Visual Studio Code 建立應用

首先可在本地新建資料夾,然後開啟Visual Studio Code ,選擇開啟剛才的資料夾

在主選單中依次選擇“檢視” > “整合終端”。在整合終端中輸入 dotnet new mvc 命令,資料夾中會生成 mvc 的模板

模板建立好後,可在整合終端中輸入dotnet run 命令,mvc 站點即可執行。

要在Visual Studio Code 中偵錯程式,需要設定偵錯程式,點選偵錯設定,選擇.NET Core組態檔

此時會生成launch.json檔案,檔案中有三種launch方式,以web節點為例

{
    "name": ".NET Core Launch (web)",
    "type": "coreclr",
    "request": "launch",
    "preLaunchTask": "build",
    "program": "${workspaceRoot}/bin/Debug/<insert-target-framework-here>/<insert-project-name-here>.dll",
    "args": [],
    "cwd": "${workspaceRoot}",
    "stopAtEntry": false,
    "launchBrowser": {
        "enabled": true,
        "args": "${auto-detect-url}",
        "windows": {
            "command": "cmd.exe",
            "args": "/C start ${auto-detect-url}"
        },
        "osx": {
            "command": "open"
        },
        "linux": {
            "command": "xdg-open"
        }
    }
}

將program節點中的路徑改為自己程式集的路徑即可,例如${workspaceRoot/bin/Debug/netcoreapp2.0/WebApplicationSample1.dll然後點選左側偵錯圖示,在左上角可選擇啟動偵錯,啟動後會彈出,對話方塊提示找不到build命令,選擇設定任務執行程式。

設定完成後會多一個task.json檔案,此時再次開啟偵錯,便可執行偵錯。

 

1.4. 託管ASP.NET Core 應用

託管 ASP.NET Core 應用有多種方式,即可在傳統的windows平台,也可以部署在開源的Linux上,還可以通過docker容器來部署,本節將講解多種方式部署 ASP.NET Core 應用

 

1.4.1. Windows平台託管ASP.NET Core應用

ASP.NET Core 應用需要一個Host , Host必須要實現IWebHost介面,介面包括Start方法。建立一個Host 需要使用WebHostBuilder,它會返回一個WebHost範例,用於處理請求。

在上一節所建立的ASP.NET Core應用中,可以看到Program.cs檔案中的 'void Main'方法,此方法是整個應用的入口,在入口中呼叫了CreaDefaultbuilder來建立Host,程式碼如下:


public class Program
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

CreateDefaultBuilder建立了WebHostBuilder的範例來構建啟動 server 的 host。host需要一個實現IServer介面的server。內建的Web server 包括 Kestrel 和 Httpsys,預設使用Kestrel.在命令列工具中執行dotnet run命令,此時即可啟動整個應用。

在ASP.NET Core中可以用兩種HTTP server,它們請求原理如圖所示:

Kestrel 是跨平台的HTTP server 基於libuv(一個跨平台的非同步I/O library)

Httpsys 是基於Windows核心驅動程式Http.Sys的HTTP server。Http.Sys是成熟的技術,可以防範多種攻擊,並提供全功能Web伺服器的魯棒性,安全性和可延伸性。IIS本身作為HTTP偵聽器執行在Http.Sys之上。

在windows平台上還可以使用Http.Sys作為Web Server

    WebHost.CreateDefaultBuilder(args)
                             .UseStartup<Startup>()
                             .UseHttpSys()
                             .Build();

 

更多詳情見請繼續閱讀下一頁的精彩內容http://www.linuxidc.com/Linux/2017-09/146756p2.htm


IT145.com E-mail:sddin#qq.com