13

我有一个 win 表单应用程序,我正在尝试在网络浏览器中运行它,我在网络上翻找并找到了一些链接:

我试过这个链接:Embedding a .NET WinForms Application in an Internet Browser Using WPF ,这工作正常,但问题是最终用户必须安装dot net frame work才能运行应用程序。

我在这里找到了另一个链接,用于在 Web 浏览器中运行 WinForms 应用程序,使用 Visual WebGui开发框架。

有没有人有任何使用 WebGui 的经验?

4

5 回答 5

11

嗯,Visual WebGui基于ASP.NET 的网络。它的开发体验与使用集成到 Visual Studio 中的 Visual WebGui 设计器的 Windows 窗体的开发体验相同/相似。您在后面的代码与在 Windows 窗体上的代码相同,WebGui 运行时将其转换为 HTML5/CSS/JS。

将 Windows 窗体应用程序转换为等效的 Visual WebGui Web 应用程序所需的工作将取决于 Windows 窗体应用程序中使用的(第 3 方/.NET)组件。Visual WebGui API 与 Windows 窗体的 API 非常相似,因此在某些情况下,您可以添加一些对 WebGui 特定程序集的引用,然后对几个命名空间进行搜索/替换。当然有一些不同,因为这是两个不同的平台,但开发体验与 Windows Forms 非常相似。

于 2013-07-24T12:46:36.457 回答
0

winforms 不是网页版。网络就是网络。

Web 意味着 HTML + 一些东西(通常是 JavaScript、CSS 和可能的 jQuery 等)。

1 - 如果您需要一个 Web 应用程序,并且想使用 .Net 来实现,请创建一个 ASP.Net 应用程序。

2 - 如果您需要 Windows 应用程序(桌面),请创建 WPF 应用程序。

3 - 如果您需要 Windows 8“Metro”风格的应用程序(又名 Windows Store App),请创建一个 WinRT XAML 应用程序。

4 - winforms 完全没用。忘记那个。

如果您的客户不想安装任何版本的 .Net Framework,您唯一的选择是 #1。

Winforms 应用程序永远不会是 Web 应用程序,无论您为使其在 Web 浏览器中运行而进行的任何黑客攻击。

XBAP(WPF 浏览器应用程序)也不是 Web 应用程序。它只是一个没有自己的窗口的常规 WPF 客户端应用程序。

编辑:

如果您以正确的方式做事(即保持关注点分离并将应用程序逻辑放在控制器或 ViewModel 中,而不是大多数 Winform 开发人员通常习惯的做法背后的可怕代码),那么重用您的应用程序逻辑应该不难并创建一个新的应用程序(Web 或其他),同时保持数据访问和业务逻辑层不变。

于 2013-07-18T19:37:53.893 回答
0

在我对Visual WebGui的有限经验中,这是一项非常酷的技术。简单来说,据我了解,您可以使用 Windows Forms 开发 IDE 创建一个符合 HTML5 的 ASP.NET 客户端/服务器 Web应用程序……而不仅仅是一个网站或页面,外观和感觉非常像Windows 窗体桌面应用程序。它通过将 Winforms 控件转换为客户端的 jquery 代码来实现这一点,并将大部分可执行代码存储在服务器端。

我用它来创建用于测试目的的简单应用程序,并且有一些注意事项。首先,要创建一个“漂亮”的网站,您需要重新考虑 Winforms 的布局,使其像 web 一样,带有标题、侧边栏等。这是一种不同的范式,用户期望网站上有某些东西。好消息是,这种调整通常可以通过简单的控制来完成。即面板控件可以成为侧边栏或标题的容器。您还可以创建“主题”,它们就像控件的皮肤以修改外观。

另一个考虑因素是弹出对话框之类的事件在 Web 环境中的行为不同。在 Winforms 中,程序执行会暂停,直到用户单击“确定”按钮或其他东西。在 Visual WebGui 中,所有的执行都发生在服务器端;因此,程序将继续执行而无需等待用户输入。这可以通过为弹出框创建一个 Form.Close 处理程序来处理。但需要牢记这些差异。

您还必须考虑对象布局异常。Visual WebGui 在模仿 Winforms WYSIWYG 的好处方面做得很好:对象通常在网页上与您在环境中放置它们的位置非常接近。但情况并非总是如此。您有时需要使用对象填充、边距等来获得正确的布局。尽管如此,它通常比使用 CSS 或 div 对象繁琐地更改间距要容易得多。

于 2014-08-11T15:48:57.800 回答
0

我认为这个问题与这个问题非常相似:

是否可以在 .NET 中将 WinForm 转换为 WebForm?

如前所述,在浏览器中“按原样”运行应用程序的唯一方法是使用一些 activex 控件,这需要 IE + .NET Framework。您可以使用一些工具将应用程序自动迁移到 Web,但总会涉及一些手动工作,这与从头开始将应用程序构建为 Web 应用程序不同。

于 2015-03-19T17:51:59.287 回答
0

Thinfinity VirtualUI 允许您通过向 C# 应用程序添加一小行代码来实现此目的,这样就可以通过支持 HTML 的浏览器从任何操作系统和设备访问它。

https://www.cybelesoft.com/thinfinity/virtualui/web-integration-for-windows-apps/

于 2021-03-30T03:37:13.530 回答