.NET 4.0引入XAML 2009 不面向WPF用户
创始人
2024-06-14 04:51:07
0

在.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团队对这个功能尤为感兴趣。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...