2011-08-15 69 views
0

所以我寫了一個3層GIS(地理信息系統)系統。 但查看器應用程序是一個完整的C#二進制,而不是網頁ORM和推送遠程exe應用程序的通知

,所以我需要將大量的對象/數據從中檔到應用 我想知道如何待辦事項這個

查看器:C#二進制
後端:對文檔
中檔的SQL數據庫+文件系統:C#/ NHibernate的ORM/messagingserver /的jobscheduler

所以通常是中檔會產生觀衆網頁/瀏覽器
的middletier本身具有的colections它需要發送到 C#遠程二進制對象..我要如何做到這一點

而且更重要的是,我怎麼推從數據庫中更新/ notifactions到中檔再到 的C#應用​​程序???

感謝任何提示

回答

0

所以通常是中檔會爲觀衆/瀏覽器

網頁我想這個有點不同意。我會說midtier會生成可以被視圖消耗的數據。該視圖可以是ASP.NET WebForm,也可以是ASP.NET MVC剃鬚刀視圖,也可以是C#桌面應用程序中的WinForm。

如果你想要的數據的真正分離,並查看那麼你或許應該考慮讓你的系統,該系統可以通過一個網站/ Web應用程序或桌面客戶端/二進制例如消費web服務的後端

SQL數據庫+文件系統 - >業務邏輯/中等規模 - >查看(網絡/桌面/移動)

你的第一個視圖實現將是桌面C#二進制視圖。

更重要的是,我如何推動更新/ notifactions從數據庫到midtier,然後到C#應用程序?在此基礎上

我假設你想要的C#應用​​程序,即時接收更新和,雖然您的應用程序是不是一個Web應用程序(HTML/JS等),它實際上是一個網絡客戶端。

這樣的通知往往通過幾種方式實現。

  • HTTP查詢
  • HTTP長輪詢
  • HTTP流
  • 的WebSockets

後者現在是一個客戶端之間的實時雙向全雙工通信標準和一臺服務器。但是,如果更新頻率爲非常低低,那麼您可以簡單地實現一個Web服務,您的C#客戶端可以長時間輪詢以檢查更新。

如果更新頻率是合理的,和你的推送通知要求,建議是,那麼我建議實時推送系統,因此我建議使用的WebSocket服務器和客戶端。有許多的WebSocket的服務器和客戶端的例子,例如可作爲:

如果你寧願刪除需要實施和舉辦自己的實時消息基礎架構,那麼你可以考慮hosted realtime service

+0

忽略上面的評論,我得到了一個編輯超時... 假設我有全雙工無限溝通 假設的微小變化發生約一個一分鐘 NHibernate的讓我在中間層一個Customer類(映射到db當然) 是否有一個實時推送框架來將此對象透明地映射到c#查看器? –

+0

聽起來像你想要的東西像[backbone.js](http://documentcloud.github.com/backbone/)或[knockout.js](http://knockoutjs.com/),但對於C#。您可能需要C#應用程序中的一層,該層本身位於傳輸機制(WebSocket/Comet框架)之上,並管理創建,讀取,更新和刪除事件。 [用WinForms實現MVC](http://stackoverflow.com/questions/654722/implementing-mvc-with-windows-forms)問題可能是一個很好的起點? (p.s.你可以刪除舊評論) – leggetter