从Windows窗体切换到Web窗体

时间:2010-03-03 15:48:42

标签: c# .net activex

我在.NET 3.5中创建了一个Windows Form可执行文件,它使用dll与扫描检查的计算机进行通信。我最终将需要从可执行文件转移到可以执行相同操作的Web窗体。这将是几个月后,但我想现在开始做研究,因为我之前没有这样做过。我将需要使用ActiveX才能通过Web窗体与设备进行通信。我以前也没有这样做过。

我想保留现有可执行文件的功能而不必重写大部分功能,尽管我知道其中一些需要重写。我已经完成了关于ActiveX的研究以及如何使用它,但我想知道是否有人有类似的情况。你做了什么来将exe转换为web程序?是否存在我所忽视的优秀,具体的资源,可以为我指出这种情况的正确方向?你有什么建议可以帮助我减少错误吗?我工作的公司以前没有其他任何人这样做过,所以我必须自己教所需的一切。

提前致谢。

4 个答案:

答案 0 :(得分:5)

这是关注点和n层设计的分离。希望您的UI层与您的域模型松散耦合。如果是这种情况,您可以为Web编写第二个IU层。而且根本不必更改您的域模型。然后你可以编译每个场景。

*注意 - 在实际使用中,我总是不得不扩展我的业务领域以解决第二个UI的一些问题,但这些修改通常很小,并且指出了我过于紧密耦合的地方。< / p>


您可以考虑的另一个选项是在您的业务域代码上创建Web服务层。然后编写一个Web应用程序,通过这些Web服务调用与您的域模型进行通信。这可能会影响性能,并不是我实现此目标的首选方法。如果您没有精心设计的应用程序,可能会发现它更容易管理。

答案 1 :(得分:1)

“我想保留现有可执行文件的功能,而不必重写大部分内容”

通常,如果您将尽可能多的逻辑提取到其自己的程序集/ dll中,则可以从所需的任何UI框架中重用该逻辑。只要确保你没有在那里做任何特定的UI(抛出对话框等)。

答案 2 :(得分:0)

通常情况下,将winforms转换为webforms是很有可能的,尽管通常是一个缓慢的开发过程。即使您拥有世界上最干净的域层,每次丢失网页中的对象这一事实意味着Web域层通常与桌面域层的编写方式大不相同。

但是,在您的情况下,设备 - 服务器通信将变得更加困难。

你看过xbap吗?它基本上是一种将WPF应用程序部署到网页中的方法。它要求您的客户安装正确版本的.NET,但这对您来说是最简单的路径,特别是考虑到您可以在WPF中托管winforms ...

答案 3 :(得分:0)

您可以查看Silverlight 4,

http://silverlight.net/getstarted/silverlight-4-beta/

它包含ASP.NET Web Forms尚未提供的许多功能。

如果您的团队可以接受类似ActiveX的内容,为什么不使用Silverlight 4?唯一的缺点是SL4仍处于测试阶段。