ASP.NET 5探险(6):升级ASP.NET 5到beta6

(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。)

题记:微软根据ASP.NET 5的路线图如期发布了beta6,现在我们就来说说beta5升级到beta6的一些问题。

之前微软公布了ASP.NET 5的路线图 (https://github.com/aspnet/home/wiki/roadmap)。根据这个路线图的说法,在7月27日发布ASP.NET 5 beta6。由于微软是7月20日发布Visual Studio 2015 RTM的(内置ASP.NET 5 beta5),所以beta6还是需要自己手动来安装。为了等着7月30日安装好Windows 10后再安装Visual Studio 2015 RTM,所以昨天才把项目代码升级到beta6。

把beta5升级beta6虽然也可以沿用之前的方法(微信公众号回复:20150707),不过鉴于VS2015已经RTM,所以微软给我们提供了用于升级的安装包,通过这里下载(http://go.microsoft.com/fwlink/?LinkID=619565)。安装包其中一个用于安装dnvm(分为x64和x86),一个用于安装运行时的(有不同语言版本)。

升级了dnvm和dnx运行时之后,要做的就是根据beta6的一些改变(https://github.com/aspnet/Announcements/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.0-beta6)解决代码出现的编译和运行问题。下面就简述一下我项目代码遇到的一些问题:

  • Mvc的功能被分成了更加精细的包,方便更小化的添加和依赖。比如ViewContext,ViewContextAttribute和IHtmlHelper就被移动到了Microsoft.AspNet.Mvc.ViewFeatures中
  • project.lock.json文件的格式变化且最终固定,所以需要重新执行“dnu restore”
  • builder.ForSqlServer().UseIdentity(); 改用 builder.UseSqlServerIdentityColumns();
  • EntityOptionsBuilder 改用 DbContextOptionsBuilder
  • Microsoft.DataAnnotations被放弃(其实在beta4就放弃了,我之前还是引用了),现在不使用IndexAttribute,而是改用FluentAPI来定义索引,更多说明见(https://github.com/aspnet/EntityFramework/issues/1698)
  • Microsoft.Framework.CodeGenerators.Mvc没有beta6版本,不过不引用似乎暂时无碍
  • ISessionCollection 改用 ISession
  • SignIn 改用 SignInAsync,SignOut 改用 SignOutAsync
  • UseInMemorySession 改用 UseSession
  • ErrorPageOptions.ShowAll 废弃
  • 在Starup中调用数据库初始化的代码需要改变,见我在GitHub上的Issue报告(https://github.com/aspnet/Identity/issues/529)
  • 作为外键的属性,如果是字符串要明确定义字符串长度(之前可以根据指向主键来自动设置)
  • Beta6的脚手架(即默认项目代码结构)有所改变,主要涉及前端包引用bower部分

以上就是升级beta6的一些心得。

posted @ 2015-08-01 15:51  朱永光  阅读(952)  评论(0编辑  收藏  举报