.NET4.0引入XAML2009不面向WPF用户

在.NET 4中,微软于新的System.XAML程序库中加入了一个独立的XAML引擎。该版本只需System.XML与核心运行时即可,这对于那些想要使用XAML但又不想加载Fx程序库的应用来说再适合不过了。

创新互联是网站建设技术企业,为成都企业提供专业的网站建设、网站设计,网站设计,网站制作,网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制适合企业的网站。十载品质,值得信赖!

#T#

微软对 .NET 4中的XAML Nodes Streams进行了大幅度的提升。所谓node stream其实就是一个事件驱动的API,用于与结构化数据协同工作。读者可能对基于XML的SAX风格的程序库比较熟悉。除了直接处理之外,在其他框架加载XAML Node Streams时它还可以修改XAML。

作为.NET 4重构的一部分,微软极大地提升了解析器的可扩展性。在.NET 3中,扩展点仅仅局限于IXamlTypeResolver、IUriConext和IProvideValueTarget。新的解析器可以通过这些接口注入很多其他的服务。但这些接口并非都是新引入的,只是此前没有公开而已,他们是:

IRootObjectProvider
IXamlNameResolver
IXamlNameProvider
IAmbientProviders
IDestinationTypeProvider
IXamlNamespaceProvider
INamespacePrefixLookup
IXamlSchemaContextProvider
IXamlObjectWriterFactory
就像XML一样,XAML也有两类解析API。除了XAML Node Streams之外,还将有一个XAML DOM。凭借XAML Document Object Model,开发者可以一次性处理整个XAML树。开发者不仅可以直接处理节点树,还能够访问LINQ provider。我们可以联合使用XAML Node Streams和XAML DOM解析器为静态分析工具如FxCOP增加支持。

到目前为止,我们仅仅谈到了解析工具,实际上微软还发布了语言的一个新版本,叫做XAML 2009。XAML 2009将完全支持泛型、非默认构造方法、工厂方法、内建类型并且可以定义新的属性。

需要注意的是 .NET 4、VS 2010和Blend中的编译器与设计器将不会在此次发布中支持XAML 2009。XAML 2009只能用于“loose XAML”,比如Workflow Foundation所用的小个配置文件。其中的主要原因在于WPF设计器已经拥有了自己的解析器,而重写该解析器以使用这个公共解析器将要花费大量时间。

Silverlight将与.NET生态圈中的其余部分使用同样的XAML解析器。这么做是考虑到更好的错误检测以及未来对更多的XAML 2006和2009特性的支持。Silverlight依然需要一个轻量级的运行时,因此微软采取逐步递进而不是大跃进的方式来增加特性。

到底通过什么可以让Silverlight使用统一的XAML解析器呢?答案就是之前提到的IXamlSchemaContextProvider。通过创建一个Silverlight可以接受的特定于XAML子集的一个schema context,工具就无需对Silverlight和基于WPF的XAML之间的差别进行硬编码了。据说Expression Blend团队对这个功能尤为感兴趣。

新闻名称:.NET4.0引入XAML2009不面向WPF用户
分享路径:http://www.shufengxianlan.com/qtweb/news48/214248.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联