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 ...
随机推荐
- javascript总结集合
前言:下面的总结都是自己测试过的,绝大多数都是没问题的,但是不敢保证一定全面,还需要诸君自己独立思考: 1)基础:在nodejs里全局对象是global,而网页里js的全局对象是window:对于所有 ...
- wifi adb 的常用命令
Android 网络调试 adb tcpip 开启方法 2013年05月14日 10:01:03 阅读数:20529 1.连接USB数据线,打开usb调试,使用windows的“运行”命令行方式:(此 ...
- 一个简单的MySQL多实例环境搭建
安装mysql 初始化两个数据库目录 mysql_install_db --datadir=/usr/local/var/mysql1 --user=mysql mysql_install_db -- ...
- Redis模块开发示例
实现一个Redis module,支持两个扩展命令: 1) 可同时对hash的多个field进行incr操作: 2) incrby同时设置一个key的过期时间 在没有module之前,需要借助eval ...
- Docker mysql 主从
一.独立容器部署mysql主从 # 主从 my.cnf加上 [mysqld] server-id = XXX log-bin = mysql-bin log-bin-index = log-bin.i ...
- java基础-day16
第05天 API 今日内容介绍 u Object类 & System类 u 日期相关类 u 包装类&正则表达式 第1章 Object类 & System类 1.1 ...
- java基本数据类型与封装类型详解(int和Integer区别)
int是java提供的8种原始数据类型之一. Java为每个原始类型提供了封装类,Integer是java为int提供的封装类(即Integer是一个java对象,而int只是一个基本数据类型).in ...
- vue.js入门学习
可以用淘宝npm镜像 然后安装 然后初始化项目: Watch就是一个监听 v-if是如果为false就根本不在页面存在这个元素 v-show是通过display:none来控制这个元素的显示和隐藏 r ...
- 《SQL必知必会》笔记
SQL必知必会(第4版) 作者:[美]Ben Forta 本书介绍了sql在不同数据库工具(Oracle.SQLite.SQL server.MySQL.MariaDB.PostgreSQL...)是 ...
- ES基本查询
数据准备 # 创建索引PUT /lib1{ "settings": { "number_of_shards": 5 , "number_o ...