windows8 开发平台和开发框架
win8 App开发主要分成两部分,desktop app和metro app。右边蓝色的部分就是desktop app的部分,也是从win7延续过来没有发生变动的部分,前段在论坛上经常看到有人说在win8中不再支持MFC,ATL等,这些绝对是谣言,以前桌面开发支持的,win8桌面程序也都支持,所以搞MFC,Com,ATL等开发的不用觉得是世界末日,地球还是绕着太阳转着呢。 重点是绿色的部分,Metro风格App的开发平台,这是win8中全新的架构,让我们一层层来看吧。 底层是windows内核,往上是windows Runtime层,你可以把WinRT理解为升级版的Windows API,比如它提供了更易使用的Metro UI的API,比如异步编程的全面支持,比如对多种开发语言交互的支持等等,可以说是微软继.Net之后的又一重要框架。它是由C++实现的,所以性能应该会有优势。 从WinRT上方的几部分可以看出,win8支持3种方式开发Metro App,第一种是Html+CSS+JS,第二种是XAML+C++,第三种是XAML+C#.Net或VB.Net。对Javascript的支持,绝对是Web前端开发者的福音,至少UI这部分的开发几乎是无缝就能上手的,JS也终于走出浏览器这个沙盒,开始支持开发native app了,从Win8也对JS提供支持可以看出目前JS有多火,曾经小看或轻视这门语言的人该醒醒了。而C++开发者也可以走第二条路,而且从XAML设计UI和WinRT提供的UI接口来看,易用性和扩展性绝对要比桌面时代C/C++开发UI要强很多。第三种.Net的开发方式,让原来.Net的开发者也可以无缝过渡到Win8的Metro App开发上。所以,不管是Web开发者,C++开发者,还是.Net开发者进军Win8 Metro App开发的路都是走的通的。从技术上来看,虽然支持三种开发形式,但最后其实还是映射到WinRT这个沙盒中,所以性能都不会差。 也许还有人会问,那原来的Win32 API和Com API跟Metro App开发中就完全无关了吗?其实不然。因为有了WinRT API了,可以说大部分Win32和Com的API确实对Metro App开发不再有用,但是仍旧有一小部分API在WinRT中是没有被Cover到的,而这些应用仍旧是可以被使用的。据说在SDK代码头文件或者MSDN新的说明文档中都会指明各个API可以应用的范围(桌面或Metro或两者都支持)。其实.Net也是类似的,原来.Net Framework中的也是只有一部分API仍旧保留作为Metro App开发的API,只是.Net的这部分应该比Win32和Com中保留在Metro开发中能使用的要多的多了。