前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >.NET 4.5.1 预览版新特性

.NET 4.5.1 预览版新特性

作者头像
张善友
发布2018-01-30 10:56:40
8080
发布2018-01-30 10:56:40
举报
文章被收录于专栏:张善友的专栏张善友的专栏

上个月的微软Build大会上宣布了.NET 4.5.1的推出,Heydarian的这个演讲题为“.NET开发中的新内容”,涵盖了.NET Framework中一些重要的新特性。

Heydarian的演讲主要围绕着三个方面展开:开发者生产力、应用程序的性能及持续创新。首先是开发者生产力,他在提到了32位机器上的该功能在2005年就已发布,随后高兴地宣布64位机器上的相同功能将成为.NET 4.5.1的一部分。这一功能和32位版本是完全相同的。随后,Heydarian宣布了检测方法返回值的新功能,它可以在Visual Studio的Autos窗口或Immediate窗口中使用。可以在调试器中展开返回值以便查看当前的值。对于Windows Store、Web App和Windows 8.1桌面App而言,由于对Call Stack(调用栈)和Tasks窗口的使用性进行了改进,使得调试异步代码更加容易了。

这还不是Windows Store App的唯一改进,另一项改进是开发者可以将System.IO.Stream转换为IRandomAccessStream了。另外,通过引入可空值类型,WinRT的类型系统也得到了增强,并且对异常提供了更好的支持(例如:System.Exception.Message,System.Exception.StackTrace)。这些System.Exception的新属性是在基于Windows 8的经验上进行的改进,在这之前只有在附加的进程上的调试器中才能避免丢失这些信息。

EF和ADO.NET现在对连接失败的情况容错性更好了。在之前,断开网络连接会导致一个异常的产生,而在4.5.1中则能够优雅地应对这种失败情况,一旦网络连接得以恢复,应用程序就会监测到它,并继续之前的工作。另外微软决定将Entity Framework整个迁移到开源模型,EF6是一个完全的开源版本,Mono 3上带的是EF6。这需要进一步改造,而且其核心文件也不可能简单地从.NET 4.0中移除。为了解决这一问题,微软使用了命名空间切换。“命名空间切换的一般规则是,将System.Data.*下的类型迁移到System.Data.Entity.Core.*”。位于System.Data.dll程序集内System.Data命名空间中的EF相关类不会发生改变。在更新项目的using语句之前,需要移除对System.Data.Entity.dll的引用。否则将混合使用Entity Framework的新旧版本。还要注意的是,Entity Framework 5的第三方提供程序与EF 6不兼容。因此如果使用的不是SQL Server或SQL Server Compact Edition,则需要更新提供程序。这些改动很小,只是一些基本的东西,如覆盖IsGeographyColumn和GetGeographyAsync。

ASP.NET应用现在可以自动挂起了。实际运行的ASP.NET工作进程(worker process)将被挂起为可随时唤醒的状态,这能够节省90%的启动时间。当应用程序处于空闲状态一段时间后,它将会被分页到磁盘,一旦某个请求到来或是完成,它将被唤醒。可以在IIS配置中将Time-out Action这一项设置为“挂起”以实现这一功能。

在.NET 4.5.1的底层,你现在可以压缩大对象堆(LOH)以应对堆碎片问题。LOH模式是GCSettings的一部分,但Heydarian提醒大家:“能力越大,责任越大”,在一般的开发过程中绝不要使用这项功能。

多核的即时编译(JIT)性能也有所改进,按Heydarian的说法,在冷启动的状态下能达到15%的性能提升。

另一项在.NET 4.5.1中得到改进的部分是有关framework升级后系统的表现。目前,运行更新后的.NET Framework会使应用程序性能在短时间有一定程度的下降。这是因为核心的.NET程序集在更新或补丁需要一段时间进行JIT编译。在Windows 8.1中,即使运行(更新后的).NET Framework,应用的性能也能保持稳定。这使用户体验大为提高,也符合微软的努力方向,即尽可能提升平板电脑的续航能力。

Heydarian宣称他的团队的一个目标是尽可能做完所有的脏活累活,而让.NET开发者能直接从中受益。另外,他希望只要可能,.NET平台的所有改进都能使开发者直接受益,而把重新编译的时间(如果需要的话)减至最小,为了达到更好的性能。

最后要说的是,微软创建了一个新的NuGet feed,为官方的微软 .NET 包(package)提供稳定而实时的更新,可以应用于Visual Studio 2010、2012及2013。这个feed在VS2013中直接支持,而VS2010和2012的用户可以手动添加这个URL以获取feed:https://nuget.org/api/v2/curated-feeds/dotnetframework/

关于.NET 4.5.1预览版的更多细节 ,参看博客内容:http://blogs.msdn.com/b/dotnet/archive/2013/06/26/announcing-the-net-framework-4-5-1-preview.aspx

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-07-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档