2013-04-15 12 views
16

アプリケーションで永続化レイヤーを作成するように求められるアプリケーションを作成する必要があります。アプリケーションは.netにあります。私はビジネスレイヤーとプレゼンテーションレイヤーを作成しましたが、どのように、なぜパーシステンスレイヤーを作成するのか分かりません。どのアプリケーションでもパーシスタンスレイヤーを使用できますか?

私はグーグルで、永続層が通常はデータベースからのデータの保存と検索に使用されていることを知りました。

誰でも詳細に説明できますか?非常に簡単に言えば

答えて

10

データベースエンジンとビジネス/アプリケーションロジックの間にDAL(データアクセスレイヤー)や他の種類の中間層を構築する理由は、このレイヤーをあなたの間に追加することです。あなたが現在使用している特定のデータベースエンジン/テクノロジーからのアプリケーション

これには、他のストレージエンジンへの移行が容易で、単一のレイヤーにデータベースロジックをカプセル化しやすくなりました(クロスレイヤーインターフェイスなどを設計したうえで、

ここに私の最も定格の答えを参照してください、それはASP.NET MVCとEFについての例であるが、溶液やプロジェクトの構造は、独立した実際の技術です:MVC3 and Entity Framework

またのために、よりよいこの問題を理解するために、いくつかの記事を読みます例:http://www.developerfusion.com/article/84492/net-and-data-persistence/

8

永続化層は、アプリケーションが使用アイテムを取得SAVEへの道であると。

単純な例として、人(名前、年齢、性別)を表すクラスがあります。アプリケーションが動作している間、これはメモリ内に保持されます。しかし、アプリケーションを閉じて開いたときにその情報を利用できるようにしたいとします。まあ、あなたはその人をを保存し、後でを返す何らかの方法が必要です。もう一度それはです。これは、永続性レイヤーが入ってきて、あなたの人物をどこかに "永続的"に書きます。あなたはCRUD(読み取り、更新、削除、作成)の操作を実行しますあなたの永続化層でなど

寿命や要件に応じて、データベース、フラットファイル可能性があり

、レジストリ。多くの場合、データベースに対してです新規作成(Fred Bloggs)。彼らの名前を変更するとあなたのシステムの別のユーザーがと表示されている可能性があります。を読み、フレッドミギンズと更新に変更してください。その顧客は国を離れるのでを削除します。

11

データアクセスレイヤーまたは他の用語としても知られている持続レイヤー。

これは、ビジネスレイヤからデータを取得して保存する必要がなくなります。これを行う理由は、ビジネスロジック(データ操作のために重い作業をするアプリケーションの部分)が特定の種類のデータソースに結びついていないためです。

データレイヤーは、データベース固有のものにする必要があります。したがって、MySQLを使用してすべてのデータにアクセスする場合、そのためにdataLayerを記述します。

ある時点でMongoDBに移動することにした場合は、アプリケーション全体を書き直すのではなく、 MongoDBからデータを取得するためにデータアクセス部分だけを書き換えることができます。ビジネスロジックはデータをどのように取得するかを気にしません。そのため、プレゼンテーションレイヤーは元のままです。

これが役に立ちます。

+0

を言うことはできますか? –

2

データをどこかに保存していない場合は、再度アプリを開いたときに再び表示されません。あなたが言ったように(SQL、Oracle、PostGREなど)データベースに直接、またはディスクに直接(バイナリ形式やプレーンテキストでシリアル化するなど)保存できます。

これを実行するレイヤーを使用することは良い方法です。カップリング(すなわちスパゲッティコード)を減らし、メンテナンスをはるかに容易にする。

私はあなたがHibernateとそれが.NETのいとこ、NHibernateについて読むことをお勧めします。

2

永続性=ディスクまたはデータベースへのレコードの読み取り/書き込み/削除。

などのレイヤ=断熱材、

永続層は=一般的なビジネスロジックからロジックを削除/読み取り/書き込み分離することを意味します。理想的には、ビジネスロジックとパーシスタンスモジュールの間に少数の(または単一の)対話を置くことによって実現できます。永続ことを確認してください

  1. 私たちはすべてやったその何かが(など、ディスクにDBを保存する)、これは単なる空想の学術用語だと思う、彼らはちょうどに私たちを求めています(つまりゲートウェイパターン)、

  2. のように、理想的にはわずかな(またはまさに単一の)ポイントの相互作用があるので、データベースタイプまたはホストを交換したいと思うかもしれません。より小さなスコープ - 私たちはパーシステンスパーツを動かすためにパーシステンスパーツの周りをぶち壊す必要があります)。

乾杯は、私たちは私のリポジトリパタパタ実装は私の永続層であることを

関連する問題