この質問は長くなるかもしれないので、私に固執してください!現在、私が働いている Web ベースのアプリの設計とプロトタイピングを行っています。これは、多くの複雑さと複雑さ、そして大量のデータを備えた大きなアプリです。
フロントエンド技術に関しては、Durandal、Knockout、TypeScript (すべての JavaScript および jQuery コードを記述するため) を使用して SPA を構築します。
バックエンドは非常に慎重に検討され、設計されています。簡単に言うと、慎重に設計されたドメイン モデルを使用する一連のアプリケーション サービス (nHibernate、AutoFac などを使用) があります。次に、WebAPI はアプリケーション サービスのメソッドを使用して、データをフロント エンドに返します。
DB とのやり取りが多い SPA を構築する際の明らかな考えは、Breeze を検討することです。Breeze が優れている理由は、十分に文書化されています。問題は、それが私たちのアーキテクチャに適合するかどうか確信が持てないことです。単純なプロトタイプを超えて Breeze を使用した人は誰もいないので、次の質問に答えてくれる人がいれば、とても感謝しています!
1 - デフォルトで Breeze を使用するとビジネス ロジックをバイパスし、nHibernate または DB に直接移動すると想定するのは正しいですか? この仮定が正しい場合、それを回避する方法はありますか? アドバイス/リンクはありますか?Breeze がビジネス ロジックにルーティングしてメタデータを Breeze に戻すには、アダプタを作成する必要があると考えました。これにより、システムのさまざまな部分に部分的および完全にハイドレートされたモデルがあり、外部キーが射影されるなど、他の問題が発生します。これは私たちにとって非常に論争の的となる問題です!
2 - TypeScript を使用する多くの理由の 1 つは、静的な型付きオブジェクトを Intellisense で提供することです。Breeze を使用した場合、すぐに使用できるとは限りません。
3 - キャッシュはまったく必要ありません。Breeze のこの部分を完全にオフにすることはできますか?
4 - クエリ機能を使用していない場合 (絶対に使用していません。検索の計画があります。つまり、Breeze クエリ機能と一緒に使用することはオプションではありません)、キャッシュ機能を使用しておらず、使用できます。 Breeze が許可する開発のスピードとコードの削減を支援するために、適切な場所 (DTO から TypeScript オブジェクトを自動的に生成する T4 テンプレートなど) を配置すると、Breeze を使用する意味が否定されますか?
私は多くの検索を行いましたが、Breeze を使用する必要がある理由を見つけることができます。それが素晴らしいことは認めますが、これまでの私の理解では、それが私たちのアプリに合っているかどうかはわかりません. アドバイスや推奨される読書は大歓迎です。Breeze はまだ登場したばかりなので、多くの情報を見つけるのに苦労しています。