ASP.NET Core 与 .NET Core 演变与基础概述
https://github.com/dotnet/core
https://github.com/aspnet/home
今天看到 .NET Core 的改名计划,感觉跨平台的时代快要来了,从之前的 ASP.NET NEXT,ASP.NET 5,ASP.NET Core 1.0 等概念一路演变过来,花了点时间总结一下几个相关的概念。
OWIN 与 Katana 的关系
ASP.NET Core 1.0 的由来,要追溯到 Katana 这个项目, Katana 是 OWIN 定义规范的一个实现组件集合。
Open Web Interface for .NET (OWIN)
OWIN 是 Open Web Server Interface for .NET 首字母缩写,OWIN 定义了 Web 服务器和应用程序组件之间的交互的规范(specifications); OWIN 在 .NET Web 服务器和 .NET Web 应用之间定义了一套标准的接口,其目的是为了实现服务器与应用之间的解耦。由于这一规范的目的是发展一个广阔且充满活力的、基于 Microsoft .NET Framework 的 Web 服务器和应用程序组件生态系统,因此它可以将服务器与应用程序之间的交互减少到一小部分类型和单个函数签名,这个函数签名被称为应用程序委托(即 AppFunc)
Owin定义规范
服务器 (Server)
HTTP 服务器直接与客户端交互, 并用 OWIN 语义处理请求, 服务器需要一个适配层将客户请求转换成 OWIN 语义。 支持 OWIN 的服务器有 Katana 和 Nowin 。
Web 框架 (Web Framework)
构建在 OWIN 之上的自包含的独立组件, 向 Web 应用提供可用的对象模型或者接口。 Web 框架可能需要一个适配层来转换 OWIN 语义。 支持 OWIN 的 Web 框架有:
- Nancy
- SignalR
- WebApi
- FubuMVC
- Simple.Web
- DuoVia.Http
Web 应用 (Web Application)
一个特定的 Web 应用, 通常构建在 Web 框架之上, 使用 OWIN 兼容的服务器运行。
中间件 (Middleware)
特定的目的的服务器和应用之间的可插拔组件, 可以监视、 路由、 修改请求与响应。
宿主 (Host)
应用与服务器所在的进程, 主要负责应用的启动, 有些服务器自身也是宿主, 比如 Nowin 。
Katana
Katana 是 OWIN 规范定义实现的一个组件和框架集合,可以按其中每个层都能够轻松替代的方式来解耦;OWIN 与 Katana 是 ASP.NET 5 之前东西,关于 host, server,middleware 相关实现的源码可以在github上找到(https://github.com/aspnet/AspNetKatana),之前实现的 OAuth 2.0 认证授权 也都是基于 Microsoft.Owin.Security.OAuth 来实现的,不过现在 MS 已经不更新新的功能了(常规 fix bug); ASP.NET Core 是支持 OWIN 定义的实现的,也就是 ASP.NET Core 重新设计的 HttpAbstractions 子集,定义在 Microsoft.AspNetCore.Owin 包中。
Katana 与 ASP.NET Core 对应关系Many of the components, features, and models of Katana are now part of the ASP.NET Core project on GitHub. See https://github.com/aspnet/home for details. We still plan to release updates to Katana itself to address common problems and keeping it up-to-date.
Here is a list of Katana components and where you can find their ASP.NET Core counterparts:
- Microsoft.Owin - https://github.com/aspnet/HttpAbstractions
- Microsoft.Owin.Diagnostics - https://github.com/aspnet/Diagnostics
- Microsoft.Owin.FileSystems - https://github.com/aspnet/filesystem
- Microsoft.Owin.StaticFiles - https://github.com/aspnet/staticfiles
- Microsoft.Owin.Hosting, Microsoft.Owin.Testing, OwinHost - https://github.com/aspnet/hosting
- Microsoft.Owin.Security.* - https://github.com/aspnet/Security
- Microsoft.Owin.Host.HttpListener - https://github.com/aspnet/HttpSysServer
- Microsoft.Owin.Host.SystemWeb - https://github.com/aspnet/iisintegration
- Microsoft.Owin.Cors - https://github.com/aspnet/cors
ASP.NET 5 与 ASP.NET Core 1.0
如果还不晓得ASP.NET Next 与.NET Core是什么,可以先补充下知识
魅力 .NET:从 Mono、.NET Core 说起
vNext之旅(1):从概念和基础开始

今天看到了 ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0 ,虽然只是改名字,但是觉得微软这次对.NET与 ASP.NET设计的非常好,之前命名的名词与版本号确实太多总是感觉怪怪的[ASP.NET vNext => ASP.NET 5 => ASP.NET Core 1.0],晚上查了查相关文章,大致了解一下。之前偶尔https://docs.asp.net/en/latest/上面的文档,以及http://www.asp.net/ 时常还有 ASP.NET vNext的影子,现在已经没有了,按照线路图的发展,估计在2016年3月份会RTM[时间暂定了]。
重新命名版本号
重新引入
- ASP.NET 5 现在是 ASP.NET Core 1.0.
- .NET Core 5 现在是 .NET Core 1.0.
- Entity Framework 7 现在是 Entity Framework Core 1.0 或者 EF Core 1.0

如何选择?
非常明确的是,ASP.NET 4.6 是个更成熟的平台,经过了很好的测试。 ASP.NET Core 1.0 是 1.0 版本,包括 Web API 和 MVC,但是不包括 SignalR 或者 Web Pages。ASP.NET Core 1.0 不支持 VB 或者 F#。
ASP.NET Core 1.0 并不是结束,仅仅是个全新的开始(开源、组件化、跨平台), ASP.NET 4.6 还会继续更新,继续提供完整的支持。关于具体的说明看官方的吧:
https://docs.microsoft.com/zh-cn/dotnet/standard/choosing-core-framework-server
https://docs.microsoft.com/zh-cn/aspnet/core/choose-aspnet-framework .NET CLI
DNX(a .NET Execution Environment) 是ASP.NET程序的运行环境,可以使用DNVM(.NET Version Manager)管理各种版本的DNX,不过已经被废弃,取代的是.NET CLI 新的命令行工具,这一特性打算在RC2版本改变(不过官方的文档还是基于DNX的,所以可以先等更新到RC2版本)。
根据文档中描述到 https://github.com/dotnet/cli/blob/master/Documentation/intro-to-cli.md
.NET Core includes three new components: a set of standalone command-line (CLI) tools, a shared framework and a set of runtime services. These components will replace DNX and are essentially DNX split in three parts. ASP.NET 5 will transition to the new tools for RC2. This is already in progress. There will be a smooth transition from DNX to these new .NET Core components.
DNX (a .NET Execution Environment)在github上也给了说明:
The DNX is being retired in favor of the new dotent CLI command line tools. See:
- http://dotnet.github.io/getting-started/
- http://github.com/dotnet/cli
As a result, we're not accepting anymore changes to this project. Please file any new issues on http://github.com/dotnet/cli.
CLI在MAC下安装也很简单,下载包NEXT即可,现还没有CentOS的包。
ASP.NET Core 下有哪些包
https://docs.microsoft.com/zh-cn/aspnet/core/api/#namespaces-in-the-aspnet-core-class-library
REFER:
owin
http://owin.org/
Katana
https://github.com/aspnet/AspNetKatana
ASP.NET Core Schedule and Roadmap
https://github.com/aspnet/home/wiki/roadmap/
ASP.NET Core doc
https://docs.microsoft.com/zh-cn/aspnet/core/
Katana 项目入门
https://msdn.microsoft.com/zh-cn/magazine/dn451439.aspx
Exploring the new .NET "dotnet" Command Line Interface (CLI)
http://www.hanselman.com/blog/ExploringTheNewNETDotnetCommandLineInterfaceCLI.aspx
Announcing ASP.NET 5 Release Candidate 1
http://blogs.msdn.com/b/webdev/archive/2015/11/18/announcing-asp-net-5-release-candidate-1.aspx
ASP.NET 5 and .NET Core RC1 in context (Plus all the Connect 2015 News)
http://www.hanselman.com/blog/ASPNET5AndNETCoreRC1InContextPlusAllTheConnect2015News.aspx
ASP.NET 5 已终结,迎来 ASP.NET Core 1.0 和 .NET Core 1.0
http://www.oschina.net/news/70049/aspnet5-is-dead-introducing-aspnet-core-1-0-and-netcore-1-0
ASP.NET Core 与 .NET Core 演变与基础概述的更多相关文章
- asp.net core + mysql + ef core + linux
asp.net core + mysql + ef core + linux 以前开发网站是针对windows平台,在iis上部署.由于这次需求的目标服务器是linux系统,就尝试用跨平台的.NET ...
- 003.ASP.NET Core tutorials--【Asp.net core 教程】
ASP.NET Core tutorials Asp.net core 教程 2016-10-14 1 分钟阅读时长 本文内容 1.Building web applications 构建web应用 ...
- Asp.net Core中SignalR Core预览版的一些新特性前瞻,附源码(消息订阅与发送二进制数据)
目录 SignalR系列目录(注意,是ASP.NET的目录.不是Core的) 前言 一晃一个月又过去了,上个月有个比较大的项目要验收上线.所以忙的脚不沾地.现在终于可以忙里偷闲,写一篇关于Signal ...
- ABP 教程文档 1-1 手把手引进门之 ASP.NET Core & Entity Framework Core(官方教程翻译版 版本3.2.5)
本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1- ...
- ABP CORE 框架入门视频教程《电话薄》基于 Asp.NET Core2.0 EF Core
ABP框架简介 ABP是"ASP.NET Boilerplate Project (ASP.NET样板项目)"的简称. ASP.NET Boilerplate是一个用最佳实践和流行 ...
- ASP.net core 使用UEditor.Core 实现 ueditor 上传功能
ASP.net core 使用UEditor.Core 实现 ueditor 上传功能 首先通过nuget 引用UEditor.Core,作者github:https://github.com/bai ...
- ASP.NET Core 入门教程 8、ASP.NET Core + Entity Framework Core 数据访问入门
一.前言 1.本教程主要内容 ASP.NET Core MVC 集成 EF Core 介绍&操作步骤 ASP.NET Core MVC 使用 EF Core + Linq to Entity ...
- 【ASP.NET Core】EF Core - “影子属性” 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1
[ASP.NET Core]EF Core - “影子属性” 有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. ...
- ASP.NET Core and .NET Core Library Support
ASP.NET Core and .NET Core Library Support 详情参见:https://github.com/linezero/NETCoreLibrary/blob/mast ...
随机推荐
- 学以致用八---centos7.2 安装vim8+支持python3
目的:打造基于python的vim环境 也是在地铁上突然产生的一个想法,平时都是在pycharm上练习python,但有时候会提示激活码过期,又得上网找激活码,够折腾的.那何不在linux环境下来搭建 ...
- js点击空白处触发事件
我们经常会出现点击空白处关闭弹出框或触发事件 <div class="aa" style="width: 200px;height: 200px;backgroun ...
- VC6.0编译器设置
主要通过VC的菜单项Project->Settings->C/C++页来完成.我们可以看到这一页的最下面Project Options中的内容,一般如下:/nologo /MDd /W3 ...
- c简单的单向链表
ps:list链表 node节点 在链表中节点就是一个个的结构体 堆空间由于在申请内存时,地址是随机的,所以要用链表的方式将其连接起来,但是链表头的地址要知道. 每个节点包含两个部分:数据区和地址区 ...
- (记忆化搜索)Jury Compromise (poj 1015)
http://acm.fzu.edu.cn/problem.php?pid=1005 Description The fastfood chain McBurger owns several rest ...
- How to give a math lecture
摘自 http://www.timhsu.net/courses/generic/proof.pdf 或 http://www.timhsu.net/courses/generic/how-to- ...
- 2.Django模型
ORM简介 MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库 ORM是“对象-关系-映射”的简称 ...
- Delphi IDHTTP控件:GET/POST 请求
Delphi IDHTTP控件:GET/POST 请求 最近一直在使用IDHTTP,下面是一些关于 GET.POST 请求基本使用方法的代码 一.GET 请求 1 procedure GetDem ...
- Android-Version Compatibility Issues (Gradle 2.14.1 requires Android Gradle plugin 2.1.3 (or newer)) but project is using
当AndroidStudio加载工程Project的时候,出现以上错误❌,千万不要点击,否则就是更多其他的错误: 解决方案: 1.认真翻译错误: 2.分析问题发生的原因,然后看到了 ..... ...
- 数据库索引、B树、B+树
数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询.更新数据库表中数据.索引的实现通常使用B树及其变种B+树. 在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某 ...
