引入ASP.NET vNext


[原文发表地址] IntroducingASP.NET vNext

[原文发表时间] 2014/5/12

在ASP.NET和Web工具团队中进行着一些非常酷的东西。该小组一直在微软推动开源式的东西已经有好几年了,我们已与来自.NET超越核心团队很棒的创新者联手!其中一些功能已经酝酿了10年以上,它倚靠一个技术向导宿主并跨越了许多团队和学科。

今天,我们宣布一个下一代服务器上的.NET预览版(读作:alpha)。

你可能听说过这样一些在Build大会上宣布的消息:

ASP.NET vNext会促进事情到一个新的阶段。今天,你使用与桌面应用程序所使用的相同的CLR的运行ASP.NET。我们增加一个云优化(我的云端,你的云端,他们的云端 – 服务器上的东西)版本,来优化服务器方案,如低内存和高吞吐量。

ASP.NET vNext会让你依据应用程序挨着应用程序的方式部署自己版本的.NET框架。一个有新的类库的应用程序不能破坏紧挨着不同版本的应用程序。不同的应用程序甚至可以有自己的云优化CLR版本。CLR云优化类库即是NuGet

在这个截图中你可以在我的包文件夹中看到新框架(请注意,他们是多么渺小)的418版本和420版本。这些NuGet组件包包含完整的“CoreCLR”和云优化的.NET Framework。你可以通过你的应用程序把自己的CLR和.NET Framework部署成一个NuGet

1

我可以在Visual Studio中运行ASP.NET vNext的应用程序,当然,是在IIS上,但我也可以很容易地通过命令行或通过自己的应用程序实现对他们的“self-host”。这个alpha包括用于运行和管理ASP.NET vNext的应用程序的命令行工具。

“kvm”命令允许我控制自己的环境。通过运行“kvm list”去查看可用的ASP.NET vNext版本。以每个环境为基准在它们之间进行切换:

C:\>kvm list
 
Active Version              Runtime Architecture Location
 
------ -------              ------- ------------ --------
 
       0.1-alpha-build-0418 svr50   x86          C:\Users\scottha\.kre\packages
 
  *    0.1-alpha-build-0418 svrc50  x86          C:\Users\scottha\.kre\packages
 
       0.1-alpha-build-0420 svr50   x86          C:\Users\scottha\.kre\packages
 
       0.1-alpha-build-0420 svrc50  x86          C:\Users\scottha\.kre\packages

使用“kvm use version”设置活跃的版本,打开两个命令提示符,在每个里设置不同的CLR和.NET版本。

我运行相同的应用程序两次,每个命令提示符里运行一次。我把版本420放在端口5420和版本418放在端口5418。

2

下面这个小应用程序输出ASP.NET vNext的当前运行的版本。这里,我在下一代的ASP.NET不同的构建版本上同时运行相同的应用程序

3

该项目系统也在发生变化 – 我们正在整合packages.config,NuGet的设计说明书(NuSpec)和工程文件(csprojs)到你项目依赖的一个统一的视图里,其存在project.json文件中。

NuGet软件包和类库被视为同等的。你从project.json文件中得到完整的intellisense,NuGet软件包自动,透明地被下载下来。更妙的是,让我们说NuGet包foo.bar这个有一个bug,但你只得到了NuGet包。您可以在我们本地的项目里创建一个名为foo.bar文件夹,并把源文件通过“git clone”放在该文件夹中。对于开源项目这是棒极了的。本地版本覆盖NuGet,让您在等待一个新发布版本时,就能轻松地在本地库中修补bug。当一个新的确定的NuGet分布式的版本出现时,就会更新版本并删除本地源文件。

4

环境中的一个很大的方面, 像node和rails,他们是“no compile。”只要改变一些代码并点击刷新。通过ASP.NET的下一个版本你得到的能力和吞吐量是.NET运行时加上“Roslyn”编译器即服务的“非编译的编译”产生的。这意味着在开发时你可以只改变你的C#类,并在浏览器中点击刷新。这就是带有refresh -and-go 活力的.NET的力量。

注意:这不是ASP.NET网站,或Razor视图编辑 – 这是一个整体,在内存中编译。您可以使用Visual Studio进行开发,或文本编辑器,如Sublime,或freakin’ Notepad。(当然,如果你想让程序组件位于磁盘上,你也可以做到这一点。)

有没有看到下面的截图里我的Web应用程序的bin文件夹?在那里没有任何组件,因为组件不会存在磁盘上。让编译器在内存中做所有的工作,这实际上是更快,更容易的做法。这样,您就不必读取源代码,写出dll文件,然后再读入dll文件了。 (DLL作为魔力的一部分使这一切发生了。)

5

如果你喜欢,当你的Web项目进行部署构建时,他们也可以构建为NuGet软件包。在发布你的项目的同时每一个所需的依赖项会随之被加入。

你将能够把ASP.NET vNext放在你现有的服务器上,任何主机,当然也包括Azure。

您可以选择是否使用兼容性云优化框架。ASP.NET的下一个版本是模块化的,都是关于各种不同的选择。您对框架的选择,您对运行时的选择,您对操作系统的选择,您对文本编辑器的选择。

ASP.NET vNext

啊,顺便提一下

  • ASP.NET vNext(和Rosyln)目前运行于Mono,同时支持Mac和Linux。虽然Mono不是来自于微软的项目,我们依然将与Mono团队协作,而且Mono将被加入到我们的测试矩阵。使它能“正确工作”,这是我们的愿望。

6

在未来几个月,将会有很多新的信息和细节出来!


Comments (0)

Skip to main content