【引言】本文的作者是@微士博,其就@老徐FrankXuLei提出的“微软为什么会选择Silverlight作为Windows Phone应用程序的开发框架?”问题做了详细的回答,小编对原文进行了简单的整理,具体如下:
Q:微软为什么会选择Silverlight作为Windows Phone应用程序的开发框架?
A:回答这个问题,估计要把时间拉回到2008年,微软推出WPF(Windows Presentation Foundation)/WPF。
WPF是微软下一代的界面表现技术,是微软最新.NET Framework 3.0的四大核心技术之一。WPF基于.NET Framework和DirectX技术,能够让开发出连自己都想象不到眩目界面,同时WPF简化了界面开发技术(WinForms),后来,WPF/e演化成现在的Silverlight,当初发布的时候,有很多人都搞不清楚两者之间的关系,也就错以为这2个是相同的技术,其实,两者除了在UI部分使用了相同的XAML语言做为界面显示技术外,本质上是有些不同的。
纵观微软几个核心的技术领域,WinFroms、WPF、Silverlight、ASP.NET等等这些技术的本质,无非是底层所使用的框架不同,
在Windows中,诸如窗体绘制等功能都是由GDI来实现,WinForms在底层使用的是GDI+,玩过图形编程的朋友应该不陌生,GDI+也是在C++非托管代码上又包了一层实现的,从而,我们才能使用C#,VB这样的托管编程语言调用GDI+功能绘图。
WPF底层使用的是DirectX,就是开发游戏时使用的那个技术,WPF原来的代号为:“Avalon”,有朋友戏称:“我佩服”听起来牛X吧? WPF是运行在.NET Framework 3.0架构下,为用户提供界面,2D/3D图形,文档和媒体提供了统一的描述跟操作方法,此时,DriectX也更新到了 DirectX 9/10版本,主要还是在3D渲染引擎也大大改进,你现在用的windows 7 ,windows vista,就是它的功劳。
Silverlight其实在API层你可以看成是WPF的字集或者一个轻量版本。 SilverLight原来设计的初衷是基于浏览器插件,同时,也被业界认定是与flash强有力的竞争对手,它在浏览器中运行,服务器端不需要部署任何环境,客户端只需要安装Runtime浏览器插件,即SL(2,3,4,5)三个版本,而无须安装.net Framework 3.0。所以,SilverLight的运行环境不受操作系统和浏览器的种类限制(更准确的说,是受到较少的限制)。 WPF可以编写Web程序或者桌面应用程序,可以直接编译为独立运行的.exe文件。但有一条,WPF运行时必须安装.net Framework 3.0。
扯了这么多,也都是些老掉牙的事了,貌似还没有归结到:“微软为什么会选择SL做为WP应用的开发框架”这个主题上来,有了前面的开胃菜,你就对接下来要说的,多少会能理解点。
微软的Windows Mobile大家并不陌生,在某个时间段内,市场占有率,开发人员数量,应用数量,也是响当当的,WM的底层则是.NET Compact Framework.
Q:什么是 Microsoft .NET Compact Framework?
A:Microsoft .NET Compact Framework是针对 Microsoft .NET计划的智能设备开发框架,是实现Microsoft随时随地在任何设备上为客户提供良好体验的目标的关键所在。.NET Compact Framework 将托管代码和 Web 服务带给了智能设备,它允许安全的、可下载的应用程序在诸如个人数字助理 (PDA)、移动电话和机顶盒等设备上运行。
智能设备框架?可下载应用程序?个人数字助理?移动电话?这些词并不陌生,在现在当时看来,是不是挺那么耀眼的?,.NET CF有其不足之处,诸如动画效果、GPU加速、2D/3D图形渲染等,随着移动智能终端的发展,微软手里握着这么多互相补充的技术不用,岂不是傻子?正如@林永坚Jake: 所说,早在Silverlight2版本时,Win CER3已经支持SL2了,再加上微软的“三屏一云”战略,Silverlight势必会担当重任。
原文链接:http://jasonwei.com/archives/422
51CTO专访微士博:希望微软开放更多WP权限给开发者