我正在嘗試將簡單的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