写点什么

Microsoft 标准化了跨 UWP 和 Xamarin 的 XAML

  • 2017-05-23
  • 本文字数:1235 字

    阅读完需:约 4 分钟

Microsoft在BUILD 2017 大会上宣布公开 XAML 标准首个草案。XAML 是一种标记方言(dialect),意在统一用户接口组件的定义方式。

Microsoft 想要统一部分已有的 XAML 语言,它计划能在今年稍后给出 XAML 1.0 版本。 该标准建立后,Microsoft 规划进一步给出支持该标准的 UWP 和 Xamarin.Forms,使得在两个框架间可以共享 UI 定义。

目前该草案中定义的控件包括:Button、TextBlock、TextBox、ComboBox、Grid、StackPanel、Page 和 UserControl。上述控件都包括了一系列的属性,例如 Margin、HorizontalAlignment、VerticalAlignment、 Height 和 Width 等,一些控件还支持多种字体属性。上面并未列出该标准所支持的所有控件,还有不少其它控件和属性得到了请求(Request),并在该项目的议题(Issue)中得以批准,例如 Image、Border、WebView、Slider、ProgressBar 等。基于目前为止所建议的控件名称,看上去 XAML/UWP 将被用作参考,而不是作为 Xamarin 所使用的方言。

按 Microsoft 的说法,开发人员可以继续按以前的方法创建 UWP 和 Xamarin.Forms 应用,随后这些应用“将可在架构间重用和共享,并可扩展到更多的平台上”。此外:

当前开发人员无需做任何更改,可以继续在这两个平台上像往常一样调用同一 API。XAML 标准有助于开发人员重用和共享所有在用户端间共享的通用 UI 代码。

目前该标准的审查专家(Review Board)是由来自 UWP 和 Xamarin.Forms XAML 团队中的代表组成。但是如果未来有新的标准实现者出现,有计划会进一步扩展专家团队。专家们同时指出,“并非所有的XAML API 都会成为XAML 标准的一部分”。一个使用了XAML 的重要技术就是WPF。作为一名.NET 开发人员, Morten Nielsen 参与了周五的 BUILD 大会问答环节,并向 Microsoft 的 Windows 开发者平台副总 Kevin Gallo 提问了 Microsoft 对于 WPF 的未来规划。据Nielsen 说,Gallo 当时给出的回答是:“我们并未规划向WPF 中添加新的XAML 标准功能”。对此Nielsen 补充道:“我认为这类似于宣布‘WPF 已死’,正如你也感觉到的”。另一位开发人员 Bastian Schmidt 谈及了同一话题:“如果Microsoft 决定在标准中剔除WPF,Microsoft 必须发布终结WPF 的正式声明。”

Shaun Tonstad 给出了一种可能的解决方案,他将 WPF 应用转化到 UWP 上,因此无需标准提供对 WPF 的支持:

通过努力,我们实现了将 WPF 和 Silverlight 应用转换到 UWP 上。虽然标准能提供对 WPF 的支持也是一件好事,但是如果兼容 WPF 妨碍了实现用于 UWP 的跨平台 XAML,这是却我所不愿意看到的。无论大家如何看待 WPF,UWP 已经存在了,最好就是从 UWP 开始构建跨平台的互操作。

即使 Microsoft 正式声明终结 WPF(如果他们最终这样做的话),XAML 标准依然是向前迈进了一步,它统一了用于定义应用用户接口的语言,这些应用可以跨 UWP 和 Xamarin.Forms 运行,其中 Xamarin.Forms 被用于创建可在 iOS、Android 和 Windows Phone 上运行的应用。

查看英文原文: Microsoft Standardizes XAML Across UWP and Xamarin

2017-05-23 19:001654
用户头像

发布了 227 篇内容, 共 74.9 次阅读, 收获喜欢 28 次。

关注

评论

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

Java基础(五)| 方法的定义、调用及重载

timerring

Java 10月月更 方法重载

深入浅出理解Java并发AQS的独占锁模式

JAVA旭阳

Java 并发 10月月更

【10.7-10.14】写作社区优秀技术博文一览

InfoQ写作社区官方

优质创作周报

Baklib|构建在线客户服务,产品知识库至关重要

Baklib

快速一览:织信低代码联合WPS推出多场景办公轻应用

优秀

低代码 wps

【DBA100人】台枫:DBA不仅要懂运维还得懂代码

OceanBase 数据库

Milvus 2.1 版本更新 - 简单可信赖、性能持续提升

Zilliz

人工智能 开源项目 Milvus 版本更新 向量数据库

DDC SDK的整体设计流程

BSN研习社

ES6中Let命令基本用法

默默的成长

前端 ES6 10月月更

Baklib分享|知识管理是企业发展的风向标

Baklib

【从0到1学算法】4.Bubble Sort算法-上

Geek_65222d

10月月更

什么是云渲染?《阿凡达》《阿丽塔》告诉你

Finovy Cloud

人工智能 云渲染

阿里云事件生态再升级:使用 EventBridge 驱动全量云产品

阿里巴巴云原生

阿里云 云原生 EventBridge

Flowable 按角色分配任务

江南一点雨

spring springboot workflow flowable

Vue 2x 中使用 render 和 jsx 的最佳实践 (1)

默默的成长

Vue 前端 10月月更

企业号十月PK榜,年度榜单倒计时开始!

InfoQ写作社区官方

企业号十月PK榜

【kafka】kafka的服务复用与隔离设计方案

石臻臻的杂货铺

kafka 后端 10月月更

BAT加速冲刺,“智慧交通”赛道谁能笑到最后

硬科技星球

华为云从入门到实战 | 云服务概述与华为云搭建Web应用

TiAmo

华为 华为云 云开发 10月月更

权威认可!OceanBase 通过分布式数据库金融标准验证

OceanBase 数据库

图解ReentrantLock公平锁和非公平锁实现

JAVA旭阳

Java 并发 10月月更

SAP | 认识abap工作台(上)

暮春零贰

SAP abap 10月月更

Vue中的nextTick有什么作用?

CoderBin

面试 前端 Vue 3 nextTick 10月月更

你对“低代码”存在哪些误解?

优秀

低代码

三步玩转:如何通过Flink OceanBase CDC连接器快速查询数据

OceanBase 数据库

数有引力 智造未来 | 华为云云商店星品推介会·厦门站

Geek_2d6073

Vue 中const 命令

默默的成长

前端 Vue 3 10月月更

Baklib分享|提高工作效率,在线协作文档

Baklib

Baklib|关于帮助中心需要注意的一些细节

Baklib

当 WASM 遇见 eBPF:使用 WebAssembly 编写、分发、加载运行 eBPF 程序 | 龙蜥技术

OpenAnolis小助手

开源 操作系统 内核 ebpf Wasm

如何“阅读”数学?:上海顶尖中学学生的阅读笔记

图灵教育

数学 青少年

Microsoft标准化了跨UWP和Xamarin的XAML_.NET_Abel Avram_InfoQ精选文章