簡體   English   中英

.net Winform和Webform之間的通信

[英]Communication between .net winform and webform

我需要使一個Web窗體與Winform通信並返回到該Web窗體。 原因是它已經存在一個已經制作的Webform軟件,現在需要僅可用於Winforms的.net組件的行為。 我們嘗試使用Process.Start和shell.execute,但是使用這種方法,軟件會掛起,或者響應時間太長。 還需要從網絡中的客戶端PC調用Webform,我認為這又增加了另一個問題,因為不可能從WebForm遠程調用文件的執行,但是我對該技術問題知之甚少

我們已經閱讀了一些有關將winform嵌入Web表單,將數據從Winform發送到Web表單等的文章,並且我們想知道處理這種情況的推薦方法(如果有)。

如果您有權訪問WinForms應用程序的源代碼,那么最好的方法是從那里提取所需的代碼,並將其直接合並到WebForms應用程序中。

如果WinForms和WebForms應用程序都需要使用此代碼,則應將兩者共享的代碼重構為一個單獨的類庫(DLL),然后由兩個應用程序使用。

如果您只有Windows應用程序的EXE,並且它是.Net應用程序,則可以使用Reflection創建並使用在那里定義的對象。

如果不是.Net EXE,請再見,感謝所有的魚(除非是COM,在這種情況下,再見,感謝所有的魚)。

更新:我從未嘗試過,並且推薦這樣 ,但是我假設您基本上希望能夠在Web應用程序中使用基於Windows窗體的可視組件(即,您希望此內容顯示在他們的瀏覽器)。

您可以將原始WinForms項目中的每個Form重建為一個ActiveX控件,然后將其放置在網頁上。 此鏈接描述了如何在.Net中創建基本的ActiveX控件:

http://www.codeproject.com/KB/cs/CreateActiveXDotNet.aspx

最近,我不知道瀏覽器是否支持ActiveX控件(我知道仍然有一些支持),並且這種方法在非Windows操作系統上肯定行不通。 此外,您還必須處理在每台客戶端計算機上部署和安裝可視組件的問題(並且您需要檢查許可協議才能獲得此控件-幾乎可以肯定,它將特別禁止這種類型的使用)。

從理論上講,這是可行的。 ActiveX控件可以或多或少地執行或使用常規Form可以執行的任何操作(取決於權限等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM