小序:
还记得周星驰那句话吗?“人若是没有理想,那跟咸鱼有什么区别”。当本身一步踏上追求理想的征途,才发现为了理想要放弃不少、不少……只有这时候才能切身地明白到什么叫“舍得”。
向全部关注个人朋友们汇报一声,我开始动笔写《深刻浅出WPF》了。如今大概已经完成了两三章的样子,我会把一些片段陆续发布到blog里,请你们多提宝贵意见。
我知道,当我最疲惫、最没有激情的时候,惟一能激励我走下去的,就是朋友们和编辑们的鼓励!
我须要大家!
正文:(彷佛今天的正文最简单不过了——直接Copy再Paste就搞定了!)
1. XAML是什么? 自人类社会诞生,社会分工就在不断地进行着。从原始社会畜牧业与农业分离到当 今社会成千上万行业的彼此协做,无不是社会分工的杰做。社会分工的意义在于它能使从事固定工做的人群更加专业化,并经过合做的形式提升生产效率。换句话 说,在合做不是问题的状况下,若干群专业人士配合工做要比同等数量的一群“大而全”人士的工做效率高。 这种分工与合做的关系不只存在于行业之间,也存在于行业内部。软件开发中最典型的分工合做就是设计师(Designer)与程序员(Programmer)之间的协做了。在WPF出现以前,协做的场景通常是这样: 1. 需求分析结束后,程序员对照需求设计一个用户界面(User Interface,UI)的草图,而后把精力主要放在实现软件的功能上 2. 与此同时,设计师们对照需求、考虑用户的使用体验(User Experience,UE)、使用专门的设计工具(好比PhotoShop)设计出优美而实用的UI 3. 最后,程序员按照设计师绘制的效果图,使用编程语言实现软件的UI 经验告诉咱们,即使是优秀的设计师团队和优秀的开发团队合做,花费在沟通和最终整合上的精力也是巨大的。常常出现的问题有: • 设计师的设计跟不上程序逻辑的变化 • 程序员未能彻底实现设计师提供的效果图 • 效果图与程序功能不能彻底匹配 • 从效果图到软件UI的转化耗费不少时间 这些并非谁对谁错的问题——只要存在分工,那么合做的成本就不可能为零。问题的核心在于,上述的合做是“串行”的,也就是先由设计师完成效果图、再由程序员经过编程实现。若是设计师能与程序员“并行”工做、直接参与到程序的开发中来,上述的问题就迎刃而解了。 解决方案是什么呢?是让设计师们使用编程语言来设计UI效果图,仍是让程序员们使用PhotoShop来开发程序?显然都行不通。 网 络程序开发团队的经验却是很值得借鉴:草图产生后,设计师们可使用HTML、CSS、JavaScript直接生成UI,程序员则在这个UI产生的同时 实现它背后的功能逻辑。在这个并行的合做中,设计师们可使用Dreamweaver等设计工具,程序员使用Visual Studio来进行后台编程。有经验的设计师和程序员每每还具有互换工具的能力,这使得他们能基于HTML+CSS+JavaScript这个平台进行有 效的沟通。 为了把这种开发模式从网络开发移植到桌面开发和富媒体网络程序的开发上,微软创造了一种新的开发语言——XAML。XAML的全称是 Extensible Application Markup Language,即“可扩展应用程序标记语言”。它在桌面开发及富媒体网络程序的开发中扮演了HTML+CSS+JavaScript的角色、成为设计 师与程序员之间沟通的枢纽。 如今,设计师和程序员们一块儿工做、共同维护软件的版本,只是他们使用的工具不一样——设计师们使用Blend(微软 Expression设计工具套件中的一个)来设计UI,程序员则使用Visual Studio开发后台逻辑代码。Blend使用起来很像PhotoShop等设计工具,所以能够最大限度地发挥出设计师的特长。使用它,设计师不但能够制 做出绚丽多彩的静态UI,还可让UI包含动画——虽然程序员们也能作出这些东西,但从专业性、时间开销以及技术要求上显然是划不来的。更重要的是,这些 绚丽的UI和动画都会以XAML的形式直接保存进项目,无需转化就能够直接编译,节省了大量的时间和成本。 下次,当你在面试被问到“什么是XAML”时,你能够回答:XAML是WPF技术中专门用于设计UI的语言。