我有一个非常大的WPF XBAP应用程序(对于基于Web的应用程序,以部分信任模式运行)。由于Microsoft将于2020年停止对XBAP应用程序的支持,因此我们希望在不做太多代码更改的情况下,用其他东西替换/迁移XBAP应用程序。
我们已经评估了以下选项,但它们看起来都不是很好:
将感谢您在迁移XBAP应用程序方面的投入/经验。
谢谢
RDV
答案 0 :(得分:1)
似乎最小的更改的唯一选择是桌面WPF应用程序。它是唯一使用兼容XAML的平台。现代应用程序不会像WPF一样将视图映射到视图模型,而xamarin则没有相同的功能集。
如果将其转换为Web API,则无需进行重大更改即可维护大多数业务逻辑。但是,webapi是无状态的,因此您将需要弄清楚如何管理状态。与坚持使用WPF相比,这已经是一个很大的变化,您仍然需要重新编写前端。
答案 1 :(得分:0)
没有太多代码更改吗?
wpf的Web应用程序将完全重写所有数据,直到您的数据层为止。也许还有一些。
Web应用程序位于浏览器沙箱中。您可以将任何旧脚本加载到Web浏览器中,并且沙箱可以阻止所有这些坏家伙对您造成不良影响,就像删除c驱动器的全部内容一样。
有一些例外情况。
他们可以将文件写入本地存储。有各种插件使开发人员更加友好。
您可以考虑使用cshtml。这样可以将xaml转换为html5。
单击按钮,我发现这并不是所有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商店中。
祝你好运。