WPF XBAP迁移选项

时间:2019-05-09 20:32:08

标签: wpf xbap web-based

我有一个非常大的WPF XBAP应用程序(对于基于Web的应用程序,以部分信任模式运行)。由于Microsoft将于2020年停止对XBAP应用程序的支持,因此我们希望在不做太多代码更改的情况下,用其他东西替换/迁移XBAP应用程序。

我们已经评估了以下选项,但它们看起来都不是很好:

  1. ClickOnce应用程序-最有前途,但我们更倾向于Web 基于解决方案。
  2. 在Anugular中重写代码-最后一个选项: 是否有一个可以通过angular与C#代码对话的插件。也, Angular不允许在客户端上写入文件。

将感谢您在迁移XBAP应用程序方面的投入/经验。

谢谢

RDV

2 个答案:

答案 0 :(得分:1)

似乎最小的更改的唯一选择是桌面WPF应用程序。它是唯一使用兼容XAML的平台。现代应用程序不会像WPF一样将视图映射到视图模型,而xamarin则没有相同的功能集。

如果将其转换为Web API,则无需进行重大更改即可维护大多数业务逻辑。但是,webapi是无状态的,因此您将需要弄清楚如何管理状态。与坚持使用WPF相比,这已经是一个很大的变化,您仍然需要重新编写前端。

答案 1 :(得分:0)

没有太多代码更改吗?

wpf的Web应用程序将完全重写所有数据,直到您的数据层为止。也许还有一些。

Web应用程序位于浏览器沙箱中。您可以将任何旧脚本加载到Web浏览器中,并且沙箱可以阻止所有这些坏家伙对您造成不良影响,就像删除c驱动器的全部内容一样。

有一些例外情况。

他们可以将文件写入本地存储。有各种插件使开发人员更加友好。

您可以考虑使用cshtml。这样可以将xaml转换为html5。

http://www.cshtml5.com/

单击按钮,我发现这并不是所有WPF应用程序的100%覆盖率。在取消所有其他选项之前,我会仔细阅读小字并仔细考虑。

为了从网页上“与c#对话”,通常的方法是调用Web服务。

写入本地磁盘的一种方法是在客户端计算机上安装该服务。如果您能够做到这一点,那么最好不要使用网络应用。

该c#Web服务。

您的C#将是Web API。 Web api端点几乎只是Web应用程序控制器上的公共方法。

如果您的开发人员都是c#和xaml,那么您很可能会发现学习曲线很大,可以切换到任何基于javascript的语言。

Angular有很多要学习的东西。

在您可以选择的框架中,Angular是最“有意见的”。你适合它。您可能会发现像React这样的替代品更适合于此原因。

就客户端本身的c#而言,您的选择非常有限。 WebAssembly是非常新的东西。如果您的用户不使用IE,则Blazor可以选择该选项。 Blazor存在的问题是一项新兴技术,尚不准备编写某些企业应用程序。

https://dotnet.microsoft.com/apps/aspnet/web-apps/client

明年,这仍将是前沿技术。您仍然需要剃刀CSS和JavaScript。

现在可用的是Xamarin表单。但是您必须安装这些。

比所有这些更为明显的是普通安装的wpf应用。我会推荐这个为第一候选人。如果您已将其撤消,请再看看原因。

也许您可以将其放在Microsoft商店中。

祝你好运。