C# Silverlight到WINRT或Silverlight到Universal

C# Silverlight到WINRT或Silverlight到Universal,c#,windows,windows-phone-8.1,win-universal-app,windows-10,C#,Windows,Windows Phone 8.1,Win Universal App,Windows 10,我有一个Windows Phone 8.1 Silverlight应用程序,现在正在商店中。由于我看到微软将所有注意力都转移到WINRT和Universal应用上,我怀疑Windows10中对Silverlight应用的支持将是有限的或没有的 将来可能会有一个平板电脑项目,我可能会为同一个项目推出。因此,我进退两难,无法将解决方案中的Silverlight项目转换为WINRT或转换为通用应用程序。此外,我听说转换为通用项目也相当困难。我知道大部分工作将是将UI移植到集线器样式的UI 有什么想法吗

我有一个Windows Phone 8.1 Silverlight应用程序,现在正在商店中。由于我看到微软将所有注意力都转移到WINRT和Universal应用上,我怀疑Windows10中对Silverlight应用的支持将是有限的或没有的

将来可能会有一个平板电脑项目,我可能会为同一个项目推出。因此,我进退两难,无法将解决方案中的Silverlight项目转换为WINRT或转换为通用应用程序。此外,我听说转换为通用项目也相当困难。我知道大部分工作将是将UI移植到集线器样式的UI


有什么想法吗?这里是对最佳方法的评论

WinRT应用程序是仅限Windows的应用程序(不适用于手机)。除此之外,WinRT和Universal应用程序非常相似。它们具有相同的名称空间、类、控件。。。几乎所有的东西。您可以在通用应用程序中使用许多WinRT库,而不会出现任何问题。因此,移植到它们通常也是一样的

无论如何,Windows应用商店和Windows Phone应用程序通常需要不同的UI,因此无论您做什么,您都必须使用不同的UI

一个区别是WinRT应用程序可以在Windows 8.0及以上版本上运行,而通用应用程序需要Windows 8.1(或适用于手机的WP 8.1)。实际上,Windows 8.1应用程序是一个通用应用程序。就像Windows Phone 8.1应用程序(不是Silverlight变体)一样,它也是一个通用应用程序

我建议移植到一个通用的应用程序,因为你会习惯于使用这些应用程序,而且它们可以在两种平台(Windows和Phone)上工作。对于任何未来的项目,这是一条路要走


在我工作的公司,几个月前我们转向了通用应用。弄清楚我们将在这两个平台上使用什么UI以及如何正确操作,以及移植我们现有的库确实需要一些时间(不会太多),但现在制作一个新的应用程序并支持这两个平台非常容易。因此,对我来说,这是一条路。

微软不太可能停止在Windows10手机版本中支持Silverlight应用程序。即使是WP8.1仍然支持WP7.0时代的XNA游戏

根据您在库中使用的API,从Silverlight转换到WinRT时的大部分更改将在UI端进行,例如,如果您的Silverlight应用程序已经使用了LocalStorage API而不是不需要更改的IsolatedStorage API

我的建议如下:

  • 评估您需要的所有功能是否在通用应用程序中受支持(某些功能目前仅在Silverlight应用程序中可用)
  • 评估您使用的实际API是在通用应用程序中受支持还是需要更换(IsolatedStorage=>LocalStorage等)

有了这些知识,我想你将能够更好地计划何时将你的应用程序移植到新的API。如果将来可能会有平板电脑版本,并且通用应用程序模型支持所有必需的API,那么尽早移植可能比以后移植需要更少的工作量。

谢谢Yasen。我的错,我应该更精确一点。当我说WINRT时,我指的是项目的类型,而不是平台的类型(电话、平板电脑)。我在解决方案中有很多本地项目。因此,如果我需要将整个解决方案移植到universal app,那就有点太多了。你不这么认为吗?@golldy你是说Windows运行时组件项目类型吗?还是别的什么?另外,“本机”项目是Silverlight项目吗?我正在与Silverlight项目一起使用的本机项目。无论如何,我想将这些项目移植到通用项目是一个不错的选择。@golldy手机没有单独的通用和WinRT项目类型。通用应用程序有三个子项目-一个Windows 8.1项目、一个Windows Phone(WinRT)项目和一个包含共享文件的项目,这两个项目都被认为是共享文件。因此,当您创建WP 8.1应用程序(而不是SL)时,它与通用项目的Windows Phone部分完全相同。所以,当我说通用应用时,我并不是说它必须在两个平台上运行。我只是指新的通用框架。谢谢Yasen。这对我来说很有意义:)