ASP.NET Core 入門教程 一、使用ASP.NET Core 構建第一個Web應用

1、前言

一、本文主要內容

  • Visual Studio Code 開發環境配置
  • 使用 ASP.NET Core 構建Web應用
  • ASP.NET Core Web 應用啓動類說明
  • ASP.NET Core Web 項目結構說明

二、本教程環境信息

軟件/環境 說明
操做系統 Windows 10
SDK 2.1.401
ASP.NET Core 2.1.3
IDE Visual Studio Code 1.27
瀏覽器 Chrome 69

三、前置知識

你可能須要的前置知識html

  • VS Code + .NET Core快速開始

https://ken.io/serie/dotnet-c...git

  • C#語法學習

http://www.runoob.com/csharp/...github

2、環境安裝與配置

一、SDK 下載與安裝

  • 下載

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

跨平臺,根據本身的需求選擇便可。
這裏我下載的是:SDK 2.1.401,你能夠選擇2.1.x的最新版本json

  • 安裝

略,一直下一步便可,沒什麼須要特別注意的。
若是你真想了解,能夠參考:https://ken.io/note/dotnet-co...windows

二、VS Code下載&安裝

  • VS Code 下載

下載地址:https://code.visualstudio.com...
反正VS Code跨平臺,根據本身的須要選擇就能夠了,瀏覽器

  • VS Code 安裝

略,一直下一步便可,沒什麼特別注意的。
若是你用的macOS,直接拖動到應用程序目錄便可,更簡單快捷。bash

三、VS Code配置

  • 基礎擴展安裝
擴展 說明
C# 包括語法高亮顯示、智能感知、定義、查找全部引用等。調試支持。網絡核心(CoreCLR)。
Chinese (Simplified) 簡體中文補丁包

快捷鍵(Ctrl+Shift+X)進入擴展管理頁,直接搜索擴展名安裝便可,或者點擊左側工具欄圖標進入擴展管理頁網絡

macOS版本快捷鍵是 Shift+Commnad+X

image

3、VS Code 開發 ASP.NET Core Web項目

一、項目建立

  • 經過命令行建立項目
#建立項目目錄  
mkdir projects

#進入項目目錄  
cd projects

#建立項目  
dotnet new web -n helloweb

二、VS Code打開項目

菜單:文件->打開,選擇項目目錄打開項目app

項目打開後,VS Code會檢測到缺乏兩個必須的Package:OmniSharp、.NET Core Debugger
而且會自動幫你安裝

Downloading package 'OmniSharp for Windows (.NET 4.6 / x64)' (31017 KB).................... Done!
Installing package 'OmniSharp for Windows (.NET 4.6 / x64)'

Downloading package '.NET Core Debugger (Windows / x64)' (41984 KB).................... Done!
Installing package '.NET Core Debugger (Windows / x64)'

Finished

安裝完成後VS Code會提示:

Required assets to build and debug are missing from 'helloweb'. Add them?

image

選擇Yes便可。

這時候,能夠看一下左側資源管理器,咱們能夠看到.vscode目錄添加了兩個配置文件:launch.json,tasks.json。
項目的編譯和調試配置文件就已經準備好了

image

三、VS Code啓動項目

咱們直接按下F5,或者菜單:調試->啓動調試啓動項目
ASP.NET Core 默認綁定是5001端口,並且ASP.NET Core 2.1以後默認綁定了HTTPS,項目啓動成功後,VS Code會幫咱們打開默認瀏覽器並訪問:https://localhost:5001

由於咱們並無配置SSL證書,因此瀏覽器會發出警告⚠️,以Chrome爲例:

image

這時候,咱們點擊高級,救護出現繼續訪問的入口

image

咱們點擊繼續訪問,就會出現Hello World!

image

四、修改綁定協議HTTPS爲HTTP

接着咱們能夠修改配置去掉HTTPS協議綁定
打開Properties/launchSettings.json文件

{
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:53122",
      "sslPort": 44309
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "helloweb": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

iisSettings、profiles.helloweb配置節點都有啓動綁定配置,由於VS Code啓動項目默認是不經過IIS來host的,iisSettings選項咱們忽略便可。

"helloweb": {
      "commandName": "Project",
      "launchBrowser": true,
      "applicationUrl": "http://localhost:5001",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }

將applicationUrl修改成http://localhost:5001
而後重啓項目(Ctrl+Shift+F5)機會看到乾淨純潔的Hello World!

image

五、項目啓動簡介

  • 應用程序入口類
public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

在應用啓動的時候,會執行CreateWebHostBuilder方法,在這個方法中經過類Startup建立了默認了HostBuilder

  • 應用啓動類
public class Startup
{

    ConfigureServices(IServiceCollection services)
    {
    }

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.Run(async (context) =>
        {
            await context.Response.WriteAsync("Hello World!");
        });
    }
}
方法 說明
ConfigureServices 用於配置應用啓動時加載的Service
Configure 用於配置HTTP請求管道

web項目模板默認在項目啓動的時候調用IApplicationBuilder.run方法,在當前HTTP上下文(HttpContext)中輸出了Hello World!

context.Response.WriteAsync("Hello World!");

4、備註

一、項目結構說明

根目錄/文件 說明
.vscode目錄 VS Code項目配置目錄,至關於.vs、.idea文件夾
bin目錄 編譯輸出目錄,至關於Java項目的target目錄
obj目錄 編譯配置與中間目錄,用於存放編譯配置與編譯中間結果
Properties目錄 用於存放項目配置
wwwroot目錄 靜態文件目錄
helloweb.csproj文件 項目描述文件
Program.cs文件 應用程序入口類文件
Startup.cs文件 ASP.NET Core Web應用啓動類文件,用於項目啓動前進行相關配置

二、附錄

  • 本文代碼示例

https://github.com/ken-io/asp...


本文首發於個人獨立博客:https://ken.io/note/asp.net-c...

相關文章
相關標籤/搜索