ASP.NET 5 Beta6发布了(翻译)

感觉就好像我们刚刚发布了一个版本,现在我们又要发布一个新的版本。开发团队通过努力工作在Visual Studio2015的正式版上提交使用ASP.NET 5开发工具的上的更新以及库的更新。新的版本为beta6,它在Framework和库上新增了一系列新的功能。接下来让我们看看怎样将ASP.NET 5 beta 6添加到我们的Visual Studio 2015的安装中来。

安装

在ASP.NET 5 beta版本发布周期中第一次发布时候,我们已经发布了新版的Visual Studio web开发工具支持更新的framework。所以当ASP.NET 5 新的beta版本发布的时候,之前的Visual Studio用户需要仔细检查重要的变化,需要手动做一些更新和修改,以便可以在Visual Studio上使用最新的ASP.NET 5 beta版本。从这个版本开始,你可以从下载中心获取到如何更新Visual Studio和其它你正在使用的编辑器的信息和下载相应的更新程序。

Framework的更新

ASP.NET framework上有很多更新和变化。但是不用担心这些变化并不是breaking,而且还添加了一些你能使用的重要功能。

SQL Server 分布式缓存

新的Microsoft.Framework.Caching.SqlServer库允许你利用SQL Server来存储ASP.NET 5应用的缓存。这个改进让你能够在运行ASP.NET web工厂情况下使用内存来缓存不太适合的时候缓存你的数据。你可以在你的项目文档中通过以下步骤来配置SQL Server缓存:

  1. 通过运行dnu 命令行安装Microsoft.Framework.Caching.SqlConfig来添加sqlservercache命令到位于文件夹%userprofile%\.dnx\bin下的你的工作站。
  2. 运行sqlservercache命令“create <connection to db> <schemaname> <tablename>”来配置在数据库服务器上的缓存
  3. 在你的项目中添加对库Microsoft.Framework.Caching.SqlServer的引用
  4. 在ConfigureServices方法中使用ASP.NET的依赖注入方式来注册缓存。

    services.AddSqlServerCache(o =>
    {
        o.ConnectionString = "Server=localhost;Database=CacheSampleDb;Trusted_Connection=True;";
        o.SchemaName = "dbo";
        o.TableName = "CacheSample";
    });
  5. 通过添加参数形式到需要使用到IDistributedCache注入的对象。

    private void PeriodciallySetKey(IDistributedCache cache, TimeSpan interval)
    {
         Task.Run(async () =>
          {
             while (true)
             {
                   await Task.Delay(interval);
    
                   SetKey(cache, "A");
              }
           });
    }  

    你可以在这里通过到阅读官方发布的关于这个库的文档。

      

程序集的强命名的支持

现在你可以对编译过程中的程序集进行强命名。在project.json文件中有对应的选项可以为不同编译配置或framework版本配置不同的强命名。像下面这样在compilationOptions节点中配置强命名选项:

"compilationOptions": {

 "strongName": true,
 "delaySign": true,
 "keyFile": "MySecretKeyFile.snk"

 }

你可以将该节点放在project.json文件的根目录下,这样就设置所有的configurations和frameworks都采用相同的强命名选项,。你也可以将节点放在单独的某个configuration节点内或者某个framework节点内来设置对相应的configuration或framework的程序集的强命名选项。举个例子,比如我想对release配置的程序集进行强命名,我可以在project.json文件中这样配置该节点:

{
...
"configurations": {
    "Debug": {
      "compilationOptions": {
        "define": [ "DEBUG"]
      }
    },
    "Release": {
      "compilationOptions": {
        "strongName": true,
        "delaySign": true,
        "keyFile": "MySecretKeyFile.snk",
        "optimize": true
      }
    }
  },
...
}

尾斜杠的支持

配置路由,在末尾加上一个斜杠这个功能在之前MVC framework版本中支持,但是MVC6上还没有。现在,你可以通过Microsoft.AspNet.Routing.RouteOptions类的某个属性来配置这一功能。开启这个功能,非常简单,只需要在Startup类中的ConfigureServices方法中,注册RoutOptions实例到当前Service实例上:

services.AddInstance(new RouteOptions()
 {
     AppendTrailingSlash = true,
 });

在WebListener上支持回发缓冲和缓存

对于服务端应用来说,我们使用所有可用的资源来提高性能。当运行ASP.NET 5在IIS上,你可以通过使用在HTTP.SYS中原始的回发缓存来获取高效的回发缓冲和缓存。从这个beta版本开始,运行在WebListener上你也可以获取同样的支持。你不需要在配置上做任何更改来获取支持。一旦使用了缓存回发的headers,你就可以获取更好的性能。

MVC和WebAPI库越小越好

我们知道许多ASP.NET开发人员喜欢MVC 6的WebAPI的实现方式。它确实工作的非常好而且从之前我们获得的反馈了解到它带来很好的用户体验。我们还听说一些开发人员,他们确实喜欢WebAPI而且不想让他们的应用在加载WebAPI不需要使用的资源上浪费时间,比如Razor或TagHelpers。

从beta6开始,你可以去除一些你不需要用的库引用从而引用MVC库的一个更小子集来使用WebAPI功能。通常来说当你使用MVC 6,你仅需要引用一个库Microsoft.AspNet.Mvc,对于其他你需要的所有库,你可以通过短暂性依赖来引用。你可以称之为“间接库引用”,就好像库管理者允许所有组成MVC和WebAPI的依赖库在不需要额外的代码和配置都被引用在你的项目中。

在beta6上这个更新允许你指定那些间接库引用的子集。在上面所描述的场景中,WebAPI的开发者在不需要Razor和TagHelper所有功能时只需要利用project.json来指定依赖的子集来提供WebAPI-only程序。

总结

这个版本带来ASP.NET 5 frameworks版本的升级。我们希望你从这里下载ASP.NET 5 tools和framework,并使用它。在我们面前仍然有很长的路要走,我们真心希望你按照ASP.NET 5的roadmap给我们提供一些关于你喜欢的和不喜欢的功能的反馈。

时间: 2024-10-03 18:37:20

ASP.NET 5 Beta6发布了(翻译)的相关文章

将asp.net core站点发布到IIS上遇到的问题

今天第一次将整个 asp.net core 站点发布到 IIS 上,以前都是发布到 Linux 服务器上. 开始使用 dotnet publish -c release 命令发布,用浏览器访问站点时出现下面的错误: HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to start The application process started but th

ASP.NET 5 Beta7发布

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 前几天,ASP.NET 5如期发布了Beta 7,根据路线图 (https://github.com/aspnet/home/wiki/roadmap),这次发布主要是实现跨平台的能力.之前的DNX的跨平台特性在非Windows平台上主要依赖Mono来实现,.NET Core的支持极其有限,不过现在.NET Core已经能够完全支持Mac和Linux了. 对于开发而言,除了升级DNX到Beta7外,

ASP.NET Core 网站发布到Linux服务器(转)

出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台,这就使得.NET空有一身绝技但无法得到广大的施展空间,.NET平台被认为只适合开发企业内部应用系统. 2016年6月27日,微软正式发布.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,通吃 Windows.OS X和Linux三大操作系统..

asp.net core WebAPI发布 以及其它学习

asp.net core WebAPI发布http://www.cnblogs.com/jhxk/articles/9305253.htmlASP.NET Core 404错误(转自其它网站)https://www.cnblogs.com/whatme/p/10031214.html[ASP.NET Core快速入门]https://www.cnblogs.com/wyt007/category/1130278.htmlWEBAPIhttps://www.cnblogs.com/niklai/t

将 ASP.NET Core 应用发布到 IIS

将 ASP.NET Core 应用发布到 IIS 原文地址:https://www.cnblogs.com/MasterLin/p/11659989.html

Windows平台部署 Asp.Net Core 3.1.0,将 ASP.NET Core 应用发布到 IIS ,使用 IIS 在 Windows 上托管 ASP.NET Core

第一部分:本教程介绍如何在 IIS 服务器上托管 ASP.NET Core 应用. 官方文档地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?view=aspnetcore-3.1&tabs=visual-studio 本教程涵盖以下主题: 在 Windows Server 上安装.NET Core Hosting Bundle. 在 IIS 管理器中创建 IIS 站点. 部署 ASP.NET Cor

ASP.NET 5 Beta8发布及升级经验

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:ASP.NET 5 Beta8如期发布,这是一个重要的里程碑,因为这是ASP.NET 5的特性冻结版本,强烈建议之前迟疑没有使用ASP.NET 5于生产环境的同学可以开始尝试了. 这次作为功能冻结的版本,变化相对于Beta7还是有很多地方的. 最大的改变莫过于改变了IIS托管模型 之前托管方式是"脚踏两只船",除了DNX宿主外,还存在一个名为"Helios&quo

ASP.NET Core &quot;完整发布,自带运行时&quot; 到jexus

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 一.阅读前须知   1.使用 jexus整合asp.net core的优点:       1)支持多站点,同一端口可以同时支持任何多的asp.net core应用程序:      2)应用程序启动.停止.重启与站点的启动.停止.重启等操作一致,

Asp.Net MVC5 + MEF 发布到IIS问题

本人使用vs2013开发了一个应用系统(Asp.Net MVC5 + MySQL ),还是用了微软的 MEF 框架.开发完成后部署到一台全新的服务器上,操作系统为 windows server 2008 R2. 首先安装运行环境 ASP.NET 4.5,IIS,MySQL5.5.安装过程都非常顺利.没有出现任何异常.在网站发布完成后用浏览器打开.傻眼了,出现了一下错误. 错误描述很清楚,是MEF部件出现的问题,但是在 vs 环境中是正常的.于是查找原因,看是不是服务器上差什么组件.找了大半天还是