Windows Phone 或 Windows Phone Silverlight

3

我刚安装了Windows 8.1,并安装了Visual Studio 2013社区版。

我尝试创建一个Windows Phone应用程序,发现有两种创建方式(如果我没记错的话实际上有三种,如果算上通用应用程序)

  1. Windows Phone
  2. Windows Phone Silverlight

请问有人可以告诉我这两者之间的区别是什么?我读了几篇文章,但仍然不理解,整个事情非常混乱。

当我尝试创建一个Windows Phone Silverlight项目时,它要求我选择是否针对8.0或8.1进行目标设定。

当我尝试创建Windows Phone项目时,它要求我获取开发人员许可证,但没有询问版本8.0或8.1。

如果我的目标是创建一个能够在运行Windows Phone 8版本的大多数设备上运行的移动设备(平板电脑/手机)应用程序,我该选择哪个?


1
可能是[Windows Phone 8.1商店VS Windows Phone 8.1 Silverlight]的重复问题。(https://dev59.com/YIXca4cB1Zd3GeqPOdkN) - yasen
1
似乎是重复的,但仍然... Windows Phone 基本上是新平台。它不支持 8.1 之前的 Windows Phone 版本。Windows Phone 基本上是通用应用程序的 Windows Phone 部分。您可以轻松地从 WP 转换为通用应用程序(只需单击一下)。如果您想支持旧的 WP 版本-您需要 Silverlight。如果您想支持平板电脑-您需要新的那个。我建议您选择新的-Windows Phone。 - yasen
也可能是重复的问题:https://dev59.com/9H_aa4cB1Zd3GeqP335r#23545031 - Johan Falk
@yasen 好的,但是在这个阶段使用Windows Phone不会有劣势吗?因为大部分市场份额都被Windows Phone 8占据了,而不是8.1。 - Frank Martin
正如我在上一个对Karthik答案的评论中所说 - WP8.1拥有50%的市场份额。当你有一个坚实、稳定的工作应用程序时,它将拥有更多的份额。但这是一个有效的考虑因素,所以这取决于你。如果你要做的是与工作相关的事情(你不是老板)- 请与高级开发人员/项目经理讨论。如果不是 - 我仍然认为你应该选择新平台。 - yasen
你好Yasin,“看起来像是重复的,但还是……”你上面的评论看起来很令人困惑。你所说的Windows Phone版本不支持8.1之前的版本是什么意思?你能否请重新表述一下。 - Sunil Kumar S C
2个回答

6

Windows Phone 8 Silverlight是Windows Phone 8上较旧的用户界面(UI)。WinRT XAML用于Windows Store应用程序(这些是通用应用程序)。如此处所述,Windows Phone 8.1 Silverlight有些不同。

在某些方面,尽管较老,但Windows Phone Silverlight更好。如果您的目标是开发仅针对手机并且没有任何用途可移植到Win8/RT的应用程序,请选择Silverlight。在WinRT中,背景音频很混乱。带Cortana的语音识别更糟糕。

WinRT XAML控件存在漏洞。例如,在WinRT XAML中,MapControl 的性能明显下降,而在Silverlight中则更流畅。

另一方面,Windows Store应用程序具有.NET Native,它将C#转换为本机C++代码,从而提高了性能。

对于初学者,我建议从Windows Phone 8 Silverlight应用程序开始。


1
我真的不明白为什么每个人都建议那些刚开始使用旧技术的人,这些技术很可能会逐渐被淘汰,而不是学习新的API和新平台,这些新技术也可以在平板电脑和手机上使用(与旧技术只能在手机上使用相比)。因此,我对这个答案表示尊重地不同意。 - yasen
我必须在这一点上同意@yasen的看法,除非您需要仅适用于Silverlight的API之一,否则WinRT是更好的选择。而且我认为它并不比Silverlight应用程序难以入门。 - Johan Falk
1
他有点道理。我做了一个非常简单的应用程序,但我发誓我的30%开发时间都花在解决映射API中的无数严重错误上。但是在8.0中也发生了同样的事情;许多人选择使用7.1地图控件,因为8.0版本是如此巨大的退步。也许教训就是对于地图使用[版本]-1? - Paul Abbott
1
@yasen @johan-falk WP8有WebClient,可以快速下载字符串(可能是json),这对初学者来说很好。WinRT没有WebClient,但有一个HttpClient,对于初学者来说更加困难和复杂。还有一点,在最近泄露的Win10版本中,它运行了Windows Phone应用程序(不确定是SL还是RT应用程序)...所以,也许WP8 Silverlight应用程序不会立即消失。 - Karthik Nishanth
1
@FrankMartin 大部分是正确的。如果你想要覆盖更多的手机,你可能会倾向于选择Silverlight。根据11月的统计数据显示,WP8.1占有50%的市场份额,而WP8.0则占有33%。但是8.1之前的版本越来越不重要了。另一方面,如果你想要支持平板电脑,那就选择Windows Phone吧。至于通用应用程序,它是一个拥有3个项目的应用程序 - 一个用于手机,与Windows Phone项目完全相同,一个用于台式机/平板电脑(使用Windows 8.1),以及一个共享其他两个项目之间文件的项目。 - yasen
显示剩余2条评论

1

Windows Phone Silverlight是建立WP8.0应用程序的“旧”平台。它要求您以8.0或8.1为目标,因为WP8.1具有混合模式,使您能够构建WP8.1应用程序但仍然可以访问Sliverlight API,如果您有大量遗留代码尚未移植,可以使用该API。

Windows Phone是基于Windows Runtime的(大多数)通用平台,适用于WP8.1。


这意味着如果我想让我的应用程序在尽可能多的设备上运行,我应该使用Windows Phone Silverlight进行开发? - Frank Martin
不,Silverlight是平台。它永远无法在平板电脑上运行。 - Paul Abbott
1
你是指基于Windows 8/8.1的平板电脑还是Surface? - Frank Martin
3
为了在Windows 8/8.1设备以及手机上运行,您需要针对WinRT/8.1通用应用进行开发。如果使用通用应用程序模板,则只能针对WinRT进行开发,这意味着您的应用将在Windows Phone 8.1和Windows 8.1(平板电脑、台式机、笔记本电脑等)上运行;它不会在WP8或更早的版本上运行。尽管还有许多WP8用户,但WP7用户已很少。如果您想针对PC和平板电脑进行开发,请选择WinRT通用应用程序。如果您只想针对手机进行开发,请选择Windows Phone 8或8.1。如果您选择8.1 WinRT,则是未来可靠的选项,并且将更轻松地将应用移植到Windows系统中。 - pumpkinszwan

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