2012-04-07 50 views
0

我正在開發一個大型項目(團隊正在單獨工作),現在大部分應用已完成,我們需要將所有內容集成到一起。很多應用程序/表單需要將信息傳遞給其他應用程序/表單或向其他人請求信息;我想知道是否有這樣做的標準方法。我們計劃這樣做的方式是通過使用共享文件(例如,一個應用程序將信息寫入文件,另一個應用程序讀取它)。有什麼建議麼?大型項目中的WinForms應用之間的通信

+0

很大程度上取決於你要共享的內容,以及何時。你能添加一些上下文嗎?粗略地描述您的各種應用程序參與的工作流程將會有所幫助 - 以及這些應用程序是否共同駐留在同一個框中,構成分佈式應用程序的一部分等。 – 2012-04-07 20:08:22

+1

我將使用中央數據庫進行通信。 – 2012-04-07 20:13:34

+0

@ValAkkapeddi這是一個語言學習應用程序(客戶端 - 服務器)。這是一個快速的場景:教師登錄(帳戶mgmt應用程序) - >教師創建/編輯/ ...測驗或測試,成績完成exos等等(測試創建應用程序)。後者應用程序需要教師的憑據才能工作。 – saadtaame 2012-04-07 20:15:05

回答

0

至於你的問題,我認爲使用文件共享解決方案有一個明顯的缺點,那就是由於IO操作導致的操作延遲。

此外,還有其他的選擇,請參閱以下內容:

要全面落實你的要求,你應該獨立的應用程序和應用程序中的形式之間的通信之間的通信。

要實現應用程序之間的通信,我建議您使用WCF使用訂閱者/發佈者模式。實施非常簡單。你可以谷歌它。一個例子是here。通過這樣做,您可以準確控制什麼時候發生,並且其他應用程序應該按照您的預期重新執行。

要在應用程序中的表單之間實現通信,最好使用Pub/Sub模式創建事件聚合器,然後將其注入到應用程序中。你可以看看它在SCSF中的實現方式。

1

是的,正如@Uwe Keim在評論中所說的,你應該明確地使用數據庫來處理所有事情。儘管如此,SO答案不是開始教你關於關係數據庫以及如何從C#應用程序中正確使用它們的地方。你應該告訴管理團隊的人員要走的路,並讓他們找出應該由誰來解決這個問題。

0

另一種解決方案是實現消息協議以使應用程序相互通信。 爲了避免瓶頸,message queue服務可以管理消息交換。

參考文獻: