2月5-7日QCon全球软件开发大会携手100+位大咖讲师落定北京,点击查看完整日程>> 了解详情
写点什么

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:001384
用户头像

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

关注

评论

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

Python——列表元素的排序

在即

6月日更

图解 SQL,这也太形象了吧!

xcbeyond

MySQL 6月日更

🌏【架构师指南】教你如何设计和规划系统架构(13条)

洛神灬殇

架构设计 架构设计原则 架构师技能 6月日更

道可道,非常道:vue生命周期的智慧之光

法医

Vue 大前端 6月日更

区块链行业的《高考志愿填报指南》

CECBC

Java Shutdown Hook 场景使用和源码分析

陈皮的JavaLib

Java 线程安全 Thread

系统设计系列之任务队列

看山

MQ 6月日更

22 图 |M1 和 Docker 谈了个恋爱

悟空聊架构

Mac M M1 Dock 6月日更 dokcer

读深入ES6记[五]

蛋先生DX

ES6 6月日更

kubelet分析-pvc扩容源码分析

良凯尔

Kubernetes 源码分析 kubelet Ceph CSI

GitHub已霸榜!阿里技术官肝了3个月才完成的20万字Java面试手册

Java 程序员 架构 面试

Django组队学习Task0

IT蜗壳-Tango

IT蜗壳教学 6月日更 Datawhale

栈和队列没想象中那么难

北游学Java

Java 数据结构 队列

JAVA对象直接输出的打印结果是什么?

加百利

Java 后端 字符串 6月日更

NQI国家质量基础设施“一站式”公共服务平台开发建设

源中瑞-龙先生

开发 NQI 质量基础设施“一站式”

三步教你编写一个Neumorphism风格的小时钟

空城机

JavaScript Vue 大前端 6月日更

给dubbo贡献源码,做梦都在修bug

捉虫大师

dubbo

小型电商微服务架构拆分

Simon

架构实战营

深入SpringBoot的异常处理(一)

卢卡多多

异常 SpringBoot 2 全局异常 6月日更

马丁策略量化交易系统搭建,网格量化策略系统

并发王者课-黄金1:两败俱伤-互不相让的线程如何导致了死锁僵局

MetaThoughts

Java 多线程 并发

2021年最新阿里巴巴Java面试权威指南(泰山版)震撼来袭

Java 程序员 架构 面试 计算机

🌏【架构师指南】带你分析认识缓存穿透/雪崩/击穿

洛神灬殇

缓存穿透 缓存击穿 缓存雪崩 6月日更

金三银四跳槽季,美团、字节、阿里、腾讯Java面经,终入字节

Java 程序员 架构 面试

颠覆与创新,区块链将成音乐产业的下一个风口

CECBC

【Flutter 专题】106 图解 AnimatedWidget & AnimatedBuilder 动画应用

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

如何拆分大型单体系统为微服务

Zhang

微服务

网络攻防学习笔记 Day42

穿过生命散发芬芳

网络攻防 6月日更

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