[深刻浅出WP8.1(Runtime)]Windows Phone 8.1和Silverlight 8.1的区别

1.2.2 Windows Phone 8.1应用程序模型

    Windows Phone 8.1支持多种开发语言来开发应用程序,包括C#、VB、JavaScript和C++,那么本书的代码主要是采用C#语言来开发,部分章节采用C++。从Windows  Phone 8.1开始,若是是开发普通的应用程序能够选择的应用程序模型有:C#/XAML、VB/XAML、C++/XAML和JavaScript /HTML5。游戏开发仍是采用C++的DirectX的框架。在Windows Phone 8以前若是是开发普通的应用程序,只可以采用C#/XAML和VB/XAML这两种开发模型,而在Windows Phone 8.1以后新增了C++/XAML和JavaScript /HTML5这两种开发模型的支持。C#/XAML、VB/XAML和C++/XAML这三种开发模型实际上是相似的技术框架,它们都是使用XAML做为界面的编程语言,而后使用C#/ VB/ C++做为后台的开发语言,注意这里的C++是指C++/CX语法的C++,是属于Visual C++ 组件扩展的扩展语法,对于C++/CX更加详细的介绍和讲解能够参考第22章。那么JavaScript /HTML5的开发模型则是使用HTML5做为界面的开发语言,JavaScript做为后台的开发语言。同时在Windows Phone 8.1里面提供了Windows运行时组件来给各类不一样的编程语言来共享代码,好比用C++实现的代码或者封装的功能,能够经过Windows运行时组件的方式给C#/XAML模型的应用程序来调用,或者也能够给JavaScript /HTML5模型的应用程序来调用。所在在这些不一样的编程模型里面Windows运行时组件会做为一种媒介来实现跨编程语言的代码共享。html

    那么对于Windows Phone 8.1所采用的多种应用程序模型,开发者应该如何去选择应用程序的开发模型呢?微软给出的建议了,开发者应该选择本身所熟悉的开发语言来进行开发。若是从应用程序性能的角度去比较,采用XAML(C#、VB和C++)模型的性能会比HTML5的性能高一些。那么对于C#、VB和C++三种编程语言来讲在Windows Phone 8.1上面实现的效率是差很少的,由于即便是C++也是采用C++/CX语法来调用Windows运行时的API,Windows运行时的架构则是微软统一采用C/C++语言来封装的。采用C#语言来调用的Windows运行时框架和采用C++调用的是同样的。那么若是你采用标准C++所实现的算法或者图形处理等这些公共的逻辑,确定是C++的效率更高,不过这种状况C#、VB和JavaScript的应用程序同样也能够经过Windows运行时组件来调用标准C++封装的这些公共的代码。算法

    在Windows Phone 七、7.5和8.0的时候,Windows Phone是只支持C#/XAML和VB/XAML这两种应用程序开发模式的,同时WPF和Silverlight这两种技术也是只支持C#/XAML和VB/XAML的开发模式,而大部分的开发者都是选择C#/XAML来进行开发,因此目前所C#/XAML这种开发模式所积累下来的技术知识很是丰富,也是Windows Phone开发里面最受欢迎的开发模型。数据库

1.2.3 Windows Phone 8.1和Silverlight 8.1的区别

    那么在上面所讲的开发框架都是属于Windows Phone 8.1的应用程序,这是彻底基于Windows运行时框架下的应用程序开发模型,那么除此以外咱们还能够建立一种应用程序叫作Windows Phone Silverlight 8.1的应用程序。那么首先了解一下为何须要有Windows Phone Silverlight 8.1这种模式的应用程序,其实Windows Phone Silverlight 8.1这种模式的应用程序是为了兼容目前的Windows Phone 8的代码方便升级,而且Windows Phone Silverlight 8.1的应用程序会全面支持Windows Phone 8原来的API和功能,注意Windows Phone 8.1的API对Windows Phone 8的API实现了很大的修改,下一小节咱们会介绍这种差别。同时Windows Phone Silverlight 8.1的应用程序也会支持部分在Windows Phone 8.1中新增的API和功能。由此能够看出来,Windows Phone Silverlight 8.1项目只是为了暂时兼容目前的Windows Phone 8的代码方便升级,而Windows Phone 8.1的应用开发模式则是Windows Phone将来的发展方向,而且进一步和Windows 8.1的开发模式融合起来。因此本书全部的代码和讲解都是针对Windows Phone 8.1的应用程序的,而不是Windows Phone Silverlight 8.1的应用程序。编程

1.2.4 Windows Phone 8.1和8.0的API 差别

   Windows Phone 8的UI框架是基于Silverlight 4.0来进行开发的,应用程序的开发框架是基于.NET Framework和一个精简版的Windows运行时框架,而Windows Phone 8.1的应用程序则是彻底基于Windows运行时框架的应用程序,所使用的Windows运行时框架是和在Windows 8 / 8.1平台上开发Windows Store的应用程序是统一的框架。Windows Phone 8.1和Windows Store的应用程序都是使用的Windows运行时的UI框架,因此在应用程序里面也能够在Windows Phone 8.1和Windows Store的应用程序之间来共享XAML的UI代码,包括模板、控件、页面等等。下面咱们再来看一下,Windows Phone 8.1和8.0的API 有哪些主要的变化和差别:微信

    (1)8.0的XAML控件是在System.Windows.Controls空间下,而8.1的XAML控件都是在Windows.UI.Xaml命名空间下。架构

    (2)8.0的应用程序栏为AppBarButtons,而8.1的为CommandBar。框架

    (3)8.1增长了ListView 和GridView列表控件, 8.0的LongListSelector控件在8.1修改成SemanticZoom。异步

    (4)8.0的Panorama控件在8.1修改成 Hub控件。编程语言

    (5)8.0 的页面基类PhoneApplicationPage类在8.1修改成Page类。性能

    (6)8.1再也不支持RadialGradientBrush画刷。

    (7)8.1的Windows.UI.Xaml.UIElement.Clip 属性只支持RectangleGeometry类型的几何图形,其余的几何图形均不支持。

    (8)8.0的弹窗控件MessageBox 在8.1里面修改成MessageDialog,而且是异步调用的模式。

    (9)8.0的页面导航方式NavigationService.Navigate(Uri source[, object navigationState])在8.1修改成this.Frame.Navigate(typeof(AboutPage));

    (10)在8.1中取消了8.0的WebClient类的Http编程,增长了HttpClient类。

    (11)对于XAML中命名空间的引用,有语法“clr-namespace”改成“using”。

    (12)8.1取消了8.0中的启动器和选择器的API,可使用Windows.System.Launcher来实现部分的功能。

    (13)8.1从新修改了8.0中的语音API。

    (14)8.1从新修改了8.0中的地理位置API,并增长了地理围栏相关的功能。

    (15)8.1再也不支持本地数据库SQL Server CE的使用。

    (16)8.1再也不支持独立存储的API,取而代之的只能使用应用文件和应用设置的API。

    (17)8.1的后台任务编程采用新的API和机制,原来8.0的后台任务API和运行机制都取消了。

    (18)8.1的推送通知编程和API也和8.0的不一样。

    (19)8.1的Toast通知、磁贴通知、磁贴的实现和8.0的也不一样。

    (20)大部分在8.0中所支持的.NET API(非Windows运行时的API)在8.1中都再也不支持。

 

本文来源于《深刻浅出Windows Phone 8.1 应用开发》

WP8.1 Runtime文章列表:http://www.cnblogs.com/linzheng/p/3998037.html

源代码下载:http://vdisk.weibo.com/s/zt_pyrfNHb99O

欢迎关注个人微博@WP林政   微信公众号:wp开发(号:wpkaifa)

WP8.1技术交流群:372552293

相关文章
相关标签/搜索