你的位置:首页 > ASP.net教程

[ASP.net教程]ASP.NET5 Beta8可用性


ASP.NET5 beta8现已上都的NuGet作为一个工具升级到Visual Studio2015!此版本极大地扩展.NET核心对OS X和Linux所支持的范围。您现在可以使用网络,加密和全球化特点的跨平台!本新闻稿也包括ASP.NET5,DNX和Web工具的一些不错的改进。让我们来看看我们如何开始使用ASP.NET5 beta8。

新功能

下面是一些在ASP.NET5 beta8新功能的摘要。对于什么是新的完整列表在此版本中,请参阅beta8发行说明。

更改IIS托管模式

我们已经取得了重大更新,以beta8托管模式ASP.NET 5 IIS。直至并包括β7整联蛋白,在IIS运行ASP.NET 5应用已经举办了一个名为“太阳神”组成,包含在Microsoft.AspNet.Server.IIS包。使用现有的System.Web托管模式钩子该组件促进DNX和CLR的引导。这个钩子取代了运行应用程序已经开始(但从IIS的角度)之后。这实际上提出了“太阳神”第二DNX主机,这意味着它包含在它自己的逻辑有关定位,启动,并加载运行。这也意味着第二组逻辑来使像运行时服务,以及某些DNX级设置的配置。

具有用于ASP.NET 5两种不同宿主模型引入了许多复杂性和矛盾的难以或不可能解决的。为了解决这个问题,我们正在中止“太阳神”IIS主机。托管ASP.NET 5应用程序在IIS现在将使用配置为通过转发到ASP.NET 5红隼服务器的IIS HttpPlatformHandler实现。该HttpPlatformHandler是一个需要通过在运行的服务器IIS(安装:86,64)的管理员安装了一个本地IIS模块。它也已经包含在IIS上快速地方发展beta8网络工具的更新。此本机的IIS模块管理的外部应用程序的主机过程的发起(在此情况下dnx.exe)和从IIS请求到托管进程的路由。

简化模型到一个托管选项(但仍支持在同一场景)用于开发人员的代码和测试更少的东西。新模式的其他好处包括:

    在IIS程序池不需要运行任何托管代码(你可以从字面上将其配置为不加载CLR的话)
    现有的ASP.NET Windows组件并不需要安装在Windows服务器上运行
    现有的ASP.NET 4.x的模块可以在IIS旁边的HttpPlatformHandler运行以来,ASP.NET 5的过程是独立的
    您可以按进程设置环境变量,因为HttpPlatformHandler支持。这将使设置的东西像ASP.NET 5环境配置可能在本地IIS服务器。
    统一的错误处理在所有服务器启动错误
    守则和行为统一
        在.NET框架(全CLR)是否运行时,支持的app.config自托管或在IIS中(即使是用于.NET Framework的兼容性没有更多的web.config)
        统一服务的故事
        统一启动时的故事(无奇AspNetLoader.dll在bin文件夹)

你会发现,在Visual Studio中的ASP.NET 5项目模板已被更新,包括在应用程序中的wwwroot文件夹下面的web.config文件:

<configuration> <system.webServer>  <handlers>   <add    name="httpPlatformHandler"    path="*"    verb="*"    modules="httpPlatformHandler"    resourceType="Unspecified"/>  </handlers>  <httpPlatform   processPath="%DNX_PATH%"   arguments="%DNX_ARGS%"   stdoutLogEnabled="false"   startupTimeLimit="3600"/> </system.webServer></configuration>

这个web.config文件添加HttpPlatformHandler到您的应用程序和配置的处理程序将请求转发给一个DNX的过程。 Visual Studio的手柄设置的DNX_PATH环境变量指向适当的DNX版本为您的应用程序。

当您发布的应用程序在web.config中的流程路径更新为指向您的应用程序中定义的“网络”命令。您可以选择使用不同的命令运行DNU发布时使用,而不是--iis命令选项。

有关这些更改IIS托管模式的详细信息,请参见相应的公告。
本地化

ASP.NET 5现在已经内置了对本地化支持。新的本地化支持提供中间件,用于指定根据请求,也机制,根据当前文化访问本地化的内容正确的文化和UI文化的线程上。

启用定位在应用程序中加入要求的定位中间件在你的启动类的请求管道:

app.UseRequestLocalization(选项)

请求定位中间件使用一组已配置IRequestCultureProvider实现的,以确定培养的请求。内置的提供者可以从请求使用Accept-Language头,一个查询字符串值,或从cookie确定培养。您也可以建立并指定自己的IRequestCultureProvider。

一旦请求国产化中间件来确定当前的文化它设置它的线程上。该IStringLocalizer服务则提供了访问基于当前区域性本地化的内容。启用这些本地化服务,像这样的支持:

services.AddLocalization(options => options.ResourcesPath = "resources");

该ResourcePath指定了本地化资源位于相对于应用程序根目录的路径。您可以使用IStringLocalizerFactory服务,创建一个IStringLocalizer特定资源或者干脆<T>直接请求IStringLocalizer。

这些服务的默认实现是基于System.Resources.ResourceManager,它支持访问的基础上RESX文件附属程序本地化内容。您也可以提供自己的实现从不同来源获取本地化的内容,比如形成一个数据库。

你可以看到,在本地化回购这些本地化功能完整的工作样本。
本地化和MVC

MVC建立在ASP.NET 5新的本地化支持,使本地化的控制器和视图。 MVC引入一小本地化建立在核心本地化服务的附加服务。

为了使MVC特定的本地化功能,您可以添加配置MVC服务时以下几点:

services  .AddMvc()  .AddViewLocalization(options => options.ResourcesPath = "Resources");

该IHtmlLocalizer服务(附有IHtmlLocalizerFactory)增加了对获得本地化的HTML字符串和属性编码的论据支持。您可以使用IHtmlLocalizer从你的控制器是这样的:

private IHtmlLocalizer<HomeController> SR;

private IHtmlLocalizer<HomeController> SR;public HomeController(IHtmlLocalizer<HomeController> localizer){  _localizer = localizer;}public ActionResult Index(){  ViewData.Message = SR["Localize me!"];  return View();}

所述IViewLocalizer是一个IHtmlLocalizer服务,查找基于当前视图名称的资源。您可以使用@注入指令,这样注入的IViewLocalizer到您的看法:

@inject IViewLocalizer SR<h1> @SR["Localized header"]</h1>

除了以上这些还有可以查看被隐藏的文件等:

这在Beta8版本之前是不可以的。

想了解更多beta8的朋友可以在微软的.NET Web开发工具博客上查看纤细说明文章:

http://blogs.msdn.com/b/webdev/archive/2015/10/15/announcing-availability-of-asp-net-5-beta8.aspx。