【问题标题】:Is it possible to port a windows phone 7.0 silverlight class library to windows 10 mobile是否可以将 windows phone 7.0 silverlight 类库移植到 windows 10 mobile
【发布时间】:2015-07-13 12:43:45
【问题描述】:

我有一个为 windows phone 7.0 构建的 windows phone 类库(用 c# 编码)。是否可以将相同的类库移植到 windows 10 mobile sdk?或者,我是否需要从头开始编写整个类库来支持 windows 10 mobile。

【问题讨论】:

  • 您在库中使用了哪些 API? WP7 UI 组件/控件?
  • WP7 UI组件,进行http调用,XML解析,I/O操作等,,,
  • 您不需要从头开始重写它,但是移植代码可能会更耗时...

标签: silverlight windows-phone-8 windows-phone windows-phone-8.1 windows-10-mobile


【解决方案1】:

可以移植,但不能自动移植。

  • UI组件应该比较简单,只要不是很多 使用了第三方控件,例如用于 Windows Phone 的 Telerik。 第三方库需要已移植到 WinRT 平台 (或现在称为 UWP)也是如此,但情况并非总是如此。 大多数 XAML 都可以重复使用,但某些命名空间、事件和属性的命名方式不同(例如:Tap 变为 Tapped)。 由于缩放方法不同(Silverlight 将所有内容放大,因为它假装屏幕始终为 480 像素宽),因此某些布局可能需要重新设计。
  • HTTP 调用:这可能需要进行很多更改,具体取决于 关于它们是如何在您的 WP7 库中实现的。网络客户端不再 在 WinRT、HttpClient 中退出或创建自己的 HttpWebRequest 是 要走的路。由于 WP7 应用程序默认没有 async/await,我 建议重写这部分。
  • XML 解析:这应该是兼容的(可能是一些小的语法更改)
  • I/O 操作:可能发生了巨大的变化。 WP7 使用了已被替换的独立存储机制。使用 CameraCaptureTask 捕获图像,基本上所有传感器的使用都必须重写。
  • 不再支持本地数据库。如果您想在应用中使用数据库,请使用 Sqlite。
  • WinRT 中的应用程序生命周期也完全不同。后台堆栈中的页面不会自动缓存,并且页面中的许多事件的工作方式不同,或者可能不会与 Silverlight 应用程序中的事件同时发生

更多信息:Move from Windows Phone Silverlight to UWP

【讨论】:

    【解决方案2】:

    大部分 UI 元素已从 wp7.0 更改为 Windows10。它将不得不完全重写。这同样适用于 WP 7.0 API。


    如果你有可移植的库,那么问题应该会少很多

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多