ASP.NET Core入门
一、搭建开发环境
在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
ASP.NET Core入门的更多相关文章
- CentOS开发ASP.NET Core入门教程
作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9891346.html 因为之前一直没怎么玩过CentOS,大多数时间都是使用Win10进行开发,然后程序 ...
- ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门
一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...
- ASP.NET Core入门(一)
大家好,很荣幸您点了开此篇文章,和我一起来学习ASP.NET Core,此篇文字为<ASP.NET Core入门>系列中的第一篇,本系列将以一个博客系统为例,从第一行代码,到系统发布上线( ...
- 【翻译】ASP.NET Core 入门
ASP.NET Core 入门 原文地址:Introduction to ASP.NET Core 译文地址:asp.net core 简介 翻译:ganqiyin ...
- ASP.NET CORE 入门教程(附源码)
ASP.NET CORE 入门教程 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 ...
- Asp.net Core 入门实战
Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个合集,方便一次性Clone 目录 快速入门 安装 一个最小的应用 项目模板 路由 静态文件 ...
- 转载: ASP.NET Core入门系列文章
今天在网上发现了ithome上的asp.net core 系列文章,对于新手入门还不错,这里转载一下,也方便查阅. [Day01] 從頭開始 [Day02] 程式生命週期 (Application L ...
- C# & ASP.NET Core 入门官方资料汇总
借助给公司实习生培训事宜,整理了一些微软官方的适合新同学入门的资料,这里分享一下: 工具: Visual Studio 2017 Community 版本下载地址:https://www.visual ...
- Angular 5和ASP.NET Core入门
我希望你们都知道Angular 5已经发布了.在本文中,我们将看到如何使用Angular5TemplateCore开始使用Angular 5和ASP.NET Core. 使用Angular5Templ ...
- Asp.net Core 入门实战 2.请求流程
Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个源码合集,方便一次性Clone,喜欢的(Star),本系列持续更新,也可以通过我的网站访问 ...
随机推荐
- HTML 通过js实现div的拖动效果
最近做项目,碰到一个问题,需要对div实现拖动效果. 在度娘找了很多,要么觉得代码太长,要么就是效果不理想,不过最后还是找到了一个不错的,感谢大神的留贴,方便了我们,就把代码贴下面了: <!DO ...
- MySQL--Double Write
##=======================================##目前大部分服务器使用4K或512B来格式化磁盘,而Innodb存储引擎使用默认16K的数据页,在写入16KB数据页 ...
- 用Ubuntu快速安装Jenkins
一.安装操作系统,安装前准备. 1.操作系统:Ubuntu 18.04 (大家都知道Ubuntu的特点,在线安装,方便很多) 2.apt源.apt源在官网上面分很多种,每个版本的源不一样,如果是其他版 ...
- Android WebView 加载超长 JS 数据
在之前的文章里面,我总结过WebView如何与网页交互,也就是Java如何和JS交互 —— Android WebView 总结 —— Java和JavaScript交互. 基于这篇文章,我们基本上能 ...
- 配置IDM不限速下载百度云的大文件
IDM介绍Internet Download Manager(简称IDM)是一个用于Windows系统的下载管理器,它是共享软件,免费试用期为30天,但是每月均有一段时间优惠. IDM可以让用户自动下 ...
- 画线动画——SVG版和纯CSS版
概述 我们常常在网站中看到一些画线的动画效果,非常炫酷,大多数这种画线动画效果是通过SVG实现的,也有不少是用纯css实现的,下面我总结了一下这2种方法,供以后开发时参考,相信对其他人也有用. 参考资 ...
- linux 使用 vim 玩python
vim 的配置文件默认是当前用户宿主目录下的.vimrc 文件.下列配置是常用 vim 进行 python 开 发的配置. " 高亮当前行 set cursorline " 将 T ...
- JWT(Json web token)简介
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(S ...
- spring boot -thymeleaf-异常处理
异常流程 :controller-ControllerAdvice-异常解析器-默认的error页面 1.错误页面error.html: 程序出现异常会自动跳到error.html里,视频效果,该页面 ...
- springMVC(2)---获取前段数据
springMVC(1)---获取前段数据 首先说明,如果你学过Struts2,那么在学springMVC就会简单很多,我也不最基础的开始写了,我前篇文章搭建了个ssm框架,算是springmvc入门 ...