こんにちは 私は最初のnhibernateプロジェクトを作りたいと思います。 強力なormマッピングを持たない古いデータが関連付けられたwinformプロジェクトからの移行です。 プロジェクトはかなり大きいので、最初から良い建築をしたいと思っています。nhibernateのアーキテクチャ
私はいくつかの層があります:
- リポジトリ:NHibernateの
- モデルからセッションの作成:基本的には、データベース内の同じ名前のゲッター/セッターのプロパティで構成されて、Beanオブジェクトを
しかし、私はいくつかのアドバイスが必要でしょう、操作をどのように扱いますか? コードからnhibernateに直接アクセスする必要があるアイテムを作成したいのですか?ビジネスロジックレイヤーを作成する必要がありますか?
基本的に私はビジネス層のための単純なアーキテクチャを発見しました。 http://www.codeproject.com/KB/architecture/NHibernateArchitecture.aspx あなたの気持ちは何ですか?
もう1つの質問ですが、検証が必要なプログラム(メガネドメイン)はどこですか? winformプロジェクトやビジネスレイヤーでは?
非常に大きいということは、5人の開発者のチームが潜在的に発展することを意味します。彼らは複数のプロジェクトに取り組んでいますが、私は毎年、2人の常勤がプロジェクトに取り組んでいると推測しています。それはメガネの売り手のためのソフトウェアです。我々は2つのレイヤーしか持たない。 1つはIHM用、もう1つはDataAccess用であり、より多くのレイヤーを分割することはできません。主に基本的なCRUDロジックまたは特定のSELECTまたはUPDATE(例:SELECT * FROMテーブルINNER JOINテーブル2など)になります。構造は複雑ではありません。しかし、複雑なロジックがあります。例:グラスの補正にAddition> 0がある場合、これはグラスの特殊なタイプ(プログレッシブ)です –
問題の例。私たちは非常に複雑な形をしており、売り上げのすべてのアイテム(眼鏡やレンズのすべての部分)を修正などで選択することができます。これはタブ付きのフォームで、各タブは製品の一種です。いくつかのオプションをクリックすると、いくつかのコントロールが消滅します。 –
を維持することは難しく、最後の答えはクライアントサーバーアーキテクチャです。あなたの例では、アイテムを作成するときに、winformモジュールにフィールドが設定されていますか(例:var item = new Item(); item.prop1 = ..; item.prop2 = ...; Item.Add(アイテム);)? (例:Item.AddNew(prop1、prop2); AddNewには前のコードがあります)。 –