1. 程式人生 > >ASP.NET MVC Core 介紹和項目解讀

ASP.NET MVC Core 介紹和項目解讀

.get directory art DDM 圖片 驗證 mes hsts new

ASP.NET MVC Core 項目文件夾解讀

一、項目文件夾總覽

技術分享圖片

1.1、Properties——launchSettings.json

  啟動配置文件,你可以在項目中“Properties”文件夾中找到該文件。launchSettings.json文件為一個ASP.NET Core應用保存特有的配置標準,用於應用的啟動準備工作,包括環境變量,開發端口等。在launchSettings.json文件中進行配置修改,和開發者右鍵項目——屬性中所提交的更改的效果是一樣的(目前右鍵屬性中的Property真是少得可憐),並且支持同步更新。此文件設置了Visual Studio可以啟動的不同環境,以下是示例項目中launchSettings.json文件生成的默認代碼:

{
  "iisSettings": {
    "windowsAuthentication": false, //啟動windows身份驗證,默認為false
    "anonymousAuthentication": true, //啟用匿名身份驗證,默認為true
    "iisExpress": {
      "applicationUrl": "http://localhost:28869",//應用程序啟動的URL路"sslPort": 44318//啟用SSL端口
    }
  },
  "profiles": {
    "IIS Express": {
      
"commandName": "IISExpress",//傳遞命令參"launchBrowser": true,//是否在瀏覽器啟"environmentVariables": {//將環境變量設置為鍵值"ASPNETCORE_ENVIRONMENT": "Development" } }, "TR.COM.WebSite.Admin": {//選擇本地自宿主啟動,詳見Program.cs文件,刪除該節點將導致VS啟動選項缺"commandName": "Project", "launchBrowser
": true, "applicationUrl": "https://localhost:5001;http://localhost:5000",//本地自宿主URL "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } }

  在這裏,有兩個配置節點:“IIS Express”、“TR.COM.WebSite.Admin”,這兩個節點,分別對應Visual Stuido的開始調試按鈕的下拉選項,您可以選擇對應的選項來啟動應用程序:

技術分享圖片

launchSettings.json 文件用於設置在 Visual Stuido 運行應用程序的環境。我們也可以添加節點,該節點名稱會自動添加到 Visual Stuido 調試按鈕的下拉選項中。

要獲取其它更多屬性的詳細信息,請轉到此鏈接:http://json.schemastore.org/launchsettings 。

1.2、wwwroot

  wwwroot是一個存放靜態內容的文件夾,存放了諸如css,js,img等文件。

1.3、appsettings

  同樣是顧名思義——應用配置,類似於.NET Framework上的Web.Config文件,開發者可以將系統參數通過鍵值對的方式寫在appsettings文件中(如程序的連接字符串),而Startup類中也在構造器中通過如下代碼使得程序能夠識別該文件。

public Startup(IConfiguration configuration)
 {           
        var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json");
        Configuration = builder.Build();
}

  appsettings默認的設置如下:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}

1.4、Startup.cs

  Startup.cs文件是ASP.NET Core的啟動入口文件,想必嘗試過OWIN開發的一定不會陌生。項目運行時,編譯器會在程序集中自動查找Startup.cs文件讀取啟動配置。除了構造函數外,它可以定義Configure和ConfigureServices方法。默認的startup.cs設置如下

public class Startup
    {
     //用來啟動配置文件Configuration
public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); }); } }

  startup.cs的設置說明:

  (1) 構造函數:用來啟動配置文件Configuration

public Startup(IConfiguration configuration)
 {           
        var builder = new ConfigurationBuilder()
        .SetBasePath(Directory.GetCurrentDirectory())
        .AddJsonFile("appsettings.json");
        Configuration = builder.Build();
}

  

  (2) ConfigureServices

  ConfigureServices 用來配置我們應用程序中的各種服務,它通過參數獲取一個IServiceCollection 實例並可選地返回 IServiceProvider。ConfigureServices 方法需要在 Configure 之前被調用。更多內容請見官方文檔

public void ConfigureServices(IServiceCollection services)
{
       services.Configure<CookiePolicyOptions>(options =>
       {
            // This lambda determines whether user consent for non-essential cookies is needed for a given request.
            options.CheckConsentNeeded = context => true;
            options.MinimumSameSitePolicy = SameSiteMode.None;
        });  
        services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}

  (3) Configure

  Configure 方法用於處理我們程序中的各種中間件,這些中間件決定了我們的應用程序將如何響應每一個 HTTP 請求。它必須接收一個IApplicationBuilder參數,我們可以手動補充IApplicationBuilder的Use擴展方法,將中間件加到Configure中,用於滿足我們的需求。

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                app.UseHsts();
            }

            app.UseHttpsRedirection();
            app.UseStaticFiles();
            app.UseCookiePolicy();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }

ASP.NET MVC Core 介紹和項目解讀