アプリケーションの目的:
私が作成しているアプリケーションは多くのプロセスを担当しますが、現在、価格フィーダー、これらの価格を保存する方法、およびこれらの価格をクライアント アプリケーションに送信する機能 (概念実証として) を構築しています。これらの価格は、「Security Analytics」および「Security Price Log」と呼ばれるエンティティにマッピングされます。これら 2 つのエンティティは同じプロパティを持ちますが、ログには受け取った各価格の記録が保持され、分析では各証券の最新データが保持されます。
現在、これを完了するための最も効率的で安定した方法を決定しようとしています。これの要件/オブスタブルは次のとおりです。
- 価格は非常に頻繁に表示されます (毎秒複数の価格が表示されることがあります)
- クライアントはリアルタイム データを必要とします
- 価格は、入力されるたびにデータベースに永続化する必要があります
アーキテクチャ:
このアプリケーションは n 層アーキテクチャに適していると思います。含めることを考えているレイヤーは次のとおりです(これらの名前を付けてすみません):
- エンティティ層:モデルが構築される場所
- 「工場」:これには、私のフィード (約 10 個あります)、データを処理するためのロジック、エンティティへのデータの変換、およびクライアントへのデータの公開を可能にするものが含まれます。
- クライアント層:ファクトリにデータ コントラクトを公開して、クライアントがファクトリ内のリアルタイム データを使用できるようにしたいと考えています。私はいくつかの調査を行い、Pub-Sub デザイン パターンを使用して WCF Web サービスを通じてこれを完了します
したがって、そのすべての背景情報とここでのとりとめのない私の質問は次のとおりです。
- 実行時間の長いオブジェクト コンテキストを持つことの欠点は何ですか? (私はこれを行うべきではないことを読み続けましたが、誰も明確に理由を述べたり、私にとってうまくいく代替手段を提供したりしませんでした)
- 常に新しいコンテキストを作成している場合、以前のコンテキストに取り込んだデータは新しいコンテキストで利用できますか? クライアントにデータをプッシュして多くの新しい価格を処理しているときに、データベースから頻繁にデータをプルするのではないかと心配しています。
- 私は現在自己追跡エンティティを使用しており、このアプリケーションの正しい選択であると考えていますが、懸念や知恵があれば、それを提供していただければ幸いです。
- 最後に、「工場」を作成するのに最適なタイプのプロジェクトは何ですか? これは IIS サーバー上で実行され、すべてのデータ フィードを受け入れ、クライアントが (複数のフィードからの) 異なる複合データを受け入れるようにしたいと考えています。サービス コントラクトを簡単に取得できるため、WCF サービス アプリケーションに傾倒していますが、これが正しい選択であるかどうかはわかりません。
これに関してあなたが提供できるどんな助けも大歓迎です。また、これが長くなってしまったことをお詫びします。エンティティ フレームワークがどのように機能し、どこから始めるべきかについて、私はかなり迷っています。ありがとう!
編集:皆さん、ご回答ありがとうございます。今は別のことに取り掛かる必要がありますが、機会があれば今週中にレビューします。