我正在尝试将简单的WinForms应用程序迁移到ASP.Net Web应用程序。 WinForms应用程序基本上只是复杂的普通C应用程序的表示层,并通过COM互操作与旧代码进行交互。我在ASP.Net,javascript,jQuery以及WinForms和interop方面拥有丰富的经验,所以我知道基础知识,我只需要做出设计决定。Web应用程序到遗留代码互操作
应用程序看起来现在的方式是这样的:
有一堆遗留的C(甚至不是C++)代码可以改变和重新编译的,但是移植是不是一种选择。这是业务+数据层,称之为你想要的。我将其称为传统代码。
在启动时,遗留代码实例化,其用于呈现和用户交互COM服务器。演示数据被串行化,发送到这个COM对象(“我送你一些输出。”),并通过循环轮询实现用户交互(“你对我有一些输入?”)。不是最漂亮的解决方案,而是像地狱一样简单。
COM对象实际上是一个.NET 2.0 WinForms应用程序暴露为COM。此应用程序还通过.NET Remoting向其他.NET应用程序公开了一些功能,但这并不重要。
虽然系统相当复杂,但WinForms应用程序确实只用于交互,所以很容易切换到网页。我不确定什么是最好的方式来做网页服务器< --->遗留代码交互。
我想起来的第一件事(因为我已经实现了.NET Remoting)是通过本地.NET Remoting向Web部件公开WinForms功能,使其充当行为代码与旧代码之间的某种代理和网络应用程序。我实际上只需要沟通部分,没有形式。在这种情况下,Web应用程序必须通过.NET Remoting(本地)访问此功能。
它是明智的,有Web应用程序进行本地通信使用.NET远程另一个应用程序?另外,我可以将应用程序更改为Windows服务,但是我仍然可以通过COM将其功能公开给遗留代码吗?
什么是更好的方法来实现这一目标?请注意,如果需要,我也可以对遗留代码进行一些修改。
谢谢您的答复。我没有使用组件服务的经验,所以我会先检查一下。 – Groo 2009-12-06 14:34:15