1.初識Coreweb
咱們新建一個項目-json
新建以後咱們就會看到: 服務器
/// <summary> /// asp.net--網站託管在IIS--IIS負責監聽-轉發請求--響應客戶端 /// .net core--控制檯--CreateWebHostBuilder(內置了服務器)--啓動了服務器--負責監聽-轉發請求--響應客戶端 /// KestrelServer 跨平臺的服務器 /// (IIS只能作反向代理,再也不作啥監聽)/// </summary> public class Program { //Main是整個程序的入口 public static void Main(string[] args) { //跨平臺沒有IIS,.NETCore CreateWebHostBuilder(內置了服務器)--啓動了服務器--負責監聽-轉發請求--響應客戶端所有本身作,不用IIS處理 //只要當前這個服務器是跨平臺的,那麼我整個程序都是跨平臺的 // 建立一個服務器實例,服務器是跨平臺的, CreateHostBuilder(args) .Build() .Run(); } /// <summary> /// 調入當前方法,CreateHostBuilder->而後進入 Startup 這個類 /// </summary> public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }) ; }
/// appsettings.json至關於Webconfig,存儲格式也變了,由XML格式變爲了Json格式 /// Asp讀取配置文件:依賴於ConfiguartionManager /// Core依賴於Configuration /// 經過Xpath來讀取配置文件的數據
namespace MyNetCore.MVC6 { /// <summary> /// 固定類 /// </summary> public class Startup { /// <summary> /// 構造函數的注入,內置IOC /// </summary> public IConfiguration Configuration { get; } public Startup(IConfiguration configuration) { Configuration = configuration; } /// <summary> /// 把服務注入容器裏面去【core內置IOC】:當前方法被運行時環境調入,把服務添加到container容器裏面去 /// Startup:IServiceCollection就是一個容器,那咱們是怎麼使用 /// </summary> /// <param name="services"></param> // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllersWithViews(); services.AddSession(); } //上面服務註冊了,那咱們就能夠作一些使用 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { /*如下部分能夠所有註釋,能夠自行定義*/ //判斷當前環境是否是開發環境 if (env.IsDevelopment()) { //是:拋異常 app.UseDeveloperExceptionPage(); } else { //進入特定頁面 app.UseExceptionHandler("/Home/Error"); } //上面是把服務註冊到容器裏面,這邊就能夠使用註冊進來的服務 //使用文件,涉及:一些中間件的使用 //靜態文件可以被保存在網站根目錄下的任意文件夾內,並經過相對根的路徑來訪問。爲了能使用靜態文件服務,必須配置中間件,把靜態文件中間件加入到管道內。
//靜態文件中間件能夠經過下述方法來配置:在項目中增長Microsoft.AspNetCore.StaticFiles包依賴,而後從Startup.Configure中調用.UseStaticFiles擴展方法: //使得web root(默認爲wwwroot)下的文件能夠被訪問。 app.UseStaticFiles(); app.UseSession(); app.UseRouting();//將註冊運行邏輯路由的中間件。 app.UseAuthorization(); //註冊MVC中間件,並配置路由規則 app.UseEndpoints(endpoints => { //MapControllerRoute:添加控制器的常規路由 endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }); } } }