新聞中心
在.NET 4中,微軟于新的System.XAML程序庫中加入了一個(gè)獨(dú)立的XAML引擎。該版本只需System.XML與核心運(yùn)行時(shí)即可,這對于那些想要使用XAML但又不想加載Fx程序庫的應(yīng)用來說再適合不過了。

創(chuàng)新互聯(lián)是網(wǎng)站建設(shè)技術(shù)企業(yè),為成都企業(yè)提供專業(yè)的網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制適合企業(yè)的網(wǎng)站。十載品質(zhì),值得信賴!
#T#
微軟對 .NET 4中的XAML Nodes Streams進(jìn)行了大幅度的提升。所謂node stream其實(shí)就是一個(gè)事件驅(qū)動(dòng)的API,用于與結(jié)構(gòu)化數(shù)據(jù)協(xié)同工作。讀者可能對基于XML的SAX風(fēng)格的程序庫比較熟悉。除了直接處理之外,在其他框架加載XAML Node Streams時(shí)它還可以修改XAML。
作為.NET 4重構(gòu)的一部分,微軟極大地提升了解析器的可擴(kuò)展性。在.NET 3中,擴(kuò)展點(diǎn)僅僅局限于IXamlTypeResolver、IUriConext和IProvideValueTarget。新的解析器可以通過這些接口注入很多其他的服務(wù)。但這些接口并非都是新引入的,只是此前沒有公開而已,他們是:
IRootObjectProvider
IXamlNameResolver
IXamlNameProvider
IAmbientProviders
IDestinationTypeProvider
IXamlNamespaceProvider
INamespacePrefixLookup
IXamlSchemaContextProvider
IXamlObjectWriterFactory
就像XML一樣,XAML也有兩類解析API。除了XAML Node Streams之外,還將有一個(gè)XAML DOM。憑借XAML Document Object Model,開發(fā)者可以一次性處理整個(gè)XAML樹。開發(fā)者不僅可以直接處理節(jié)點(diǎn)樹,還能夠訪問LINQ provider。我們可以聯(lián)合使用XAML Node Streams和XAML DOM解析器為靜態(tài)分析工具如FxCOP增加支持。
到目前為止,我們僅僅談到了解析工具,實(shí)際上微軟還發(fā)布了語言的一個(gè)新版本,叫做XAML 2009。XAML 2009將完全支持泛型、非默認(rèn)構(gòu)造方法、工廠方法、內(nèi)建類型并且可以定義新的屬性。
需要注意的是 .NET 4、VS 2010和Blend中的編譯器與設(shè)計(jì)器將不會(huì)在此次發(fā)布中支持XAML 2009。XAML 2009只能用于“l(fā)oose XAML”,比如Workflow Foundation所用的小個(gè)配置文件。其中的主要原因在于WPF設(shè)計(jì)器已經(jīng)擁有了自己的解析器,而重寫該解析器以使用這個(gè)公共解析器將要花費(fèi)大量時(shí)間。
Silverlight將與.NET生態(tài)圈中的其余部分使用同樣的XAML解析器。這么做是考慮到更好的錯(cuò)誤檢測以及未來對更多的XAML 2006和2009特性的支持。Silverlight依然需要一個(gè)輕量級(jí)的運(yùn)行時(shí),因此微軟采取逐步遞進(jìn)而不是大躍進(jìn)的方式來增加特性。
到底通過什么可以讓Silverlight使用統(tǒng)一的XAML解析器呢?答案就是之前提到的IXamlSchemaContextProvider。通過創(chuàng)建一個(gè)Silverlight可以接受的特定于XAML子集的一個(gè)schema context,工具就無需對Silverlight和基于WPF的XAML之間的差別進(jìn)行硬編碼了。據(jù)說Expression Blend團(tuán)隊(duì)對這個(gè)功能尤為感興趣。
分享題目:.NET4.0引入XAML2009不面向WPF用戶
文章URL:http://m.fisionsoft.com.cn/article/dhiheih.html


咨詢
建站咨詢
