【AICon】AI 大模型超全落地场景&最佳实践 了解详情
写点什么

.NET 4.0 引入 XAML 2009,但并非面向 WPF 用户

  • 2009-12-06
  • 本文字数:1204 字

    阅读完需:约 4 分钟

8 月 16 - 19 日,与零一万物李开复、蔚来李斌、面壁智能李大海,及工商银行、交通银行、华夏银行等 100+ 行业专家相聚 FCon x AICon

在 PDC 2009 上,Michael Shim 和 Rob Relyea 介绍了微软对 XAML 的未来规划。目前.NET 中有两个 XAML 实现,一个针对 Windows Workflow,另一个针对 Windows Presentation Foundation,因此想要使用 XAML 的开发者需要 WF 或是 WPF。

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

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

查看英文原文:.NET 4.0 Brings XAML 2009, but Not for WPF Users

2009-12-06 10:281648
用户头像

发布了 88 篇内容, 共 260.3 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

2021金三银四:狂刷398道Java最新MySQL笔记;成功收获9个Offer

比伯

Java MySQL 编程 架构 计算机

卧槽,误删数据库了,会被开除吗?

AI乔治

Java 数据库 sql 架构 SQL语法

一篇文章了解CI/CD管道全流程

禅道项目管理

DevOps 持续集成 持续交付

特权访问管理(PAM)即服务

龙归科技

云上接单不空跑 京东云助力“佬司机”为货运物流业降本增效

CECBC

京东云

面试官:聊一聊SpringBoot服务监控机制

AI乔治

Java spring 架构 微服务 springboot

聪明人的训练(十四)

Changing Lin

4月日更

一个CURD三年的Java程序员刷完这份《阿里面试指南(恒山版)》,居然斩获了十七个offer

Java架构之路

Java 程序员 架构 面试 编程语言

阿里总结出Java九大核心专题,1159页内容,吃透后我上个月砍下5个大厂Offer!

Java架构追梦

Java 阿里巴巴 架构 面试 九大核心专题

canvas小球绕斜椭圆轨迹运动

空城机

JavaScript 大前端 canvas 4月日更

工业互联网的脖子被卡死了?

浪潮云

工业互联网

如果以这样的方式,你愿参与到碳普惠行动中吗?

CECBC

区块链

当造车成为风潮,谁帮助“造车党”连接未来?

脑极体

阿里巴巴架构师王小瑞“墙裂”推荐:RocketMQ核心实战原理

Java架构师迁哥

python列表转字符串

ベ布小禅

4月日更

portal认证-上线流程

箭上有毒

HikariCP-技术专题-配置介绍和使用

洛神灬殇

APM-技术专题-监控系统选型

洛神灬殇

APM 监控

硬核!阿里内部这份《Java面试核心知识手册》在Github上已获赞高达89.7K!

Java架构之路

Java 程序员 架构 面试 编程语言

GitHub持续霸榜!2021年Java核心知识:面试突击版

Java架构之路

Java 程序员 架构 面试 编程语言

代码回现 | 如何实现交易反欺诈?

VoltDB

数据分析 金融科技 VoltDB

一份完美的阿里开源Java面试宝典,Github上star数已30K+

Java架构师迁哥

自学Java走进阿里,仅用了六个月,他是怎么做到的?

Java架构师迁哥

理论 + 标准 + 工程 —— 阿里云视频云编码优化的思考与发现

阿里云视频云

阿里云 视频编码 视频算法 视频处理

入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)

Java架构追梦

Java 架构 字节跳动 面试

架构实战营 - 模块 2- 作业

carl

架构实战营

剖析6个MySQL死锁案例的原因以及死锁预防策略

北游学Java

Java MySQL 数据库 死锁

iOS--面试题:多线程

ios 面试 多线程

spring中让你眼前一亮的代码技巧

AI乔治

Java spring 架构 微服务

从中国企业进入IEC最高决策机构,看科技领先的产业价值与用户价值

脑极体

全国沿海港口首个区块链木材业务服务平台上线试运行,“区块链+港口”撬动数千万元“福利”

CECBC

港口

.NET 4.0引入XAML 2009,但并非面向WPF用户_.NET_Jonathan Allen_InfoQ精选文章