今天在@IT网站看到一篇关于Expression Blend的文章,这篇文章开头部分对于.NET 3.0/WPF时代微软产品结构、地位作了简单介绍,觉得概括的很精妙,这里就加以借题发挥,做一个WPF入门。

什么是WPF?

要是到微软的网站查找答案,肯定能得到一大堆华丽却让人糊涂的辞藻。WPF (Windows Presentation Foundation)是.NET 3.0的一部分,是一种新的用户界面技术,用术语说是一种新的“图形子系统 (Graphic Subsystem)”。换句话说,在.NET 2.0当中我们可以开发两种应用程序:

  • Windows Forms Application
  • ASP.NET Web Application

那么在.NET 3.0当中,可以开发的应用程序又多了一种:

  • WPF Application

而WPF Application则又可以继续分成下面两种:

  • Windows下的应用程序:何传统的桌面应用程序、Windows Forms应用程序一样,只不过用户界面部分采用了WPF技术 (XAML等)编写的应用程序。这种程序由于可以使用WPF的全部功能,因此可以将WPF丰富绚丽的用户界面表现能力发挥到极致。
  • XAML Browser Application (XBAP),其特点是:
    • 在Internet Explorer中运行
    • 无需安装
    • 像ClickOnce一样,在部分信赖的域中执行

那么最近沸沸扬扬的Silverlight又是什么呢?Silverlight的前身是很早以前就万人期待的WPF/E,其中E的意义是 Everywhere。众所周知,要想使用WPF,就必须安装.NET 3.0;而.NET 3.0虽然宣称跨平台,但目前还仅限于Windows XP以上版本。因此,WPF/E最初的目标,就是把WPF/XAML的丰富的用户界面表现能力带到各个平台。

带着这个目标,WPF/E经历了数十个月的秘密开发之后,作为Silverlight诞生了——其诞生之日起,就被人们命名为Flash杀手——因为它和Adobe的Flash太相似了。很多.NET程序员都乐了——以后可以用C#开发Flash了!从这一点,想必Silverlight的特点已经很清晰了:客户端是浏览器,在下载一个插件之后即可享受Silverlight带来的激动人心的用户体验了。

最后,用一张图表来总结各种产品的关系、地位: