1.1. XAML 是什么
社会分工的意义在于它能使从事固定工作的人群更加专业化,并通过合作的形式提高生产效率。
这种分工和合作关系不仅存在于行业之间,也存在于行业内部。软件开发中最典型的分工合作就是设计师(Designer)与程序员(Programmer)之间的协作。
经验告诉我们,即便是优秀的设计师团队和优秀的开发团队合作,花费在沟通和最终整合上的精力也是巨大的。经常出现的问题有:
- 设计师的设计跟不上程序逻辑的变化;
- 程序员未能完全实现设计师提供的效果图;
- 效果图与程序功能不能完全匹配;
- 从效果图到软件 UI 的转化耗费很多时间。
这并不是谁对谁错的问题——只要存在分工,合作的成本就不可能为零。问题的核心在于,设计师与程序员的合作是“串行”的,即先由设计师完成效果图、再由程序员通过编程实现。如果设计师与程序员“并行,工作直接参与到程序员的开发中来,上述问题就解决了。
微软创造了一种新的开发语言——XAML。XAML 的全称是 Extension Application Markup Language,即可扩展应用程序标记语言。它在桌面开发及富媒体网络程序的开发中扮演了 HTML+CSS+JS 的角色、成为设计师与程序员之间沟通的桥梁。
现在,设计师和程序员们一起工作、共同维护软件的版本,只是他们使用的工具不同——设计师们使用 Blend 设计 UI,程序员则使用 Visual Studio 开发后台逻辑代码。重要的是,这些绚丽的 UI 和动画都会以 XAML 的形式直接保存项目,无需转化就可以直接编译,节省了大量的时间和成本。
下次,当你面试被问到“什么是 XAML”时,你可以回答:XAML 是 WPF 技术中专门用来设计 UI 的语言。
1.2 XAML 的优点
前面一节已经向我们透露了 XAML 的几个优点:
- XAML 可以设计出专业的 UI 和动画——好用;
- XAML 不需要专业的编程知识,它简单易懂、结构清晰——易学;
- XAML 使设计师能够直接参与软件开发,随时沟通、无需二次转化——高效;
XAML 另一个巨大的优点就是:它帮助开发团队真正实现了 UI 与逻辑的剥离。XAML 是一种单纯的声明式语言,也就是说,它只能用来声明一些 UI 元素、绘制 UI 和动画(在 XAML 里实现动画是不需要编程的),根本无法在其中加入程序逻辑,这就强制地把逻辑代码从 UI 代码中赶走了。