我正在观看一些用于开发 Windows Phone 7 应用程序的视频教程(并希望在此基础上开发 Windows 8 应用程序;)视频教程中的那个人正在使用 Visual Studio 2010,而我有 Visual Studio 2012。他使用选项“新建 -> 项目 -> Silverlight for Windows Phone”。虽然我没有这样的选项,但我确实有一个名为“New -> Project -> Windows Phone”的选项。这让我想知道这两者之间是否有区别。如果有的话,有人可以解释它们之间的区别吗?
2 回答
Visual Studio 2010 只能为 Windows Phone 7 制作应用程序。而 Silverlight 是 WP7 上唯一可供第三方开发人员使用的 API(甚至 XNA 也是基于 Silverlight)。
在 Windows Phone 8(由 Visual Studio 2012 支持)中,添加了新类型的应用程序:本机(基于 C++)、HTML5……这就是为什么称“Silverlight for Windows Phone”这个类别不再有意义了,它是简单地重命名为“Windows Phone”。
这只是一个名字,对你没有任何影响。创建新的“Windows Phone 应用”项目时,Visual Studio 会询问您要定位哪个版本。如果您选择“Windows Phone 7.1”,您将获得与 Visual Studio 2010 中完全相同的 API。
微软只是试图减少术语并普及某些方式。Windows 手机应用程序与适用于 Windows 手机的 Silverlight 相同。唯一不同的是,Visual Studio 2010 中的 Silverlight 项目针对开发人员选择 windows phone 7.0 或 Mango(Mango 在 SDK 中编号为 Windows Phone OS 7.1,而用户称其为 Windows Phone 7.5)或 7.8(根据安装的更新)。但是,如果您在 Visual Studio 中使用 windows phone 项目,您将面向 Windows phone Mango 或 7.8 或 8。请注意,可能需要可选更新以针对 Windows phone 7.8 等某些平台。windows phone 7.8 基本上是一个 windows phone 7,其中一些功能从 windows phone 8 作为多尺寸动态图块向后移植到它,而一些功能没有作为阿拉伯语支持向后移植到它。
Silverlight 和 XNA 是在 Windows Phone 7.0 中制作应用程序的完全不同的方法。在 XNA 项目中不能使用任何代码 silverlight 代码,也不能在 WP7.0 的 silverlight 项目中共享 XNA 代码。Windows Phone 7.0 的程序员在选择之前必须知道每个的含义以及何时使用。silverlight 和 xna 的学习路径过于分离,以至于您可以学习其中一个而完全忽略另一个;事实上,大多数程序员只学到了两者中的一种。在实现大型应用程序之前,您必须在两者之间选择路径,因为没有回头路:即,无法在两者之间传递代码。
然而,从 Windows Phone Mango 开始,微软推出了 Silverlight/XNA。Silverlight/XNA 是 Windows phone Mango 的新应用模型。它允许在 Silverlight 应用程序中使用 XNA。将 XNA 游戏迁移到 Silverlight/XNA 不是一件容易的事,但会很有价值。
Silverlight 的 UI 控件为 Textblock 和 Drop list,布局为 Grid 和 stackpanel;所以很容易制作一个看起来像表单的应用程序,而 XNA 是面向游戏的,因为它是基于状态的编程。对于大多数开发人员来说,在 XNA 中实现一个下拉列表是非常困难的。
Silverlight app改名为windows phone app,以普及为起点,无需深思熟虑选择。
Silverlight 是 Windows 演示基础的精简版,删除了定义您自己的控件的能力。而适用于 windows phone 的 Silverlight 是一个更加精简的版本,删除了所有不适合移动设备的控件,并删除了大多数密码库。
这与微软将 Metro 风格的应用程序重命名为 Windows 8 应用程序,并将 Windows 应用程序重命名为 Windows 窗体应用程序的方式相同;然后 Windows 窗体和 WPF 后来被重命名为 Windows 桌面应用程序。