私はC#アプリケーションを設計しています
- プレゼンテーション(Webサイト+フレックスアプリ)
- ビジネス論理レイヤー(マルチクライアントプラットフォームを有効にするためのWCFの場合があります)
- データアクセス層(NHibernateを使用)
ソリューションを多くの既存のクライアントのデータベース環境に統合し、DALでNHibernateを使用したいと思います。私の同僚は、NHibernateを使用してクライアントのDB(ユーザーやイメージなど)からクラスを生成するとBLLが爆発することを指摘しましたDBが変更されるたびに私たちの顔に現れます!それで問題は、それが起こらないようにするにはどうすればよいのかということです。AutoMapperを使用してビジネスオブジェクトを作成し、NHibernateオブジェクトをこれらのBOにマッピングして(ハム、それはDTOになりますか?)、dalの変更がBLLに影響を与えないようにすることを検討しています。
ありがとう !
編集 :
私たちが達成しようとしていることをよりよく理解するには、コンテキストが必要になる場合があります。フロントエンド用にFlexで、バックエンド用にC#で写真の保存/共有アプリを構築しているため、主に当社向けです。コードとDBのあらゆる側面を処理します。
ただし、その製品は層によって購入することもできます。層は、最終的にはユーザーテーブルまたはイメージテーブルを含むデータベースをすでに持っています。ここでは、数億行のImageテーブルがあり、テーブルのALTERが長すぎるために、ビジネスロジックに列を追加することはないという新しい見込み客について考えています。
可能であっても(たとえば、行が少ないためにユーザーテーブルを変更できる)、BLLから層データベースに統合する必要があるたびに、すべてのソリューションに影響を与えることなく、テーブル構造の変更を処理する方法を自問しています。 Flexのクライアントアプリに!