ASP.NET Katana 项目入门

当 ASP.NET 首次在 2002 年发布时,时代有所不同。 那时,Internet 仍处于起步阶段,大约有 5.69 亿 用户,每个用户平均每天访问 Internet 的时间为 46 分钟,大约有 3 百万个网站。 仅仅在 10 年之后,相 同的测量指标揭示,大约有 22.7 亿个 Internet 用户,每个用户平均每天访问 Internet 的时间为 4 小时 ,大约有 5.55 亿个网站(请参阅 bit.ly/MY7GzO)。

很显然,这种增长相应地刺激了对应用程序开发者的需求变化,具体表现在生成和运行 Web 应用程序的基 础框架、工具和运行时等方面。 现代 Web 应用程序必须能够快速地发展,充分利用许多不同的组件和框架。 它们的占用空间必须很小,这样才能在云的大型运行时环境中有效地运行。

确保 ASP.NET 能够满足这些当前需求和未来需求正是 Katana 项目的主要目标。 Katana 简介

Katana 项目实际可以追溯到 Microsoft 外部一个名为 Open Web Inter­face for .NET (OWIN) 的开 放源代码项目。OWIN 是一种定义 Web 服务器和应用程序组件之间的交互的规范(请参阅 owin.org)。 由于 这一规范的目的是发展一个广阔且充满活力的、基于 Microsoft .NET Framework 的 Web 服务器和应用程序 组件生态系统,因此它可以将服务器与应用程序之间的交互减少到一小部分类型和单个函数签名,这个函数签 名被称为应用程序委托(即 AppFunc):

using AppFunc = Func<IDictionary<string, object>, Task>;    

基于 OWIN 的应用程序中的每个组件都向服务器提供应用程序委托。 然后,这些组件链接成一个管道,基 于 OWIN 的服务器将会向该管道推送请求。 为了更有效地使用资源,管道中的所有组件都应该是异步的,这 体现在返回 Task 对象的应用程序委托中。

包括应用程序状态、请求状态和服务器状态等在内的所有状态都保存在应用程序委托上指定的 IDictionary<string, object> 对象中。 这种数据结构称为环境字典,随着请求通过管道时会从一个 组件传递到另一个组件。 虽然任何键/值数据都可以插入到环境字典中,但 OWIN 规范为某些 HTTP 核心元素 定义了键,如图 1 中所示。

图 1 HTTP 请求的必需环境字典键

定义一组基本的环境字典键/值对,使得许多不同的框架和组件作者可以在一个 OWIN 管道中进行互操作, 而不必强制实施对特定 .NET 对象模型的协议,例如针对 ASP.NET MVC 中的 HttpContextBase 或 ASP.NET Web API 中的 HttpRequestMessage/HttpResponseMessage 的协议。

应用程序委托和环境字典这两个元素构成了 OWIN 规范。Katana 项目是 Microsoft 创建和推出的基于 OWIN 的组件和框架集合。

Katana 组件可以通过体系结构堆栈查看,如图 2 中所示。

图 2 Katana 项目体系结构

时间: 2024-12-13 09:20:32

ASP.NET Katana 项目入门的相关文章

ASP.NET MVC 5 入门教程 (1) 新建项目

原文:ASP.NET MVC 5 入门教程 (1) 新建项目 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-create-project.html  下一节:ASP.NET MVC 5 入门教程 (2) 控制器Controller 本教程使用Visual Studio Express 2013 for Web 运行,强烈建议跟着教程边看边做.如果在操作中遇到什么问题,欢迎留言指出. Visual Stud

Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点

引子 本文将主要演示怎么将多个Asp.Net MVC项目部署到一个IIS站点中的例子,主要使用的是Asp.Net MVC提供的区域的功能. Asp.Net MVC提供了区域的功能,可以很方便的为大型的网站划分区域.可以让我们的项目不至于太复杂而导致管理混乱,有了区域后,每个模块的页面都放入相应的区域内进行管理很方便.而随着项目的复杂,每个开发人员开发的模块呢也可能是一个完整的解决方案,而他要开发的UI项目呢只是主站点项目的一个区域,而如果把所有的UI项目放到一个UI项目,在团队开发时就不很方便了

ASP.NET MVC 5 入门教程 (4) View和ViewBag

原文:ASP.NET MVC 5 入门教程 (4) View和ViewBag 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-view.html 上一节:ASP.NET MVC 5 入门教程 (3) 路由Route 下一节:ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework 源码下载:点我下载 View(视图)用来显示被controller处理好的数据.本节

ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework

原文:ASP.NET MVC5 + EF6 入门教程 (5) Model和Entity Framework 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-ef-6-get-started-model.html  上一节:ASP.NET MVC 5 入门教程 (4) View和ViewBag 下一节:ASP.NET MVC5 + EF6 入门教程 (6) View中的Razor使用 源码下载:点我下载 一.创建Model MVC中

ASP.NET MVC 5 入门教程 (2) 控制器Controller

原文:ASP.NET MVC 5 入门教程 (2) 控制器Controller 文章来源: Slark.NET-博客园 http://www.cnblogs.com/slark/p/mvc-5-get-started-controller.html 上一节:ASP.NET MVC 5 入门教程 (1) 新建项目 下一节:ASP.NET MVC 5 入门教程 (3) 路由route 源码下载:点我下载 顾名思义,一个MVC项目是由M-Model-模型.V-View-视图.C-Controller-

Asp.Net MVC3 简单入门第一季(四)详解Request Processing Pipeline

引子       很久没更新了,今天写点关于Asp.Net MVC的PipeLine.首先我们确认一点,Asp.Net WebFrom和Asp.Net MVC是在.Net平台下的两种web开发方式.其实他们都是基于Asp.Net Core的不同表现而已.看下面一张图,我们就能理解了WebForm和Asp.Net MVC的一个关系了. 那好我们了解了Asp.Net平台下的两种开发方式,相信大家对于WebForm的Pipeline都非常熟悉了,当然这也是你熟悉Asp.Net开发的必经之路.而看了很多

Asp.Net MVC3 简单入门第一季 【索引贴】

初识Asp.Net MVC2.0 初识Asp.Net MVC2.0[续] Asp.Net MVC2.0 Url 路由入门---实例篇 Asp.Net MVC2.0 Url 路由入门 Asp.Net MVC3 简单入门第一季(一)环境准备 Asp.Net MVC3 简单入门第一季(二)详解Asp.Net MVC3项目 Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter Asp.Net MVC3 简单入门第一季(四)详解Request Processing Pipe

Asp.Net MVC3 简单入门第一季(一)环境准备

前言 大家好,从今天开始我将写一个关于AspNet MVC3方面学习的总结,并跟初学者一起分享一些基本的基础知识,作者本身也很愿意跟大家一起交流技术,一起交流一起进步,欢迎高手不吝赐教,欢迎大家不同的意见和建议,作者的学识和见识当然有自己的局限性,希望自己能成为不闷骚型的技术人员,而不是只自己享受技术,而不让更多的人来分享你的成果的人. 第一节:关于Asp.Net MVC3 Asp.Net MVC已经到第三版了,相信大家也都熟悉了,我也不再重复相关概念性的东西了.但是大家一定要了解,Asp.Ne

Asp.Net MVC3 简单入门第一季(三)详解Controller之Filter

前言 前面两篇写的比较简单,刚开始写这个系列的时候我面向的对象是刚开始接触Asp.Net MVC的朋友,所以写的尽量简单.所以写的没多少技术含量.把这些技术总结出来,然后一简单的方式让更多的人很好的接受这是我一直努力的方向.后面会有稍微复杂点的项目!让我们一起期待吧! 此文我将跟大家介绍一下Asp.Net MVC3 Filter的一些用法.你会了解和学习到全局Fileter,Action Filter等常用用法. 第一节:Filter知识储备 项目大一点总会有相关的AOP面向切面的组件,而MVC