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),本系列持续更新,也可以通过我的网站访问 ...
随机推荐
- JS canvas 画板 撤销
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- Debian中配置静态IP
默认安装Debian的时候是用dhcp服务的,有时我们需要设置一下静态IP. 一共涉及两个文件的修改 /etc/network/interfaces auto eth0#iface eth0 inet ...
- mybatis 中的缓冲
package com.oaec.mybatis.test; import com.oaec.mybatis.dao.StudentDao;import com.oaec.mybatis.entity ...
- Oracle Data Guard配置
Oracle Data Guard 的配置在网上有很多资料,但是没有一个完整的,配置下来多少有些问题.在踩了各种坑之后,自己终于配置成功,就想把这过程记录下来. 1 测试环境 主数据库:windo ...
- 前端开发JS白板编程题目若干
在前端开发参加面试的时候,无论是校招还是社招,往往都会碰到让我们直接在白纸或者白板上手撸代码的题目.由于是手撸代码,这些题目肯定不会过于复杂和冗长,否则面试那么一小会时间根本写不完.本文总结了几个我本 ...
- 吴恩达机器学习笔记30-神经网络的反向传播算法(Backpropagation Algorithm)
之前我们在计算神经网络预测结果的时候我们采用了一种正向传播方法,我们从第一层开始正向一层一层进行计算,直到最后一层的ℎ
- 第一节:ASP.NET开发环境配置
第一节:ASP.NET开发环境配置 什么是ASP.NET,学这个可以做什么,学习这些有什么内容? ASP.NET是微软公司推出的WEB开发技术. 2002年,推出第一个版本,先后推出ASP.NET2. ...
- Kali学习笔记27:Burpsuite(上)
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 如果我只能选择一款工具进行Web渗透,那么一定就是Bu ...
- Mysql基本查询、视图、索引、触发器
基本查询 1.修改String sql="update smbms_user set userCode=?,userName=? where id=?"; 2.删除用户String ...
- Http状态信息
一.HTTP协议1.简介:http超文本传输协议,基于请求与响应模式的,无状态的,应用层的协议.绝大读书的web开发都是建立在http协议之上的.2.http工作过程:当请求一个超链接时,http就开 ...