PLINQ和Parallel FX
多核微处理器为执行负责的数据密集型应用程序提供了可能,特别是对于银行业务以及金融相关的行业,当然还有科学研究事业。时钟速度的提升是以电源消耗为代价的,因此,多核处理就需要计算机性能的提高。如今,双核处理器在台式机和笔记本上都已经渐为普遍,甚至四核的处理器如今都已经应用到了一些高端的台式机上。而问题在于,要充分利用多核所带来的提升的性能,编写出多线程的应用程序,就成为了一项艰巨的任务。
PLINQ为同时处理LINQ查询提供了快捷而简单的方法,对于那些由数据库、XML文档等合并的混合查询,它则特别有效。一些第三方的LINQ工具,例如Oren Novotny的LINQ to Streams,它们能够用于传感网络、网络监视器或者是金融服务,作为同时处理的逻辑候选。PLINQ对独立的LINQ转换到SQL或者是LINQ到Entities查询则没有什么效用,它们是依赖一个数据库作为它们的数据源的。为了能够使用PLINQ,你必须添加一个项目到System.Concurrency.dll传递名称集中,并且让System.Linq.ParallelEnumerable.AsParallel扩展方法输入你的数据源为IParallelEnumerable。
PLINQ是Parallel FX Library的一部分,并且它包含了VS 2008的TPL和.NET Fx 3.5或者更高版本。根据MSDN杂志的作者Daan Leijen和Judd Hall所说,这些库没有办法使用共享的内存同时准确地处理代码,这仍然是程序员的责任,他们必须要确保某段代码能够同时安全地被执行。
ADO.NET
ADO.NET Data Services为相关的数据提供了一个RESTful界面,简化Web客户端数据访问以及更新程序编辑。REST是“Representational State Transfer”的首字母缩写,这种架构类型通常用于URIs描绘局域网或是互联网上的资源,通过HTTP协议无界地传达信息。在这种情况下,REST使用HTTP POST、GET、PUT和DELETE的方式来执行对一个或者是多个资源创建、恢复、更新、或者是删除的操作。
发布在Astoria在线服务上最初的Astoria,示范了四项面向Web的数据资源。DataServices是通过Entity Framework实例连接到SQL服务器数据库上实现的。Northwind和AdventureWorks则是将传统数据交付为分等级的XML文档,以URI的形式回应查询公式。Encarta服务是用来反馈XML解码的百科全书查询,而TagSpace则发送社会网络书签标签。2007年9月,Astoria团队发布了Astoria Toolkit,它能够用VS 2008 beta 2来创建你自己的局域网数据服务。这套工具还能够连接到你在微软为开发者所建立的网站上创建或托管的DataServices。
平民化的Volta
Eric Meijer正在忙于开发LINQ 2.0。这个代号为Volta的项目的目标在于,让普通的程序员能够专注于开发分发版本及移动应用程序的必需方面,例如数据跨越、部署、安全等方面,而不需要陷于一些低级细节的泥沼。Volta是本文中所描述的所有项目中距实现期最远的一个。第一个具体的Volta程序在2007年12月诞生在微软的Live实验室的Volta网站。Meijer说,他们将会尽一切努力将构想写进代码。
未来的开发
微软的开发项目向来是恶名昭著,这是因为它们总是由于这样那样的原因,在开发的过程中一些特性被削弱。而最近一次惨重的失败就是WinFS,比起原先的描述,它似乎失去了很多东西。然而,在我看来,上述的这些平台、组件和技术还是可持观望态度,因为Astoria确实在几个月之内,通过一个管理架构,从一个孵化中的项目成为一个产品。而Volta技术也 提前与大家见面。对于Volta的将来,我们仍拭目以待,但LINQ取得的成功,让我们对Volta的将来也有了更美好的憧憬。这些与VS 2008相关的新的项目和那些商业应用,足够让.NET开发者在接下来的几年中有一阵忙碌的了。