一、搭建开发环境

在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入门的更多相关文章

  1. CentOS开发ASP.NET Core入门教程

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9891346.html 因为之前一直没怎么玩过CentOS,大多数时间都是使用Win10进行开发,然后程序 ...

  2. ASP.NET Core 入门教程 10、ASP.NET Core 日志记录(NLog)入门

    一.前言 1.本教程主要内容 ASP.NET Core + 内置日志组件记录控制台日志 ASP.NET Core + NLog 按天记录本地日志 ASP.NET Core + NLog 将日志按自定义 ...

  3. ASP.NET Core入门(一)

    大家好,很荣幸您点了开此篇文章,和我一起来学习ASP.NET Core,此篇文字为<ASP.NET Core入门>系列中的第一篇,本系列将以一个博客系统为例,从第一行代码,到系统发布上线( ...

  4. 【翻译】ASP.NET Core 入门

    ASP.NET Core 入门 原文地址:Introduction to ASP.NET Core         译文地址:asp.net core 简介           翻译:ganqiyin ...

  5. ASP.NET CORE 入门教程(附源码)

    ASP.NET CORE 入门教程 第一课 基本概念 基本概念 Asp.Net Core Mvc是.NET Core平台下的一种Web应用开发框架 符合Web应用特点 .NET Core跨平台解决方案 ...

  6. Asp.net Core 入门实战

    Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个合集,方便一次性Clone 目录 快速入门 安装 一个最小的应用 项目模板 路由 静态文件 ...

  7. 转载: ASP.NET Core入门系列文章

    今天在网上发现了ithome上的asp.net core 系列文章,对于新手入门还不错,这里转载一下,也方便查阅. [Day01] 從頭開始 [Day02] 程式生命週期 (Application L ...

  8. C# & ASP.NET Core 入门官方资料汇总

    借助给公司实习生培训事宜,整理了一些微软官方的适合新同学入门的资料,这里分享一下: 工具: Visual Studio 2017 Community 版本下载地址:https://www.visual ...

  9. Angular 5和ASP.NET Core入门

    我希望你们都知道Angular 5已经发布了.在本文中,我们将看到如何使用Angular5TemplateCore开始使用Angular 5和ASP.NET Core. 使用Angular5Templ ...

  10. Asp.net Core 入门实战 2.请求流程

    Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个源码合集,方便一次性Clone,喜欢的(Star),本系列持续更新,也可以通过我的网站访问 ...

随机推荐

  1. zabbix环境搭建

    zabbix介绍 zabbix是一个开源的监控软件集成了nagos和cat的优势 而且有很多自带的插件可以使用,而且还有api接口供我们使用 zabbix还支持自定义监控项 初始环境- centos ...

  2. pycharm断点应用

    1.在需要打断点行处,单击鼠标左键打断点 2.调试程序开始,在第一个断点之前停止 3.跳过第一个断点进入到下一个断点

  3. DICOM医学图像处理:WEB PACS初谈四,PHP DICOM Class

    背景: 预告了好久的几篇专栏博文一直没有整理好,主要原因是早前希望搭建的WML服务器计划遇到了问题.起初以为参照DCMTK的官方文档wwwapp.txt结合前两天搭建的WAMP服务器可以顺利的实现WM ...

  4. Android插件化的兼容性(上):Android O的适配

    首先声明,<Android插件化开发指南>这本书所介绍的Android底层是基于Android6.0(API level 23)的,而本书介绍的各种插件化解决方案,以及配套的70多个例子, ...

  5. python爬虫学习之爬取全国各省市县级城市邮政编码

    实例需求:运用python语言在http://www.ip138.com/post/网站爬取全国各个省市县级城市的邮政编码,并且保存在excel文件中 实例环境:python3.7 requests库 ...

  6. 【web渗透技术】渗透攻防Web篇-SQL注入攻击初级

    [web渗透技术]渗透攻防Web篇-SQL注入攻击初级 前言不管用什么语言编写的Web应用,它们都用一个共同点,具有交互性并且多数是数据库驱动.在网络中,数据库驱动的Web应用随处可见,由此而存在的S ...

  7. RichText 富文本开源项目总结

    在Android开发中,我们不免会遇到富文本的编辑和展示的需求,以下是本人之前star的富文本编辑器的开源项目,供大家参考: 一.RichEditor 开源项目地址:https://github.co ...

  8. 第88节:Java中的Ajax和ASP.NET和TCP/IP 教程和JSON

    第88节:Java中的Ajax和Jquery ajax是什么?有什么用?原理,怎么用? ajax是asynchronous javascript and xml(异步javascript和xml),是 ...

  9. puppetdb搭建

    puppetdb搭建 在agent端跑puppet agent -t 正常的情况下,安装puppetdb 部署postgresql数据库 部署puppetdb 建立puppetserver与puppe ...

  10. SpringMVC框架五:图片上传与JSON交互

    在正式图片上传之前,先处理一个细节问题: 每一次发布项目,Tomcat都会重新解压war包,之前上传过的图片会丢失 为了解决这个问题:可以不在Tomcat下保存图片,而是另找一个目录. 上传图片: & ...