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

C# 在Web浏览器中运行WinForms应用程序,c#,wpf,web,visual-web-gui,C#,Wpf,Web,Visual Web Gui,我有一个win form应用程序,我正在尝试在web浏览器中运行它,我在web中搜索并找到了一些链接: 我尝试了以下链接: ,这很好,但问题是最终用户必须安装dotnetframework才能运行应用程序 我在这里找到了另一个链接,是关于VisualDevelopmentFramework的 有人有过使用WebGui的经验吗?winforms不是web。网络就是网络 Web意味着HTML+一些东西(通常是JavaScript、CSS,可能还有jQuery之类的东西) 1-如果您需要一个web应用

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

我尝试了以下链接: ,这很好,但问题是最终用户必须安装
dotnetframework
才能运行应用程序

我在这里找到了另一个链接,是关于VisualDevelopmentFramework的


有人有过使用WebGui的经验吗?

winforms不是web。网络就是网络

Web意味着HTML+一些东西(通常是JavaScript、CSS,可能还有jQuery之类的东西)

1-如果您需要一个web应用程序,并且希望使用.Net进行此操作,请创建一个ASP.Net应用程序

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

3-如果需要Windows 8“Metro”样式的应用程序(也称为Windows应用商店应用程序),请创建WinRT XAML应用程序

4-winforms是完全无用的。算了吧

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

winforms应用程序永远不会是web应用程序,不管您如何使其在web浏览器中运行

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

编辑:

如果您的做法是正确的(即保持关注点的分离,将应用程序逻辑放在控制器或视图模型中,而不是大多数winforms开发人员通常习惯的可怕的代码背后),那么重用应用程序逻辑并创建新的应用程序应该不会那么困难(网络或其他)同时保持数据访问和业务逻辑层的完整性。

好的,Visual WebGui是ASP.NET上的web。它的开发体验与使用集成到Visual Studio中的Visual WebGui设计器的Windows窗体的开发体验相同/相似。您在后台编写代码的方式与在Windows窗体和WebGui运行时转换上相同rms将其转换为HTML5/CSS/JS


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

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

我用它来创建用于测试的简单应用程序,这里有几个注意事项。首先,创建一个“漂亮的”网站,您需要重新考虑Winforms布局,使其像web一样,具有标题、边栏等。这是一个不同的范例,用户希望网站上有某些东西。好消息是,这种调整通常可以通过简单地操纵控件来完成;即面板控件可以成为边栏或标题的容器。您可以n还创建“主题”,类似于控件修改外观的外观

另一个需要考虑的问题是,在web环境中,弹出对话框等事件的行为不同。在Winforms中,程序执行会暂停,直到用户单击“确定”按钮在VisualWebGUI中,所有的执行都发生在服务器端;因此,程序执行将在不等待用户输入的情况下继续。这可以通过创建表单来处理。不过,关闭弹出框的处理程序。但是需要记住这些不同之处


你也必须考虑对象布局异常。Visual WebGui通常擅长模仿WiFrsWYSIWYG好处:对象通常在网页上显示得非常接近你把它们放在环境中的位置。但情况并非总是如此;你需要玩弄对象填充、边距等。有时得到正确的布局。但这通常比用CSS或div对象单调地改变间距要容易得多。

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

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

Thinfinity VirtualUI允许您通过向C#应用程序中添加一小行代码来实现这一点,以便随后可以访问它通过支持HTML的浏览器对任何操作系统和设备进行操作


我确实知道这一点!我只是想问一下有没有使用WebGui的经验?@Irsog我不知道这是什么,也不在乎。如果我需要web,我就去web,否则就去WPF。没有理由使用过时的winforms。我有一个winform应用程序。我可以使用WPF浏览器应用程序作为hostelement运行i,这很好,但用户必须安装.net,所以我没有没有足够的时间来编写相同的web应用程序,我看到WebGui表单设计与winform应用程序相同,我需要知道我是否可以不经修改就将表单复制到WebGui应用程序。我的代码大部分与视图分离,最后我必须为web等创建一个UI…+1,因为没有方便的方法:)只是好奇——为什么这个答案没有直接回答问题,而下面的答案是w