繁体   English   中英

我有一个C#Windows窗体应用程序。我可以在网上部署它,以便用户可以通过网络访问吗?

[英]I have a C# Windows Forms application. Can I deploy it on web, so that users can access through web?

我们使用C#(.NET 2.0,Visual Studio 2005)完成了基于Windows的应用程序。 现在重做这个基于Web的应用程序,是一个耗费时间和资源的过程,对我来说几乎是不可能的。

我们需要托管这个,以便用户可以通过Internet访问。

通过RDP用户可以访问Windows应用程序,但这里的问题是更多的用户无法同时操作。

它可以作为Web应用程序托管,以便用户可以通过浏览器访问它吗?

不,您不能像在网站上那样直接通过网络提供,Windows Forms应用程序直接在客户端计算机上运行。

您可以做的是将其打包为MSI安装程序,以便最终用户可以轻松安装它,然后通过Internet访问资源(如数据库)(公开这些资源的最简单方法是作为Web服务)。 如果您选择使用此机制,那么您只需重构部分应用程序,假设您已将其很好地构建到n层应用程序中。

请注意,用户不必通过Internet访问这些资源 - 您提到使用RDP的用户会建议您将其置于Intranet上,这意味着您可以“托管”诸如数据库之类的服务所有客户端都可以通过网络查看(和访问)的计算机。 在这种情况下,可能需要的是更改您可能位于应用程序配置文件中的任何连接字符串或路径。

您至少可以使用ClickOnce 通过 Web部署它

ClickOnce部署使您可以将基于Windows的应用程序发布到Web服务器或网络文件共享,以简化安装。 Visual Studio为发布和更新使用ClickOnce技术部署的应用程序提供全面支持。

http://msdn.microsoft.com/en-us/library/t71a733d(v=VS.90).aspx

你可以使用点击一次通过网络部署你的应用程序,并通过它支持更新,但我不知道如何将winform应用程序转换为基于Web的应用程序,我真的怀疑是否有人考虑到基础架构之间的变化两个平台。

我建议投入一些时间并修改架构以采用SOA

您应该重新构建代码并创建一个向客户端公开方法的Web服务 这些方法将从客户端获取输入,执行操作并将数据返回以显示给UI。 您可以从现有解决方案中选择核心业务逻辑类,并按原样重用它们。 将表示逻辑与业务逻辑分离可能需要付出一些努力,但这非常值得付出努力。

托管Web服务后,您可以将其与桌面应用程序或Web应用程序一起使用。 当然,您需要为Web应用程序编写UI代码,但它比从头开始编写它要简单得多。

如果您在Windows中使用数据库应用程序,那么您可以做一件事。 您可以在服务器上部署数据库,但是您希望在ASP.NET中为它设计一个前端应用程序,以便您可以在安装应用程序的计算机上使用Windows应用程序,而所有其他人也可以访问它通过网络。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM