【原文地址】.NET 3.5 Client Product Roadmap
【原文发表日期】 Tuesday, February 19, 2008 11:57 AM

几个月前,我写过一个 .NET Web 产品路线图的博客贴子,在其中,我概括描绘了我们准备在刚发布的Visual Studio 2008 和 .NET 3.5中的web开发特性的基础之上开发的一些产品计划。

在下几个月内,我们还将发布若干个特定于客户端开发的增强功能。我们花了很大的力气来解决客户反馈中一些最大的要求,同时还尝试着把开发人员在开发Windows应用时能够拥有的能力推向极限。所有这些改进都是建立在VS 2008 和 .NET 3.5之上的,势将使得今后的.NET 客户端开发更上一层楼。下面是我们计划在下几个月内推出的一些改进的路线图:

改进客户端应用所需的.NET 框架的安装

过去的几年从建造客户端应用的客户和ISVs反馈来的一个最大的要求是,使得.NET 框架的安装和配置更加容易,速度更快。

这个夏天,我们将发布一个.NET的新安装框架(setup framework),方便建造优化的客户端应用的安装包。这个安装框架可以与现有的安装框架集成(譬如,象InstallShield这样的产品),促成更小,更快的终端用户.NET框架的安装体验。

Windows Forms和WPF客户端应用将能够使用这个安装框架干净地把.NET框架bootstrap安装到机器上去。这个bootstrap安装工具将支持自动下载机器上运行.NET 3.5 客户端应用所需的最小.NET 框架包部分。例如,一个用户已经在机器上安装了 .NET 2.0,这个安装程序就会很聪明地自动下载那些把 .NET 2.0更新到3.5 所需的升级补丁(而不用重新下载已经由.NET 2.0提供的组件)。这可以显著地缩小客户端安装程序的payload大小,加速安装体验。

我们还将对基于MSI和ClickOnce的解决方案提供改进以促成集成的应用安装体验,支持容易建造的对消费者更为友好的用户体验。

改进.NET客户端应用的内存需求和启动性能

我们收到的另外一个常见的要求是,允许.NET客户端应用在“冷启动”场景下更快地启动。“冷启动”场景是指没有其他.NET客户端应用目前正在或刚在机器上运行过,需要OS从硬盘上装载很多页的东西(代码,静态数据,注册表等)。如果你在装载一个很大的.NET客户端程序或库,或者使用比较慢的硬盘,那么这些冷启动场景会需要很多秒钟才能启动你的应用。

这个夏天,我们将发布一个CLR的服务包, 将在数据结构优化方面做一些显著的内部优化,以在装载和运行应用时减少硬盘IO以及改进内存布局。此外,这项工作将显著改进 .NET 2.0, 3.0和3.5应用的内存需求和冷启动性能,将极大地改进终端用户使用基于.NET客户端应用的体验。

取决于应用的大小,我们预期.NET应用将实现25-40%间冷启动性能的改进。为利用这些改进,应用不需要改动任何代码,也不需要重新编译,好处是自动的。

WPF性能之改进

这个夏天,我们还计划发布一个WPF的服务包,内含一堆性能优化,将改进文本,图像,媒体和数据等方面的性能。这些改进包括:

- 把DropShadow和Blur位图效果从目前的软件显示转到硬件加速(使效果快上好几倍)。这些效果的API跟现在的一样(这意味着你不用改动任何代码或重新编译你的应用就可利用这些改进)。

- 文本场景,特别在用在Visual 和 DrawingBrush 场景时,将会显著地块。这些场景的API跟现在一样(这意味着你不用改动任何代码或重新编译就可利用这些性能改进)。

- 媒体和视频性能场景也将快得多(也意味着不用改动任何代码或重新编译就可利用这些改进)。

- 我们将包括一个新的WriteableBitmap API,允许软件表面的实时位图更新。我们还将添加对一个强大的新效果API的支持,该API允许你构建更丰富的图像场景。

- 我们还将包括可在数据编辑场景中利用的新数据扩缩性方面的改进。这些包括容器回收和数据虚拟化支持,将方便构建丰富的数据视觉化控件。

WPF控件之改进

今年稍后,我们还计划发布若干新的WPF控件。我们正在开发的包括DataGrid, Ribbon 和 Calendar/DatePicker 控件。

VS 2008 WPF设计器之改进

我们还计划发布一个VS 2008服务包,内含WPF设计器的若干附加功能。这些功能包括属性网格内控件事件的事件页的支持,在源码模式下的工具箱支持,以及各种各样的其他常见要求和改进。

结语

上述的改进应该方便你建造美好的桌面应用。因为这些改进是建立在VS 2008 和 .NET 3.5之上的,它们应该很容易利用(在大多数场景下,不需做任何代码改动就可以利用)。请在以后的几周内静候我讨论上述每个改进细节的博客贴子。

希望本文对你有所帮助,

Scott