45

アプリケーションに永続層を作成するよう求められるアプリケーションを作成する必要があります。アプリケーションは .net にあります。ビジネス レイヤーとプレゼンテーション レイヤーを作成しましたが、永続レイヤーを作成する方法と理由がわかりません。

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

誰か詳しく説明してくれませんか?

4

5 に答える 5

35

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

これにはいくつかの利点があります。たとえば、他のストレージ エンジンへの移行が容易になる、データベース ロジックが 1 つのレイヤーにカプセル化されるなどの利点があります (クロスレイヤー インターフェイスをどれだけ適切に設計しているかに応じて、後で簡単に交換または変更できます)。

ここで私の答えを参照してください。これは ASP.NET MVC と EF に関する例ですが、ソリューションとプロジェクトの構造化は実際には技術に依存しません: MVC3 と Entity Framework

この問題をよりよく理解するために、いくつかの記事もお読みください。

于 2013-04-15T13:18:57.233 に答える
26

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

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

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

ある時点で MongoDB に移行することを決定した場合、アプリケーション全体を書き直す代わりに。データ アクセス部分だけを書き換えて、MongoDB からデータを取得できます。ビジネス ロジックはデータを取得する方法を気にしないため、データとプレゼンテーション レイヤーはそのまま残ります。

お役に立てれば。

于 2013-04-15T13:16:12.427 に答える
5

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

これを行うためにレイヤーを使用することをお勧めします。カップリング (つまり、スパゲッティ コード) が減り、メンテナンスがはるかに簡単になります。

Hibernate について読むことをお勧めします。これは .NET のいとこである NHibernate です。

于 2013-04-15T13:18:36.777 に答える