一、搭建开发环境
在Windows平台下,开发.NET Core 程序需要安装如下内容:
1. .NET Core runtime
2. Visual Studio 2015 with Update 3
可参考微软的官方指南:https://www.microsoft.com/net/core#windowsvs2015
二、创建示例
1.选择.NET Core Web Application模版
2.选择Web Application
3.等待VS还原packages
4.按F5启动浏览器能看到下面的页面证明一个Demo已经创建成功了。
三、程序入口点
3.1 Main函数
ASP.NET Core程序如.NET Framework里面的Console Application类似,有一个Main函数的入口点。在默认情况下,ASP.NET Core程序的Main函数是放在Program.cs类里面,如下:
在这个Main函数中,使用WebHostBuilder的实例创建一个Web application Host。实例的UseKestrel方法定义了web服务器和Startup类。在WebHostBuilder中提供了很多可选的方法,包括:UseIISIntegration(在IIS和IIS Express中寄宿ASP.NET Core程序)、UseContentRoot (指定根内容的目录)。Build和Run方法构建用于寄宿程序的IWebHost对象,并启动对进入的HTTP请求的监听。
3.2 宿主(Host)和服务器(Server)
ASP.NET Core 程序要求在Host才能执行。
Host:负责程序的启动和生命周期管理。包括:确保应用程序的服务可用并正确配置。
Server:负责接收HTTP请求。你可以把Host作为是对Server的包装器。
Host被配置用来使用Server;Server对Host一无所知。
3.3 WebHostBuilder
WebHostBuilder是用于配置和启动host的。Host一般都使用WebHostBuilder的实例来创建。WebHostBuilder的实例构建和返回一个WebHost的实例。Host必须实现IWebHost接口。IWebHost接口接口暴露了features和services集合,以及一个Start方法。
3.4 Kestrel
在之前版本的ASP.NET程序中必须依赖IIS来启动,而IIS会为挂载在其中的ASP.NET注册一个ISAPI filter。每当请求过来时,IIS则会启动w3wp的worker process来开始整个ASP.NET runtime程序。
在.NET Core诞生之后,为了适应跨平台的需要,ASP.NET Core的启动方式被重新设计以适应新的需求,所以它和IIS之间的关系也有所改变。为了跨平台,ASP.NET现在的执行方式就如一般的Console Application一样。
在ASP.NET Core中自带一个基于libuv的高性能I/O异步组件——Kestrel,使得ASP.NET Core程序可以不依赖与IIS的存在便能启动runtime。也可以使用其他的Web服务器。
3.5 UseIISIntegration
如果ASP.NET Core程序和IIS一起使用的话,UseIISIntegration方法应该作为构建Host的一部分被调用。为了在ASP.NET Core中使用IIS,你必须同时指定UseKestrel和UseIISIntegration。Kestrel是被设计为在代理的背后运行,你不能面向互联网直接部署。UseIISIntegration指定IIS作为反向代理服务器。如果是Linux,你应该使用Nginx或类似的反向代理服务器。
3.6 Startup类
负责配置请求管道,处理所有程序中的请求。
四、参考
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/hosting
http://codelover.link/2016/07/28/asp.net-core-startup/
https://dotblogs.com.tw/aspnetshare/2016/03/28/20160327
原文连接:http://www.cnblogs.com/liszt/p/6402320.html