問題タブ [ncqrs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
snapshot - Ncqrsスナップショットの利点は?
将来のアプリケーション設計の準備として、CQRSスタイルのアプリケーション、特にNcqrsに関する調査を開始しました。
ほとんどの概念は非常に明確ですが、スナップショットの概念には少し混乱しています。
イベントからオブジェクトを再構築するとリソースを大量に消費する理由はわかりますが、非正規化機能はエンティティの最新の状態(または実際にはビューに必要な最新の値)を使用して読み取りモデルを構築するため、概念に煩わされるのはなぜですかスナップショットからオブジェクトを再構築しますか?
そのようなシナリオは、主にバージョンのアップグレードまたはデバッグの後に、散発的かつオンデマンドでのみ発生すると考えるのは正しいですか?
そうでない場合、スナップショットを撮るのに良い状況は何でしょうか?
tdd - Ncqrs: テスト セットアップの一部としてイベントを保存する方法
テストの設定の一部としてイベントを保存するにはどうすればよいですか?
現在、次のようなコマンドを送信してアプリケーションの状態を初期化しています。
とICommandService.Execute()
の部分でコマンドを送信するために使用しています。Given
When
コマンドはドメインによって拒否される可能性があるため、コマンドに依存したくありません。次のようなイベントをシミュレートして、アプリケーションの状態を設定したいと思います。
Given
「When」部分の処理中にイベントを再生できるように、イベントをイベント ストアにプッシュするにはどうすればよいですか?
ありがとう
デニス
asp.net-mvc - MVCの強い型のビュー、および下位レイヤーに送信する前のサーバー側の設定プロパティ?
私はビジネスレイヤーにコマンドを送信するレイヤードアプリケーションを持っています(実際には、アプリケーションはncqrsフレームワークに基づいていますが、ここでは重要ではないと思います)。
コマンドは次のようになります:
このクラスにはロジックはなく、データのみです。
ユーザーにユーザー名と電子メールを入力してもらい、システムが現在の日付を使用してコマンドを作成するようにします。
間で最高のもの:
RegisterUserCommandに基づいて厳密に型指定されたビューを作成し、ビジネスレイヤーに送信する直前に日付とAPiキーを挿入しますか?
RegisterUserViewModelクラスを作成し、このクラスでビューを作成し、ビュー入力に基づいてコマンドオブジェクトを作成しますか?
私は次のコードを書きました(ソリューションn°2用):
このコードは機能しています...しかし、正しい方法を選択したかどうか疑問に思います...
アドバイスありがとう
[編集]日時が誤解を招くようであるため、(コマンドレイヤーからではなく)Webレイヤーから、サーバー側にも設定する必要がある別のプロパティ「ApiKey」を追加しました。
[編集2] Erikの提案を試して、私が想像した最初のソリューションを実装します。
...それは受け入れられますか?
ncqrs - Ncqrsは完全なReadModelを再作成します
Ncqrsを使用して、これまでに発生したすべてのイベント(すべての集計タイプ)を再生し、読み取りモデル全体を最初から再作成するために、これらを非正規化ツールにフィードする方法はありますか?
編集:
より具体的なユースケースを提供するのは良いことですが。これをASP.NETMVCアプリケーション内で構築し、読み取りモデルを操作するためにEntity Framework(コードファースト)を使用しています。開発をスピードアップするために(そして私は怠惰なので)、読み取りモデルが変更されるとデータベーススキーマを再作成するデータベース初期化子を使用したいと思います。次に、イニシャライザのシードメソッドを使用してそれらを再設定します。
domain-driven-design - Ncqrs: 集約ルートを持たずにイベントを発生させる方法
2 つのBounded Contextsがあるとすると、次のようになります。
- Fleet Mgt - シンプルな CRUD ベースのサポート サブドメイン
- Sales - これは私の CQRS ベースのコア ドメインです
フリート管理で CRUD 操作が発生した場合、操作を反映するイベントを発行する必要があります。
- 航空機作成
- 航空機アップデート
- 航空機削除済み
- 等
これらのイベントは、a) Sales ドメインで必要なさまざまなインデックス テーブルを更新するために、および b) 統合された監査ログを提供するために必要です。
質問:単純な CRUD コンテキストでは必要のない をInProcessEventBus
介さずに、これらのイベントを保存して公開する簡単な方法はありますか (ここでは NSB を使用していません)。AggregateRoot
cqrs - NCQRSとJOliverEventStore
NCQRSとJOliverのEventStoreの両方を評価した人はいますか?どちらか一方に大きな利点がありますか、それとも異なるオーディエンスを対象としていますか?
私が見たもの:
NCQRSには、NServiceBusのサポートが組み込まれています。サポートされているNSBのバージョンはわかりませんが、NSBでのライセンスの変更により、これが私のプロジェクトの問題になっています。NSB2.1を永遠に使い続けたいとは思わないでください。私はおそらくMassTransitまたはRSBにもっと目を向けているでしょう。NCQRSには、私のような初心者に喜ばれるかなりの量の「はじめに」のヘルプもあるようです。
EventStoreにはバスメカニズムへのフックがあるように見えますが、組み込みの実装はありません(間違っている可能性があります)。EventStoreは3.0リリースでかなりの量の最近の活動をしているようですが、いくつかの簡単なコード例と私が見つけたポッドキャストを除いて、特に初心者にとっては、ふるいにかける以外に多くの助けはないようです。スタックオーバーフローまたはグループ。
既存の比較がある場合は、その方向に私を向けてください。上記の私の仮定が正しくない場合は、私を訂正してください。
c# - NCQRS: ドメインからどのようにロードしますか?
標準の登録プロセスを実行します。
ユーザーがサインアップする
アカウントを有効化するためのリンクが記載された電子メールがユーザーに送信されます
ユーザーがアカウントを有効化
私が話している問題は次のとおりです。
最初のアカウントを作成すると、ユーザー名、パスワード、電子メール、アクティベーション キーが保存されます
ユーザーがアクティベーション キーのリンクをクリックすると、readmodel を使用してキーを検証します。
次に、ユーザー名を渡して ActivateAccountCommand を起動します
ユーザー アカウントをロードしてドメインでアクティブ化するにはどうすればよいですか?
最初は、新しいユーザーの Acount.Id を readmodel に渡したかったのですが、CommandExecutorBase 内から (私が認識している) アクセスがありません。これは保存しません。
design-patterns - コマンド ハンドラーで readmodel からデータを要求する
UI から送信されたコマンドへの応答として、管理者のリストに電子メールを送信する必要があります。通知が必要な管理者は、読み取りモデルに対するクエリから取得されます。
現時点では、私の理解では、オプションは 1 つしかありません。コマンドを送信する前に必要な管理者を集めて、それら (名前/電子メールのペア) をコマンドに追加することです。
または、コマンド ハンドラーから読み取りモデルにクロスすることは許容されますか? 気分が悪いですが、これを行う他の方法は本当にありませんか?
domain-driven-design - .NET を使用した DDD - 利用可能な共通インフラストラクチャ ライブラリはありますか?
DDD と CQRS ( ncqrsフレームワークを使用) を使用して Web アプリケーションを開始していますが、独自のインフラストラクチャ クラス ライブラリの作成を開始する前に、既に利用可能なものがあるかどうかを確認したいと考えていました。
ファイルシステムへの書き込み、電子メールの送信などの基本的なインターフェースと一般的な実装は、どのプロジェクトでも使用できると思います。
cqrs - イベント ソーシングなしの CQRS - 欠点は何ですか?
イベント ソーシングの利点の一部が失われる以外に、イベント ソーシング部分なしで既存のアーキテクチャを CQRS に適応させることの欠点はありますか?
私は大規模なアプリケーションに取り組んでおり、開発者は今後数か月で既存のアーキテクチャをコマンドとクエリに分離できるようになるはずですが、この段階でイベント ソーシングも追加するように依頼することは、リソースの調達から大きな問題になるでしょう。視点。イベント ソーシングを含めないことは冒涜にあたるのでしょうか?