Windows Phone 8.1和Windows Phone Silverlight 8.1的区别

17
我正在阅读关于Windows Phone 8.1开发的内容,因为我已经在使用Windows Phone 8,并且打算开始使用新的操作系统版本。
然后我下载了带有更新4的Windows Visual Studio,打开了我的一个项目(目标为WP8),并点击“升级到8.1”。
我看到我的解决方案的名称变成了“Windows Phone SilverLight 8.1”。
然后我尝试创建一个新项目,目标是Windows Phone 8.1,在Visual C#树下看到了以下选项(如图所示):
- 通用应用程序 - Windows应用程序 - Windows手机应用程序

enter image description here

作为我的目标是开发适用于Windows Phone 8.1手机设备的应用,我选择了“Windows Phone Apps”。但我注意到这个项目与其他项目有些不同(那些我从WP8升级过来的)。在解决方案中出现了“Windows Phone 8.1”而不是“Windows Phone SilverLight 8.1”。代码也非常不同。因此,我进行了一些研究,以了解“Windows Phone SilverLight 8.1”和“Windows Phone 8.1”之间的区别,阅读了一些像这样的帖子:

但我找不到任何能让我理解的东西。

有一次,我找到了一个答案,说“Windows Phone 8.1”是用于通用应用程序……但我不同意,如果我想创建通用应用程序,我会选择“通用应用程序”,而不是“Windows Phone应用程序”。

有人知道这两个项目之间的确切区别吗?

3个回答

21
主要区别在于Windows Phone 8.1商店应用程序严格使用WinRT API,而Silverlight下不可用。简短版如下:Windows Phone 8.1商店应用程序代码在所有Windows Phone 8.1+和Windows 8+机器上运行,因为它使用统一的WinRT API。Windows Phone Silverlight应用程序代码在所有Windows Phones 7+上运行,但不能在所有Windows 8机器上运行(ARM机器不支持所有功能)。这就是为什么Windows Store应用程序使用不同的API(WinRT)的原因。您可能想查看此链接:http://msdn.microsoft.com/en-us/library/windows/apps/jj681690%28v=vs.105%29.aspx。在版本8之前,Windows Phone仅使用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 Store应用程序中都是相同的。
这就是通用应用程序的作用。现在,您可以轻松地创建一个包含Windows Phone 8.1和Windows 8.1共享代码的通用项目,而不是通过创建新项目来稍后移植代码。
但是,缺点是您的应用程序将无法在Windows Phones < 8.1上运行。

1
“Windows Phone Silverlight应用程序代码可在所有Windows Phone 7+上运行” - 这句话正确吗?我刚在Visual Studio 2013中创建了一个新的Windows Phone Silverlight应用程序,然后被提示选择目标操作系统 - 要么是WP 8.0,要么是8.1。因此它无法在7.+上运行。 - ondrisko
应用程序仍在运行。但是支持已经停止了。您无法向WP7添加新应用程序。 - Fred
当我尝试通过XapDeploy.exe将WP 8.0 Silverlight应用程序部署到WP7模拟器时,它会显示“无法将此应用程序部署到设备上,因为它针对的Windows Phone版本高于设备支持的版本。”我没有可用的物理WP7,但您是说这样的应用程序可以在物理WP7上运行吗? - ondrisko

2
区别在于应用程序将使用的框架不同。
Silverlight是一种类似于Flash的插件,因此如果您开发使用它的应用程序,则必须使用其库/语法。这是一种旧的开发Web和手机应用程序的方式。
Universal是微软为帮助开发人员创建可在Windows Phone或Windows Store上运行的应用程序而开发的新框架。
因此,在互联网上找到的信息是正确的:Phone App是通用框架的一部分。VS提供的选项包括: - 通用应用程序:适用于任何设备(手机/平板电脑/PC) - 手机应用程序:仅适用于手机(请注意!可以使用为通用应用程序开发的任何库,因为通用应用程序可以在手机上运行) - Windows应用程序:仅适用于平板电脑/PC(没有手机)。您可以像Phone App一样使用通用应用程序库
希望这有所帮助。

-1

Silver Light 项目具有服务引用功能,而在 Windows Phone 中已被删除,因此您可以在为 Windows Phone 开发时使用 Azure 提供的服务或 REST 服务。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接