對比 Windows Phone 8 apps ,Sliverlight 8.1 apps 的主要變化有以下幾點:
1、異常處理
將 app 升級到 Sliverlight 8.1 後可能會出現運行時錯誤。部分 API 可能會拋出潛在的錯誤,若沒有將涉及的代碼放在 try 中,則可能會是引起運行時錯誤的源頭。
2、Sliverlight 8.1 apps 與 Windows Store apps 不同,用戶使用 back 鍵會使該 app 終結,這點與 Windows Phone 8 apps 一樣。
3、當重新啓動一個 app 時,Sliverlight 8。1 和 Windows Store 一樣,會恢復該 app 的實例。而在 Windows Phone 8 中,則會爲該 app 生成一個新的實例替代任何已經存在的實例。
4、若在 Windows Phone 8 app 中爲磁貼提供本地文本,則在升級爲 Sliverlight 8.1 app 的時候,如果繼續使用 Microsoft Push Notification Service 框架,則推送服務會正常工作;否則本地文本將無法在磁貼中顯示。
5、與 Windows Phone 8 一樣,若 WinRT 組件使用託管代碼, Sliverlight 8.1 則無法使用;但它們都支持原生的 WinRT 組件。
6、在 Sliverlight 8.1 中,必須在 WMAppManifest.xml 文件中聲明 DefaultTask ,指明 app 初始化時的顯示頁面;而在 Windows Phone 8 中,這是可選的。
7、Windows Phone 8 會在 WMAppManifest.xml 文件中聲明 app 對屏幕分辨率的支持,而 Windows Phone Store 會將不合適的 app 隱藏掉。在 Sliverlight 8.1 中沒有類似的支持。
8、Sliverlight 8.1 app 需要在 Package.appxmanifest 文件中聲明 Picture Library capability 以訪問 KnownFolders.CameraRoll。
9、Windows Phone 8 中不會完全禁止 XNA,但在 Sliverlight 8.1 中,app 不可使用 XNA。
10、在 Windows Phone 8 中,會使用 MemoryManager.ProcessCommittedBytes 聲明 app 對內存的使用;而 Sliverlight 8.1 是通過 Windows.System.MemoryManager 屬性去管理 app 的內存使用的。
11、對象通過聲明變量初始化靜態域時,必須顯示提供一個靜態構造器。
12、與 Windows Phone 8 不同,Sliverlight 8.1 運行在前臺的 app 是在 Single-Threaded Apartment 中運行的,而後臺任務則保持使用 Multi-Threaded Apartment。