从去年的Tech-ED到现在,陆陆续续地讲过多次有关 Expression Blend 的课程,也在博客里发表了一些相关文章。近期有不少朋友询问关于 Expression Blend 的问题,将其中比较常见的一些挑出来,与大家分享一下个人的一些观点。

1Expression Blend 是什么?

【答】Expression Blend 是开发 Windows Phone 7Windows 8SilverlightWPF等基于XAML的应用程序的开发工具。作为开发工具,其与Visual Studio最大的不同,就是它在UX设计方面强大的功能,如编辑UI、动画、模板等。在实际开发中,Expression BlendVisual Studio搭配使用,以达到事半功倍之效果。

2:必须用Expression Blend 才能编写 Windows Phone 7Windows 8 UI吗?

【答】不是。Windows Phone 7Windows 8Metro)的UI 都是基于XAML语言,而XAML语言本质是XML,因此完全可以用“记事本”等工具进行文本编辑。当然,Expression Blend在生成和编辑 XAML 语言方面提供了相当完备而简介高效的诸多功能,因此已成为事实上的 XAML 编程首选工具。

 

3Expression Blend 适合什么人使用?

【答】Expression Blend并非仅仅用于设计静态的UI,而更是用来设计动态内容及交互功能的工具。正因如此,我们才称之为UX设计工具。既然是UX设计工具,自然是UX设计者去用。

什么样的人才算是UX设计者呢?这里仅表个人看法:UX与传统UI有着巨大差别。前者重点在于用户体验,交互过程;而后者尽管也把易用性挂在嘴边,但实际上UI设计人员的工作常被定格在“把界面弄好看点”上。一个合格的UX设计者,首先应该具备一定的UI功底,懂得常用的设计模式(此设计模式非彼设计模式),并具备一定的绘图能力(不要求是Photoshop高手,但起码要能够利用一种主流绘图工具准确自如地表达自己的想法),以及有关动画制作的基础知识。另一方面,还应该懂得一定的编程知识,尤其是与人机交互相关的处理逻辑(如数据绑定、依赖属性、委托事件、自定义控件的声明与继承等),这些都是充分发挥XAML语言强大功能的前提。

当然,设计与开发两者兼备的人并非比比皆是,一个更加可行的方法是:程序员与设计人员一起协作,共同去学习和掌握Expression Blend,利用各自擅长的技能去相互弥补,逐渐加深对UX设计的理解。而这样一来的好处是,最终会收获两位UX设计高手。

 

4Expression Blend应该如何学习?

【答】相比于网络上有关Visual Studio的丰富资源,Expression Blend相关的教程少得可怜。学好Expression Blend的关键是熟练掌握该开发工具的各种操作,因此,本人倾向于推荐一些视频资源,如:

Total Training Microsoft Expression Blend 4 Essentials (国内某著名电驴网站有相关资源)

上面提到的这套视频教程非常系统、全面地讲述了Expression Blend的基础知识,建议每一位励志开发微软平台程序界面的朋友看一看。另外,有推荐两个好去处,可以经常光顾,以获得具有针对性的、最新的内容:

http://www.microsoft.com/expression/

http://expression.microsoft.com/

(明明都是微软自己的,看这蛋疼的网址搞的,在这里小小吐槽一下)

5Expression Blend里很多功能都是拖拖拽拽来搞定的,这是否意味着我不必学编写代码了?

【答】不是。Expression Blend 为我们提供“拖拽式”的设计功能,意在提高设计者的工作效率,并非教唆大家对“写代码”视而不见。我的建议是,在学习过程中,边练习使用Expression Blend编辑界面,边分析生成的XAML代码,从逐步加深对XAML编程的了解,最终达到能够自如地用手工编写XAML代码的程度。而在实际项目当中,强烈建议使用Expression Blend,毕竟它的工作效率要比手工写代码高出很多。再次强调,使用Expression Blend的前提是:你必须清楚拖拖拽拽的背后,都发生了哪些事情。工具毕竟是工具,它亦有局限,偶尔也会遇到它无法完成的功能,此时,我们的手工编写XAML代码的功底就派上用场了。另外,通过工具自动生成的代码,往往会有冗余,需要我们手工去剔除和矫正,以提高程序的执行效率及代码的简洁度。

 

OK,以上就是我总结出的一些针对Expression Blend常见问题的看法,希望能够对各位有所帮助。有关Expression Blend的一些疑问,也欢迎一起沟通讨论。

 

作者: 李靖南

出处:http://elecpiano.blog.51cto.com/   

Email: elecpiano@gmail.com 

新浪微博: http://weibo.com/zengnami

MSN: zengnami@hotmail.com

QQ: 52717278 


关于作者:

从事微软平台解决方案的设计与实现。主要专注于 Windows 8 及 Windows Phone 7 应用开发,及前者与微软云计算平台(Azure)的结合。

 

本文版权归作者和51CTO共有,欢迎转载,但未经作者同意则必须保留此段声明,并在文章较明显位置给出原文连接。非常感谢!