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 |