ASP.NET Core ถูกสร้างใหม่จากรุ่นก่อนหน้าของ ASP.NET ซึ่งการกำหนดค่า (Configuration) ขึ้นอยู่กับ System.Configuration และไฟล์ XML ใน web.config ใน ASP.NET Core มีวิธีใหม่ที่ง่ายขึ้นในการประกาศและเข้าถึงการตั้งค่าสากลสำหรับ Solution, การตั้งค่าเฉพาะโปรเจกต์, การตั้งค่าเฉพาะลูกค้า ฯลฯ โมเดลการกำหนดค่าใหม่ทำงานร่วมกับไฟล์ XML, INI และ JSON
ไฟล์ JSON การกำหนดค่าหลัก 6 ไฟล์ใน ASP.NET Core
global.json
launchsettings.json
appsettings.json
bundleconfig.json
project.json
bower.json
global.json
สามารถกำหนดการตั้งค่าระดับ Solution ในไฟล์ global.json
{
"projects": ["src", "test"],
"sdk": {
"version": "1.0.0-preview2-003121"
}
}
- projects - คุณสมบัติ projects กำหนดตำแหน่งของซอร์สโค้ดสำหรับ Solution ระบุตำแหน่งสองแห่งสำหรับโปรเจกต์ใน Solution: src และ test โดย src มีแอปพลิเคชันจริง และ test มีการทดสอบ
launchsettings.json
ในไฟล์ launchsettings.json สามารถกำหนดการตั้งค่าเฉพาะโปรเจกต์ที่เกี่ยวข้องกับแต่ละโปรไฟล์ที่ Visual Studio กำหนดให้เปิดแอปพลิเคชัน รวมถึงตัวแปรสภาพแวดล้อมที่ควรใช้ สามารถกำหนดเฟรมเวิร์กสำหรับโปรเจกต์สำหรับการคอมไพล์และดีบักสำหรับโปรไฟล์เฉพาะได้
{
"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"
}
}
}
}
สามารถเปลี่ยนการตั้งค่าสำหรับแต่ละโปรไฟล์ได้ผ่านการคลิกขวาที่โปรเจกต์ แล้วเลือก Properties
appsettings.json
ASP.NET เก็บการตั้งค่าการกำหนดค่าแอปพลิเคชันใน Web.config ส่วน ASP.NET Core ใช้ AppSettings.json เพื่อเก็บการตั้งค่าแอปพลิเคชันแบบกำหนดเอง, Connection String ของฐานข้อมูล, Logging ฯลฯ
{
"ApplicationInsights": {
"InstrumentationKey": ""
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
bundleconfig.json
สามารถกำหนดการตั้งค่าสำหรับ Bundling และ Minification สำหรับโปรเจกต์ได้
[
{
"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 ใช้ไฟล์ Project.json สำหรับเก็บการตั้งค่าการกำหนดค่าระดับโปรเจกต์ทั้งหมด ไฟล์ Project.json เก็บข้อมูลการกำหนดค่าในรูปแบบ JSON
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0"
// ... dependencies อื่นๆ
}
}
bower.json
Bower เป็นตัวจัดการแพ็กเกจสำหรับเว็บ Bower จัดการคอมโพเนนต์ที่ประกอบด้วย HTML, CSS, JavaScript, ฟอนต์ หรือแม้แต่ไฟล์ภาพ Bower ติดตั้งเวอร์ชันที่ถูกต้องของแพ็กเกจที่คุณต้องการและ dependencies ของมัน
หมายเหตุ: ใน ASP.NET Core รุ่นใหม่ (2.0+) ไฟล์project.jsonและbower.jsonถูกแทนที่ด้วย.csprojและLibMan/npmตามลำดับ