wpf - WPF XBAP 迁移选项
问题描述
我有一个复杂且非常大的 WPF XBAP 应用程序(对于基于 Web 的应用程序,以部分信任模式运行)。由于 Microsoft 将在 2020 年之前停止对 XBAP 的支持,我们正在寻找用其他东西替换/迁移 XBAP 应用程序而无需太多代码更改。
我们评估了以下选项,但没有一个看起来非常好:
- ClickOnce App - 最有前途,但我们更倾向于基于 Web 的解决方案。
- 用 Angular 重写代码 - 最后一个选项:是否有一个插件可以通过 Angular 与 C# 代码对话。此外,Angular 不允许在客户端上写入文件。
将不胜感激迁移 XBAP 应用程序的输入/经验。
谢谢,
RDV
解决方案
没有太多代码更改?
来自 wpf 的 Web 应用程序将彻底重写所有内容,直至您的数据层。也许其中一些也是如此。
Web 应用程序存在于浏览器沙箱中。您可以将任何旧脚本加载到网络浏览器中,该沙箱会阻止所有那些坏人对您做坏事,例如删除 C 盘的全部内容。
除了一些有限的例外。
他们可以将文件写入本地存储。有各种插件使开发人员更加友好。
你可以考虑cshtml。这可以将 xaml 转换为 html5。
我认为这并不是通过单击按钮 100% 覆盖所有 WPF 应用程序。在写下所有其他选项之前,我会阅读小字并仔细考虑。
为了从网页“与 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
明年这仍然是最前沿的东西。你仍然需要学习 razor CSS 和 JavaScript。
现在可用的是 Xamarin 表单。但是你必须安装这些。
比所有这些更明显的是只是一个常规安装的 wpf 应用程序。我会推荐这个作为第一个候选人。如果你已经解雇了它,那么再看看为什么。
也许你可以把它放在微软商店。
祝你好运。
推荐阅读
- python - bitbucket 上的 Dependencybot 或类似的免费工具
- reactjs - 需要用于反应应用程序的日历控件
- wpf - SVG 路径和 de Casteljau 的算法给出不同的结果 WPF
- python - 使用python比较另一个excel表中的值
- ios - 整个视图从左上角动画化
- javascript - 附加图像后正确调整contenteditable div的内容
- sql - 跨具有不同列别名的表的 Postgresql where 语句
- go - Go Telegram Bot API 从本地文件上传照片
- bash - awk 和shell 变量| 使用变化的变量
- r - 使用 SF 在栅格中聚合值