Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Các file JSON cấu hình trong C# ASP.NET Core

ASP.NET Core được kiến trúc lại từ các phiên bản trước của ASP.NET, nơi cấu hình phụ thuộc vào System.Configuration và file XML web.config. Trong ASP.NET Core, có cách mới dễ dàng để khai báo và truy cập cài đặt toàn cục cho solution, cài đặt dành riêng cho project, cài đặt client, v.v. Mô hình cấu hình mới làm việc với file XML, INI và JSON.

Các file JSON cấu hình chính trong ASP.NET Core

Có 6 file JSON cấu hình chính trong ASP.NET Core:

global.json
launchsettings.json
appsettings.json
bundleconfig.json
project.json
bower.json

global.json

File global.json dùng để định nghĩa cài đặt cấp solution.

Ví dụ

{
  "projects": ["src", "test"],
  "sdk": {
    "version": "1.0.0-preview2-003121"
  }
}
  • projects: Thuộc tính projects định nghĩa vị trí source code cho solution. Chỉ định hai vị trí cho projects trong solution: src và test. src chứa ứng dụng thực tế và test chứa các test.

launchsettings.json

Trong file launchsettings.json, bạn có thể định nghĩa cài đặt dành riêng cho project liên quan đến từng profile Visual Studio được cấu hình để khởi chạy ứng dụng, bao gồm các biến môi trường nên được sử dụng. Bạn có thể định nghĩa framework cho project để compile và debug cho các profile cụ thể.

Ví dụ

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "https://localhost:50944/",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "ASPCoreMVCHelloWorld": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "https://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "kestrel": {
        "commandName": "kestrel",
        "sdkVersion": "dnx-clr-win-x86.1.0.0-preview2-003121"
      }
    }
  }
}

Bạn có thể thay đổi cài đặt cho từng profile thông qua click chuột phải vào Project và chọn Properties.

appsettings.json

ASP.NET lưu cài đặt cấu hình ứng dụng trong Web.config. ASP.NET Core sử dụng AppSettings.json để lưu cài đặt ứng dụng tùy chỉnh, connection string database, Logging, v.v. Dưới đây là mẫu Appsettings.json:

Ví dụ

{
  "ApplicationInsights": {
    "InstrumentationKey": ""
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

bundleconfig.json

Bạn có thể định nghĩa cấu hình cho bundling và minification cho project.

Ví dụ

[
  {
    "outputFileName": "wwwroot/css/site.min.css",
    "inputFiles": [
      "wwwroot/css/site.css"
    ]
  },
  {
    "outputFileName": "wwwroot/js/site.min.js",
    "inputFiles": [
      "wwwroot/js/site.js"
    ],
    "minify": {
      "enabled": true,
      "renameLocals": true
    },
    "sourceMap": false
  }
]

project.json

ASP.NET Core sử dụng file Project.json để lưu trữ tất cả cài đặt cấu hình cấp project. File Project.json lưu thông tin cấu hình ở định dạng JSON.

Lưu ý: Từ .NET Core 1.0 trở đi, project.json đã được thay thế bởi file .csproj (MSBuild format).

Ví dụ (phiên bản cũ)

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0"
  }
}

bower.json

Bower là package manager cho web. Bower quản lý các component chứa HTML, CSS, JavaScript, fonts hoặc thậm chí file hình ảnh. Bower cài đặt đúng phiên bản của các package bạn cần và các dependency của chúng.

Lưu ý: Bower hiện đã deprecated. Nên sử dụng npm/yarn hoặc LibMan cho quản lý package client-side.

Tóm tắt

File Mục đích Trạng thái
global.json Cấu hình solution, SDK version Vẫn sử dụng
launchsettings.json Cấu hình debug/profile chạy local Vẫn sử dụng
appsettings.json Cấu hình ứng dụng, connection string, logging Vẫn sử dụng (quan trọng nhất)
bundleconfig.json Cấu hình bundling/minification Vẫn sử dụng
project.json Cấu hình project (dependencies, tools) Đã thay thế bằng .csproj
bower.json Quản lý package client-side Deprecated, dùng npm/LibMan