滴水逆向联盟

标题: Visual Studio 11开发指南(7)NET 4.5的改善 [打印本页]

作者: 大灰狼    时间: 2014-10-27 09:50
标题: Visual Studio 11开发指南(7)NET 4.5的改善
性能

对.NET Framework 4.5来说,在性能改进上下了很多功夫,无论是在改进现有代码性能方面,还是在编写代码方面都更快速,更灵活,可扩展性更强,

公共语言运行库(CLR)开发团队十分关注改善运行库环境本身的性能。有了像背景服务器垃圾收集器,多核背景JIT编译和优化配置的导论后,托管应用程序(尤其是服务器上的)现在可以更快速启动,拥有更高性能,运行更流畅,延迟也减少了。

性能改进超越了运行库执行环境,例如Framework内的核心组件被内部重写,以在主要场景中提供改进的性能。比如.NET中的Stream类存在于大多数I/O相关操作的中心位置,用Stream来异步读写是很常见的,而现在这些操作在.NET 4.5中就少了许多。另一个实例就是,WPF中的项目控件在处理某类数据时也更快了。

在这个发布中,这项Stream工作就是我们非常关注异步的一部分。C#和Visual Basic在编写异步代码时,扩展了对一流语言的支持。这个支持并不局限于语言,并加入了.NET Framework的库。全新的基于任务的API也被添加进Framework,包括贯穿于网络和网页服务堆中的BCL类型,同时也添加到了System.Xml和System.Data库中,以及更多。

网络

如今很少能看到独立应用程序,就是那种不用某种方式进行交流的应用程序。.NET一直以来有着丰富的高质网络编程库,无论是对低级的基于套接字的编程还是高级的通过网络服务进行的通信都很有用。.NET 4.5对开发越来越多的互相关连的应用程序提供根本的支持。虽然在.NET 4.5中有很多有趣的与网络相关的改进,在这里特别介绍三个最具代表性的。

WebSocket是一个全新的双向通信协议,它支持客户端与服务器间低延迟通信。这对执行交互式的应用程序来说很棒,比如在线游戏,它会受益于服务器和客户端的“推动”,而且.NET 4.5还包括在ASP.NET和在WCF中对WebSockets的支持。.NET 这次的发布还出现了全新的HttpClient类,它能让客户端和服务器更简单有效地使用现有网络API。

任务和WCF的整合。有了先前提及的语言支持,跨越Framework的异步API通过任务就公开了。除了这些.NET中包含的API,还有通过Visual Studio生成的API。由Add Service Reference…对话框创建的WCF网络服务终端是这类API的一个重要部分。在先前的发布中,这个工具默认只在同步操作时生成,你可以使用高级配置对话框来选择公开异步操作。现在,在Visual Studio 11开发者预览版本中,默认情况下工具不仅仅生成异步操作,它还会使用基于任务的异步模式。

这就意味着所有你添加服务引用的网络服务会即时支持在等待异步方法。以下是使用其中一个生成的代理来做异步调用,来搜索Bing的例子:

互操作性

Framework本身只包含你的应用程序所使用的库集之一,如果没有这个概念,那么来看.NET Framework的改进就是不完整的。除了你所依赖的.NET Framework中的所有库,你还可以使用自己创建的,或者第三方创建的库。一直以来,很多在你的应用程序中使用的库只是在Windows公开的操作系统功能顶部的一层简单封装,例如访问文件系统,访问音频和视频硬件等等。自从.NET第一次的发布以来,CLR就提供了互操作的功能,但只是实验性阶段。

有了.NET 4.5和Windows Runtime(WinRT)的到来,需要创建这样的互操作包装就成了历史。通过CLR的改进,你的.NET应用程序可以为那些组件引用metadata文件,CLR会照管需要的互操作详情,让你能像使用.NET库中的组件一样使用它们。这对开发者来说是个天大的喜讯。

BCL,托管扩展型Framework(MEF),System.Xml, System.Net,WPFADO.NETASP.NETWCFWindows Workflow Foundation并行计算等等。都值得深入研究!







欢迎光临 滴水逆向联盟 (http://www.dtdebug.com/) Powered by Discuz! X3.2