2011-08-15 13 views
0

私は3層GIS(geo info sys)システムを作成しています。 C#のバイナリ: しかしビューアアプリはだから私は、私がどのようにこのリモートEXEアプリケーションのORMとプッシュ通知

ビューアTODO疑問に思ってアプリケーション に中間層からのオブジェクト/大量のデータをプルする必要がある

フルC#のバイナリではなく、Webページで
バックエンド:ドキュメント
MIDTIERためのSQL DB +ファイルシステム:#/ NHibernateはORM/messagingserver/jobschedulerのC

ので、通常は中間層は、ビューア/ブラウザ用のWebページを生成します
、ミドルティア自体はのcolectionsを持っていますそれは C#のリモートバイナリに送信する必要があるオブジェクト...どのように私はこの

そして、もっと重要なのは、どのように私はC#のアプリを し、その後DBから中間層への更新/ notifactionsを押してくださいますか?任意のヒント

答えて

0

ため

おかげので、通常は中間層が、私はこれで少し反対するだろうビューア/ブラウザ

のためのWebページを生成します。私はミッドティアがビューによって消費されるデータを生成するだろうと言っています。ビューはASP.NET WebForm、ASP.NET MVCカミソリビュー、またはC#デスクトップアプリケーションのWinFormである可能性があります。

本当にデータとビューを分離するには、システムのバックエンドをウェブサイト/ Webアプリケーションまたはデスクトップクライアント/バイナリのいずれかで消費できるWebサービスにすることを検討するべきでしょう。

SQL DB +ファイルシステム - >ビジネスロジック/ミッドティア - >表示(ウェブ/デスクトップ/モバイル)

あなたの最初のビューの実装では、デスクトップC#バイナリビューになります。

さらに重要なのは、私はDBからミッドティアに、次にC#アプリにアップデート/ノーティフィクションをプッシュするのですか?これに基づき

私はあなたがC#アプリケーションが即座に更新を受信し、あなたのアプリがWebアプリケーション(HTML/JSなど)はありませんが、それは実際にはWebクライアントであることをしたいと仮定しています。

このような通知は、いくつかの点で達成される傾向があります。

  • HTTPポーリング
  • HTTPロングポーリング
  • HTTPストリーミング
  • WebSocketを

後者今クライアントとの間のリアルタイムの双方向全二重通信の標準であるとサーバー。しかし、更新の頻度がの場合、が低い場合、C#クライアントが長い間隔でポーリングして更新を確認できるWebサービスを実装するだけで済みます。

更新頻度が妥当で、プッシュ通知の要件が示唆されている場合は、リアルタイムプッシュシステムを提案しているため、WebSocketサーバーとクライアントを使用することをお勧めします。

自分で実装してホストする必要性を排除するにはリアルタイムのメッセージングインフラストラクチャであれば、hosted realtime serviceと考えることができます。

+0

、私は編集のタイムアウトを持って... iは、全二重無制限の通信 があると上記のコメントを無視する小さな変化が約1分 NHibernateはをマッピング(中間層でくれCustomerクラスを与える発生したと想定しdbもちろん) このオブジェクトを透過的にミラーリングするリアルタイムプッシュフレームワークはありますか? –

+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