在Web浏览器中运行WinForms应用程序

时间:2013-07-18 18:58:13

标签: c# wpf web visual-web-gui

我有一个win form应用程序,我正在尝试在Web浏览器中运行它,我通过网络搜索并找到了一些链接:

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

我在running a WinForms Application Inside Web Browser找到了另一个链接,其中包含Visual WebGui开发框架。

有没有人有过WebGui的经验?

5 个答案:

答案 0 :(得分:11)

嗯,Visual WebGui 是基于ASP.NET的 web。它的开发经验与使用集成到Visual Studio中的Visual WebGui设计器的Windows窗体相同/相似。您可以像在Windows窗体上一样执行代码,WebGui运行时将其转换为HTML5 / CSS / JS。

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

答案 1 :(得分:1)

winforms不是网络。网络就是网络。

Web意味着HTML +(通常是JavaScript,CSS,可能还有jQuery等)。

1 - 如果您需要Web应用程序,并希望使用.Net,请创建一个ASP.Net应用程序。

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

3 - 如果您需要Windows 8“Metro”样式应用程序(a.k.a Windows应用商店应用),请创建WinRT XAML应用程序。

4 - winforms完全没用。算了。

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

winforms应用程序永远不会是一个Web应用程序,无论您如何使其在Web浏览器中运行。

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

修改

如果您采用正确方式(即保持关注点分离并将应用程序逻辑放在Controllers或ViewModels中,而不是大多数winforms开发人员习惯的实践背后的可怕代码),在保持数据访问和业务逻辑层完整的同时,重用应用程序逻辑并创建新应用程序(Web或其他)应该不难。

答案 2 :(得分:0)

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

我已经用它来创建用于测试目的的简单应用程序,并且有一些注意事项。首先,要创建一个“漂亮”的网站,您需要重新思考Winforms布局,使其像网页一样,包含标题,侧边栏等。这是一个不同的范例,用户期望网站上有某些东西。好消息是,通过简单地操纵控件,这种调整通常可以很容易地完成。即Panel控件可以成为侧边栏或标题的容器。您还可以创建“主题”,就像控件的外观一样,可以修改外观。

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

您还必须考虑对象布局异常。 Visual WebGui通常可以很好地模仿Winforms WYSIWYG的好处:对象通常在网页上非常接近您将它们放置在环境中的位置。但情况并非总是如此;你需要玩弄对象填充,边距等,以便获得正确的布局。仍然通常比使用CSS或div对象冗长地更改间距要容易得多。

答案 3 :(得分:0)

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

Is it possible to convert a WinForm to a WebForm in .NET?

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

答案 4 :(得分:0)

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

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