我正在阅读有关Windows Phone 8.1开发的内容,因为我已经使用Windows Phone 8,我打算开始使用新的操作系统版本 .
然后我用更新4下载了Visual Studio for Windows,打开了我的一个项目(目标到WP8)并点击“升级到8.1” .
我看到我的解决方案将名称更改为“Windows Phone SilverLight 8.1” .
然后我尝试创建一个针对Windows Phone 8.1的新项目,我在Visual C#树下看到了以下选项(如图所示):
-
通用应用
-
Windows Apps
-
Windows Phone应用程序
我的目标是开发使用Windows Phone 8.1的手机设备,我选择了“Windows Phone应用程序” . 但我看到这个项目与另一个项目(我从WP8升级的项目)有点不同 . 在解决方案上显示“Windows Phone 8.1”而不是“Windows Phone SilverLight 8.1” . 代码也非常不同 .
所以,我对它进行了研究,了解“Windows Phone SilverLight 8.1”和“Windows Phone 8.1”之间的区别,阅读了一些这样的帖子:
-
Difference between Windows Phone Silverlight 8.1 and Windows Phone 8.1 development
-
What is the difference between Windows Phone 8.1 and Windows Phone 8.1 Silverlight
-
In windows phone 8.1 what is the differance between Windows phone project and silverlight project?
但我找不到任何让我理解的东西 .
在某些时候,我找到了一个答案,说“Windows Phone 8.1”适用于通用应用程序...但我不同意,如果我想创建一个通用应用程序,我会选择“通用应用程序”而不是“Windows Phone应用程序” .
有谁知道这两个项目之间的区别?
3 回答
主要区别在于Windows Phone 8.1 Store Apps严格使用Silverlight下不可用的WinRT API .
在您阅读之前,这是简短的版本:
Windows Phone 8.1商店应用代码在所有 Windows Phone 8.1+ 和 Windows 8+ 机器上运行,因为它使用统一的WinRT API .
Windows Phone Silverlight应用程序代码在所有 Windows Phones 7+ 上运行,但不在所有Windows 8计算机上运行(ARM计算机不支持所有功能) . 这就是Windows应用商店应用使用不同API(WinRT)的原因 . 您可能想看看这个链接:http://msdn.microsoft.com/en-us/library/windows/apps/jj681690%28v=vs.105%29.aspx
Windows Phone仅使用版本8的Silverlight应用程序,而Windows 8(一个版本)的应用程序也提供了WinRT API - 您可能已经注意到ARM CPU的Windows 8 RT版本 .
所以 - 为了阻止Silverlight和WinRT的无尽并行性,微软决定统一开发过程 . 从Windows Phone 8.1开始,Windows Phone还运行WinRT(我认为更名为Windows Runtime)应用程序 .
主要优点是您现在可以轻松地将Windows Phone 8.1代码移植到Windows 8.1应用程序,反之亦然,因为两者都使用相同的API . 访问文件,存储,网络......在Windows Phone和Windows应用商店应用中都是如此 .
这是Universal Apps发挥作用的地方 . 您现在可以轻松创建一个包含Windows Phone 8.1和Windows 8.1共享代码的通用项目,而不是稍后通过创建新项目来移植代码 .
但是,缺点是您的应用程序无法在Windows Phone <8.1上运行 .
不同之处在于应用程序将使用的框架 .
Silverlight是一个像Flash的插件,所以如果你开发一个使用它的应用程序,你必须使用他的库/语法 . 这是开发网络和电话应用程序的一种老方法 .
Universal是Microsoft开发的新框架,可帮助开发人员创建在Windows Phone或Windows Store上运行的应用程序 .
那么,你在互联网上找到的是正确的:手机应用程序适用于通用框架 . VS提供的声音意味着: - 通用应用程序:适用于任何设备(手机/平板电脑/ PC) - 手机应用程序:仅用于手机(注意!可以使用任何为通用应用程序开发的库,因为通用应用程序可以在手机上运行) - Windows应用程序:仅适用于平板电脑/ PC(无手机) . 你可以使用像手机应用程序那样的通用应用程序库
我希望这可以有所帮助
Silver Light项目确实有服务参考设施,而在窗口电话中它被删除,因此您可以使用azure提供的服务或休息服务,同时开发Windows Phone