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),本系列持续更新,也可以通过我的网站访问 ...
随机推荐
- OC数组的简单使用、NSArray
和上一篇文章一样,数组的重要性不言而喻,在OC编程的过程中我们会不断的使用到NSArray,和C语言不同的是,我们这里的数组只能存OC对象类型,不能存C语言基本数据类型,也不能存NSNull类型,但是 ...
- 《python语言程序设计》_第二章笔记之2.13_软件开发流程
#程序1: 设计:由用户键入利率.贷款数以及贷款的年限,系统计算出每月还贷数和总还款数 注意:输入的年利率是带有百分比的数字,例如:4.5%.程序需要将它除以100转换成小数.因为一年有12个月,所以 ...
- ETC的发展演变
ETC是不停车电子收费系统,ETC专用车道是给那些装了ETC车载器的车辆使用的,采用电子收费方式. ETC( Electronic Toll Collection ) 不停车收费系统是目前世界上最 ...
- C#介绍RabbitMQ使用篇一HelloWorld
RabbitMQ官网官方介绍: 译文: RabbitMQ是目前部署最广泛的开源消息代理(何为代理?可以理解为一个提供功能服务的中间件). 在全球范围内的大小企业中的生产环境中,RabbitMQ的部署两 ...
- 利用python完成大学刷课(从0到完成的思路)
i春秋作家:tllm 原文来自:利用python完成大学刷课(从0到完成的思路) 最近刚刚开学,学校总是有很多让人无语的课要修,还不能不修.然后我想写一个自动修课的脚本.大佬们不要笑我 是边面向百度学 ...
- 第38节:hashCode()与toString()与equals()函数的作用,内部类和匿名内部类
hashCode()和toString() Hash算法是把任意长度的数据通过hash算法成为散列值 hashCode() public int hashCode(){ int result = 10 ...
- ruby-super用法
ruby语法-super用法 本文主要介绍ruby中super方法的使用.super方法参数传递.method执行顺序. 下面主要通过实例来说明super方法的使用: 示例1: #!/usr/bin/ ...
- SpringCache实战遇坑
1. SpringCache实战遇坑 1.1. pom 主要是以下两个 <dependency> <groupId>org.springframework.boot</g ...
- 使用redis配置分布式session
1. spring-redis-session 1.1. 配置 /** * @author laoliangliang * @date 2018/12/21 17:19 */ @Configurati ...
- 解决Python中PyCharm导入模块时,模块名下出现红色波浪线的问题
在博主第一次在PyCharm中导入模块时,模块名下出现红色波浪线,不影响程序执行,但强迫症忍不了 以下是解决办法 Let's do it ... 进入设置,找到Console下的Python Cons ...