http://www.asp.net/vnext/overview/aspnet-vnext/aspnet-5-overview  

ASP.NET 5概观(ASP.NET 5 Overview)

原作:Tom FitzMacken (2014/11/12)

译者:MIS2000 Lab.
(www.dotblogs.com.tw/mis2000lab/)

 

 

ASP.NET 5简介

ASP.NET 5是一个略的.NET堆栈(lean .NET
Stock)用来建构现代化的网应用程序。我们由太底部一步一步建构起,并且提供各种应用程序一个优化的开发架构,您得建构云端的利用或在本机上运行两者都只是。.NET
Framework包含了各种极端小耗能(minimal
overhead)的模块化组件,让你可活地建构各式解决方案。

ASP.NET 5分包下列特征:

  • 全新的、弹性且超过平台的运行时(runtime)。
  • 全新的、模块化的HTTP Request管道(pipeline)。
  • 实时可用的云端环境设定。
  • 一致化的规划模块,包含MVC、Web API与Web
    Pages(译者批注:这是采用Razor语法撰写的网页程序,跟ASP.NET Web
    Form不同等)。
  • 未欲重建项目就可知见到前后版本的差别。
  • 完整对应(side-by-side).NET Framework各版。
  • 会当IIS或自建的主机(self-host)上运行。
  • Visual Studio 2015之崭新工具。
  • GitHub上之盛开原始码(源码)。

 

俺们为ASP.NET
5所举行的变更都是根源客户的渴求和回馈。这些反都是以给网络应用程序的开支、托管(hosting)与保安更加便民。

乃的旧版应用程序不需外异动就好当新本子ASP.NET上面运作。然而,想如果使ASP.NET
5新职能的独到之处,您将待将既有的程序代码转移至新的架构上。
你见面发觉ASP.NET
5和原先版本的ASP.NET之间产生那么些形似的远在,所以程序代码转移只待修正一些具体的议题,而休用完美改写应用程序。

 

下载Visual Studio 2015 Preview

请求通过下载Visual Studio 2015
Preview(http://www.visualstudio.com/en-us/downloads/visual-studio-2015-downloads-vs 下充斥VS 2015预览版),关于VS
2015的初力量可以参阅
http://www.visualstudio.com/en-us/news/vs2015-preview-vs

 

 

何以重复设计ASP.NET?

需要更弹性、跨平台的运行

 

千古,.NET
Framework是十足、兼容并蓄的(all-encompassing)完全安装。随着.NET的各级一个本的变异,功能只有新增也死少去,因此该架的容量不断增创。这种做法确保了安装.NET的每一样华Windows主机可以支持具有品类的.NET应用程序,但它们吧象征每个应用程序沿用了重重它没有用的意义。

 

假使相同栽.NET的技艺需要着重创新,即使你连从未直接用就有些之.NET,您为会见吸收一个通知建议乃进行更新。你得控制是否如设置之更新,过程遭到恐受中断服务器,或是您忽略这次更新,希望您忽略的组成部分恰巧没因此到。

 

ASP.NET 5乎公提供了更要命的油滑,能以下列三者中运作情境下实施:

1.        完整的.NET CLR

圆的.NET CLR是Visual
Studio中预设运作的专案。它提供了通API集合,是为各种版本向下兼容的最好选。

 2.        Core CLR(云端优化的运作时)

Core(核心)CLR是一个简单易行、完全模块的周转时(runtime),用在ASP.NET
5的专案上。这CLR已为再次规划改为组件,以便你可弹性地包含你得的有于应用程序里面。您可由此NuGet添加组件。当你完成以后,你的应用程序只所以到得之效能即可(不必包山包海地纳入整个成效)。通过重新分解runtime为独家独立的组件,因为每个组件的换代得发那个和谐之时程,我们得以更迅速地提供一些需要改善之零件(译者注:个别更新,不欲等到一切更上一层楼后才登)。如此一来,核心的Core
CLR十分精简,只生11MB大小,而非是完整的200MB .NET
CLR。该核心CLR可以趁机您的应用程序进行布局,而各异版本的主干
CLR可以side-by-side地运转(这半种优点在脚还详实地叙述)。

 3.        跨平台CLR

前途,我们以见面发布过平台的runtime在Linux和Mac OS
X操作系统及。将来颁发时,这些本子的runtime将支付并以Mac和Linux设备上运行.NET应用程序。上述的跨平台CLR事宜,我们用同Mono社群紧密合作。待她刊登时,您将可采取Mono
CLR作为跨平台开发。 欲了解再多信息,请参见开发Mac上的ASP.NET
vNext应用。

 

预设的情状下,新的Visual Studio项目会动用完全的.NET
CLR。您为堪定义Core CLR在档次之设定属性之中(如下图)。

 json 1

  

八方的Host

ASP.NET
5许而可部属您的应用程序在IIS或自己之主机(self-host)上面运作。当你锁定(确认)Core
CLR以后,你可以吗各个一样份即将部属的应用程序,绑定专属的软件套件。因此,您的应用程序和其所倚的套件均是全独立(自给自足的,self-contained)的,不再依赖让系统既出(事先安装好)的.NET版本。不久之明天,任何项目的装备或者主机平台还能够实行您的应用程序。

这么的新职能为卿提供再多之妄动。我们还是建议IIS是主机的特等选项,但于某些情况下,你或需要利用不同之主机平台。现在,您就需要配备公的种及拖欠主机上头。您的主机属性不再绑死在开发的架方面,反之亦然。

倘想只要还多的例子,可以参阅 Create a Web API in MVC
6。

 

完全对应(side-by-side)不同版本的.NET Framework

当一台服务器上的应用程序依赖让一个纯的、完全安装的.NET
Framework时,所有的应用程序必须尽同一版本的.NET才实施。考虑是不是如升迁到新版.NET
Framework时,可能造成你的不安。也许,你想给有应用程序使用最新的.NET版本,但你无法确定是否拥有的旧版应用程序都足以和新的.NET一起运作。

幸运的是,ASP.NET
5化解了此问题。您可自行定义「部属的软件套件」内的相关性,所以您得为「每个应用程序」定义其需之.NET版本。你可以落时版本应用程序带来的补益,并得以轻易地吃某些应用程序搭配旧本子来实施。各种不同版本.NET可以side-by-side地运行而从不外问题。要运行不同版本要你必须锁定Core
CLR。

 

简化相关性(Simplify dependency management)

ASP.NET
5推荐了一个新的、轻量化的主意来管理型的相关性(dependency)。你不再需要以列蒙分别「加入参考」(add
assembly
references),相反地只待经NuGet就可知管住这些外挂的机件。您可以藉由的NuGet
Package
Manager添加的NuGet软件套件,或者你可编写JSON文件(如project.json檔)来控制项目蒙以的NuGet软件套件与本。要加加其余的外挂套件,只待输入的NuGet套件名称及版本编号到project.json档案里即可(如下图)。

 json 2

以Visual Studio
2015丁,智能提醒(IntelliSense)也会找到NuGet软件套件的重要性词,如下图。

 json 3

前述的project.json档案就含有您想加入项目受到的NuGet套件。如果长的NuGet套码及其他软件套件互相依赖(彼此相关),这些相关的套件也会叫加载,但非见面列在project.json档里面。这种作法让您的project.json档更简单、也再易于管理。如果您自project.json檔移除了某几乎独NuGet套件,与该相关套件也会受剔除(前提是:如果没有外的套件也援引到她)。

不怕你无安装Visual
Studio,(上述的)JSON格式也会叫你再次轻松地管理软件套件(外挂)之间的依存关系。你可以在其他一样种植文本编辑器打开project.json文件并开展改动(译者批注:不装Visual
Studio也克修改这些基础配置文件);
如更新配备至云端中之应用程序,他们之软件套件依存关系。

 

消除MVC、Web API与Web Pages之间的重新

千古的MVC、Web API与Web
Pages有诸多重迭的特性,但这些力量的实作却是独家独立的(译者批注:Web
Pages是运用Razor语法撰写的网页程序,跟ASP.NET Web
Form不雷同)。例如,MVC和Web
API均提供路由(routing)的作用,但MVC路由的类别却在System.Web.Mvc.Routing命名空间里,而Web
API的可在在System.Web.Http.Routing命名空间内。 或者,Web
Pages和MVC皆以Razor的语法,但稍事NuGet套件分别只相当(MVC或Web
Pages)其中同样种。

以ASP.NET 5,MVC、Web API和Web Pages将于统一成一个.单一架,名吧MVC
6。这样的合消除了再的架,使您还自在地开发以这些程序架构框架的应用程序。你不待为是否以MVC,Web
API或Web Pages前后文关系蒙,再去做类似之程序代码了。

每当VS 2015预览版里面,MVC与Web API已经在MVC 6统一了。Web
Pages将会见再也下一个MVC 6的释出版本被参加。

 

改善HTTP效能

ASP.NET 5引入了一个新的HTTP
Request管道(pipeline)是简单和便捷。这条管道是模块化的,所以你可以就上加而需之零件即可。透过减少管道的耗费,你的应用程序将体验及还好的传输量(throughput)。新管道仍支持OWIN。

 

云端立即可用

当你新建一个ASP.NET 5档次,此项目的天然结构即是布局至云端环境而生。
Visual Studio 2015资了一个全新的条件设定系统(译者批注:需使用VS
2015底「项目(WebApplication)」,并摘「ASP.NET
5」才行),它代替了既是有的Web.config檔。新系让您会从各种源(如JSON,XML,或环境变量)要求(索取)已命名的价。你为每个环境指定的值,或是在部署后能够于你的应用程序只待读取正确的值。

我们尚提供诊断与追踪工具,使你还易地发现以云端里面的应用程序问题。

 

 

整合dependency injection

Dependency injection(DI)也是外建筑在ASP.NET
5的法力,您可采取Inversionof
Control(IoC)容器来注册这些相关性。Dependency
injection(DI)有利于针对环境提供对的劳务。欲询问再多信息,请参见Dependency
Injection in ASP.NET
vNext。

 

开放源码与透明

有的ASP.NET
5的程序代码都放到GitHub地方了。不仅是程序代码可用,而且GitHub
repositories也融入我们的开销中。你得掌握地看到.NET进行了哪改观,每次转后,您可以下载程序代码并把修正后底结果提交给咱。

每当GitHub上出ASP.NET
5,我们吃你再次易理解程序代码,了解我们的预料方向前进,有助于提高和建置您想只要客制化的ASP.NET功能。

 

重新灵敏的支付条件

Visual Studio
2015为ASP.NET应用程序提供了一个轻量级的开发者经验。您才待变更您的程序代码、存盘、然后刷新浏览器画面(如下图)。就可以看到以Web浏览器的改动成果,而无需重新建置(re-build)项目。

 json 4

 

只要齐图,倘若你转移的程序代码是在Web项目中、或是在你的类别蒙援引的类别库里面。你要么得执行(CTRL

  • F5)项目,而不是于debug模式下观看这些动态地的转变。

Visual
Studio使用罗斯林(Roslyn)编译程序启航了这个动态的编译。你按照持有具备编译架构的组织及权限,但开发经历感觉还如是如出一辙栽直译型(Interpreted)语言。

Visual
Studio用户接口(UI)中之各级一个职能还可以针对应命令行(command-line)的操作。您得于用户接口和编command-line
script之间轻松转换。

末段,您得运用其它的程序代码编辑器来成功而的ASP.NET 5专案。

 

 

Web Form怎么了?

 

君得继续支付Web Form应用程序,并生信心Web
Form是.NET的Web开发平台的重点片段。我们拿延续从为多新成效,以Web
Form提高支付经历和保持最新网络实务的技术。

Web Form 4.6席卷Web Form以下新的特色:

  • HTTP
    2
    (譯者註解:詳見 http://zh.wikipedia.org/wiki/HTTP/2 影片可選中文字幕。此功能會在Windows
    10底 IE瀏覽器與Web Form 4.6開始支援)
  • 异步模型绑定(Async. Model Binding)(譯者註解:關於 ASP.NET
    4.5由的 非同步& Model
    Binding
    ,本站均发生相關範例)
  • 羅斯林(Roslyn)CodeDOM的编译程序

 

乃既是有的Web Form应用程序将连续地运转,在匪变换重于IIS的景下以.NET
4.6尽。但是若不能够用Web
Form应用程序在cloud-optimized(针对云端优化的)runtime上面。

至于新力量的 Web Form 4.6,请参见Web Forms
4.6(請到这觀賞影片,影片可選中文字幕)。有关Web
Form在Visual Studio 2013 Update2近期变的信,请参阅 Improvements to
ASP.NET Web
Forms。

 

此前的应用程序呢?

而或许会见担心随着ASP.NET
5的版本编号不断变动,让您得重编排所有的应用程序。别担心!你以初版本建立之ASP.NET应用程序将连续和新的.NET架构一起运作。如果您莫需采用ASP.NET
5的新力量,你并不需要更新或重部属(安装)这些应用程序。

 

譬如说,你的应用程序,目前下Web Form、MVC 5、Web API 2、SignalR 2、Web
Pages 3或Entity Framework
6,都可于完全无经修改的情况下,完整取新架支持。但是,你可怜可能需要动用「完整的.NET
CLR」来实施这些原本本子的应用程序,因为只有这个(完整版本)CLR提供以及最初版本完全匹配。

 

以cloud-optimized(针对云端优化的)runtime上面提供了诸多限制型的API的接口。使用cloud-optimized
runtime时,应用程序必须就使这runtime专用的路以及分子。

 

纪念清楚您的应用程序可不可以以cloud-optimized runtime执行吗?请动API
Portability
Analyzer工具来侦测一下。此工具会告诉你谁平台达成之应用程序可以对并避免应用程序移动及其它一个阳台时会时有发生的相依性。它可以拉您询问欲改变的限量,并提出新的种或者成员代表那些已经不为支持之软件套件。

 

MVC 6和SignalR 3的应用程序使用初的HTTP
pipeline,所以它们不与配合于用System.Web的应用程序。要升级现有的应用程序到MVC
6或SignalR 3,您得经Visual Studio
2015新建一个初品类,然后你的程序代码移植到新路里。移植到新本子时,可能用修改部分早已休支持之程序代码。

 

 

 

圈罢本文之后,您可以继续参照以下内容:

 

Next steps

  • Create a Web API in MVC
    6
  • View components and Inject in ASP.NET MVC
    6
  • Develop ASP.NET vNext applications on a
    Mac
  • Entity Framework 7
  • Visual Studio 2015 Preview Release
    notes
  • Announcing ASP.NET features in Visual Studio 2015 Preview and
    VS2013 Update
    4

 

The following videos (影片介绍)describe the latest enhancements:

  • ASP.NET
    5
  • ASP.NET 5 for .NET Framework and .NET
    Core
  • Web Forms
    4.6
  • ASP.NET Tooling in VS
    2015
  • Responsive Web
    Design
  • Modern Web
    Tooling

 

http://www.asp.net/vnext/overview/aspnet-vnext/aspnet-5-overview  

ASP.NET 5概观(ASP.NET 5 Overview)

原作:Tom FitzMacken (2014/11/12)

译者:MIS2000 Lab.
(www.dotblogs.com.tw/mis2000lab/)

 

相关文章

网站地图xml地图