摘要:.NET 3.5 客戶端產品藍圖
【原文位址】.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客戶端應用在「冷啟動」 (Cold Start) 場景下更快地啟動。「冷啟動」場景是指沒有其他.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