4

次のようなさまざまなコンポーネント/レイヤーを備えた ASP.NET MVC 3 Web アプリケーションがあります。

  1. ウェブ
  2. サービス (キャッシュ、外部 API、クラウド サービスなど)
  3. コア (ドメイン ロジック、POCO など)
  4. リポジトリ (エンティティ フレームワーク)

今、私が自分のウェブサイトで何かをするとき (たとえば、フォームを送信する、別名 POST) - 最悪の場合、すべてのレイヤーに通知する必要があるかもしれません。

これで、このすべてのロジックをコントローラーの HTTP POST アクションに組み込むことができましたが、ロジックが非常に重くなります。

パブリッシャー-サブスクライバー パターン (AOP) の使用に手を出しましたが、まだ非常に優れた .NET 実装を見つけていません。また、これは Web アプリケーションの適切な方法ではないと言う人もいます。

誰でもここでアドバイスをもらえますか、または次のようなコードで立ち往生していますか?

[HttpPost]
public ActionResult Do(Something model)
{
    _repository.Save(model); // this should be the only line IMO
    _service.DoSomething();
    _repository.DoSomethingElse();
    _domain.DoSomethingMore();
}

ここでは、マルチスレッドなどについて話しているのではなく、単純にコントローラーの責任を取り除き、これらのアクションを処理するコンポーネントに責任を負わせます。

4

2 に答える 2

1

優れたPubSubスクリプトの1つは、Node.js上に構築されたFayeです。それは本当に良いですし、あなたのケースに使用することができます。

Fayeは、 Bayeuxプロトコルに基づくパブリッシュ/サブスクライブメッセージングシステムです。Node.jsRubyのメッセージサーバー、およびサーバーとすべての主要なWebブラウザーで使用するクライアントを提供します。

于 2012-10-12T03:12:04.227 に答える
0

PubSubを完全に諦めていなければ、RabbitMQを見ることができます。 http://www.rabbitmq.com/

なぜそれがWebアプリケーションの「ベストプラクティス」ではないのか理解できません。これらの種類の絶対値がとにかく正しいことはめったにありません。

于 2012-10-12T03:09:27.477 に答える