[深刻淺出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

相關文章
相關標籤/搜索