我有一个Win窗体应用程序,想在Web浏览器中运行它,我在网上搜了一些链接:
我尝试了这个链接:使用WPF将.NET WinForms应用程序嵌入到Internet浏览器中,这个链接可以工作正常,但问题是最终用户必须安装dot net framework
才能运行该应用程序。
我在这里找到了另一个链接,用于在Web浏览器内运行WinForms应用程序,使用Visual WebGui开发框架。
有没有人使用过WebGui?
我有一个Win窗体应用程序,想在Web浏览器中运行它,我在网上搜了一些链接:
我尝试了这个链接:使用WPF将.NET WinForms应用程序嵌入到Internet浏览器中,这个链接可以工作正常,但问题是最终用户必须安装dot net framework
才能运行该应用程序。
我在这里找到了另一个链接,用于在Web浏览器内运行WinForms应用程序,使用Visual WebGui开发框架。
有没有人使用过WebGui?
Visual WebGui是基于ASP.NET的Web开发框架。使用内置于Visual Studio中的Visual WebGui设计器,其开发体验与Windows Forms相同/类似。您可以像在Windows Forms上一样编写代码,并且WebGui运行时会将其转换为HTML5 / CSS / JS。
将您的Windows Forms应用程序转换为Visual WebGui Web应用程序所需的工作量取决于您的Windows Forms应用程序使用的第三方/.NET组件。 Visual WebGui API与Windows Forms非常相似,因此在某些情况下,您可以添加对WebGui特定程序集的几个引用,然后对一些名称空间进行搜索/替换。当然,由于这是两个不同的平台,存在一些差异,但开发体验与Windows Forms相当相似。
WinForms不是Web。Web就是Web。
Web指的是HTML + 其他东西(通常是JavaScript、CSS,可能还有jQuery或类似的东西)。
1 - 如果你需要一个Web应用程序,并想使用.Net来完成,创建一个ASP.Net应用程序。
2 - 如果你需要一个Windows应用程序(桌面),创建一个WPF应用程序。
3 - 如果你需要一个Windows 8“Metro”风格的应用程序(也称为Windows Store应用程序),创建一个WinRT XAML应用程序。
4 - WinForms完全没有用处。忘记它吧。
如果你的客户不想安装任何版本的.Net Framework,你唯一的选择就是#1。
无论你如何修改使其在Web浏览器中运行,WinForms应用程序永远不会成为Web应用程序。
XBAP(WPF浏览器应用程序)也不是Web应用程序。它只是一个没有自己窗口的常规WPF客户端应用程序。
编辑:
如果你以正确的方式进行操作(即保持关注点分离并将应用程序逻辑放在控制器或视图模型中,而不是大多数WinForms开发人员通常使用的可怕的代码后台实践),那么重用应用程序逻辑并创建一个新的应用程序(Web或其他)应该不难,同时保持数据访问和业务逻辑层完整。
我认为这个问题与这个问题非常相似:
在.NET中是否有可能将WinForm转换为WebForm?
如前所述,唯一的运行应用程序“原样”在浏览器内的方法是通过使用某些ActiveX控件,这将需要IE + .NET Framework。 有一些工具可以用来自动迁移应用程序到Web,但总会涉及一些手动工作,并且它不会像从头开始构建Web应用程序那样。
我曾经使用过VWG,但现在它不再是一个选项了。这里没有提到的一个选择是WiseJ,这是一个专有框架,仍在2022年得到积极开发和支持。将WinForms应用程序转换为WiseJ或像使用WinForms一样开始使用WiseJ都相当简单。
它们的网站链接在这里:https://wisej.com
https://www.cybelesoft.com/thinfinity/virtualui/web-integration-for-windows-apps/