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缓存:
- 通过运行dnu 命令行安装Microsoft.Framework.Caching.SqlConfig来添加sqlservercache命令到位于文件夹%userprofile%\.dnx\bin下的你的工作站。
- 运行sqlservercache命令“create <connection to db> <schemaname> <tablename>”来配置在数据库服务器上的缓存
- 在你的项目中添加对库Microsoft.Framework.Caching.SqlServer的引用
- 在ConfigureServices方法中使用ASP.NET的依赖注入方式来注册缓存。
services.AddSqlServerCache(o =>
{
o.ConnectionString = "Server=localhost;Database=CacheSampleDb;Trusted_Connection=True;";
o.SchemaName = "dbo";
o.TableName = "CacheSample";
}); - 通过添加参数形式到需要使用到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给我们提供一些关于你喜欢的和不喜欢的功能的反馈。
ASP.NET 5 Beta6发布了(翻译)的更多相关文章
- 将asp.net core站点发布到IIS上遇到的问题
今天第一次将整个 asp.net core 站点发布到 IIS 上,以前都是发布到 Linux 服务器上. 开始使用 dotnet publish -c release 命令发布,用浏览器访问站点时出 ...
- ASP.NET 5 Beta7发布
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 前几天,ASP.NET 5如期发布了Beta 7,根据路线图 (https://github ...
- 关于asp.net 网站网站发布时提示:错误 27 对路径 AppData\Local\Temp\~632b\bin\App_Code.compil的解决方法
关于asp.net 网站网站发布时提示:错误 27 对路径 AppData\Local\Temp\~632b\bin\App_Code.compil的解决方法 问题如下图所示,方法是去掉: <i ...
- ASP.NET 5 Beta8 发布
ASP.NET 5 Beta8 发布 ASP.NET 5 的路线图(详见 ASP.NET 5 Schedule and Roadmap : https://github.com/aspnet/home ...
- ASP.NET Core 网站发布到Linux服务器(转)
出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...
- asp.net mvc 5发布部署遇到403.14
asp.net mvc 5发布部署遇到403.14? HTTP错误 403.14 服务器配置为不列出此目录内容 除了设置.net运行的权限 isap和cgi启动状态外.可能是因为你手贱. 将这个钩去掉 ...
- ASP.NET Core IIS发布
ASP.NET Core应用发布到IIS 官网教程地址:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/publish-to-iis?vi ...
- 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/tutori ...
- Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布
环境:Windows 2008 R2.Jenkins2.235.1.Visual Studio 2017: 概要 前面写过一篇文章,<自动发布-asp.net自动发布.IIS站点自动发布(集成S ...
随机推荐
- 【58沈剑架构系列】主从DB与cache一致性
本文主要讨论这么几个问题: (1)数据库主从延时为何会导致缓存数据不一致 (2)优化思路与方案 一.需求缘起 上一篇<缓存架构设计细节二三事>中有一个小优化点,在只有主库时,通过“串行化” ...
- 解决xshell4中文乱码
前言 在公司看到别人使用xshell后,由于之前一直使用SecureCRT所以心里一直痒痒的想换下xshell试下.于是在昨天晚上使用xshell,却被中文乱码折腾了很长时间以至于想放弃,最终灵光一现 ...
- 【LOJ】#2172. 「FJOI2016」所有公共子序列问题
题解 听说是什么序列自动机? 我们考虑对于每个位置的串,下面拼接相同的字符时,拼接最近的一个,这样可以保证不重不漏 为了实现这个我们需要什么呢,我们需要一个链表,记录一下每个位置的下一个字符会转移到哪 ...
- 三十三 StringIO和BytesIO
StringIO 很多时候,数据读写不一定是文件,也可以在内存中读写. StringIO顾名思义就是在内存中读写str. 要把str写入StringIO,我们需要先创建一个StringIO,然后,像文 ...
- Java学习笔记之:Java Servlet环境配置
一.介绍 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层. 使用 ...
- Java 单例模式的七种写法
Java 单例模式的七种写法 第一种(懒汉,线程不安全) public class Singleton { private static Singleton instance; private Sin ...
- AngularJS Intellisense in Visual Studio 2012
Recently, a lot of people have asked for Intellisense support for AngularJS in the Visual Studio HTM ...
- 【Mysql To EF】codefirst连接问题提供程序未返回 ProviderManifestToken 字符串
连接字符串写错导致,修改后OK. 原来的: <connectionStrings> <add name="EFDbContext" connectionStrin ...
- 表A中一条记录的两个字段都对应于表B的同一个字段 如何查询?SQL, thinkphp[5]
表 A=approval_order, B=admin, 表A中technician_username, salesman_username 都是id号,中文名保存在admin表的nickname ...
- 项目中jquery插件ztree使用记录
最近公司要求做一个关于后台的管理系统.在这个mvvm模式横行的年代,虽然这里用jquery做项目可能有点不符合时代的潮流,但是管他呢,能做出来先在说呗(公司以后要改用angular或者vue来统一前端 ...