2009-08-25 9 views
2

Webフォームからビジネスロジックとデータを分離して、Webアプリケーションをレイヤー化することの長期的な利点(ある場合)について疑問に思っています。 (つまり、フォーム、ビジネスロジック、データは同じファイルではなく、別のフォルダ内のそれ自身のクラス内にあるか、他の類似のクラスと組み合わされている)。できるだけモジュール化して、効率的にすべてのコードを1つのファイルに保存するようにします.Webフォームでは、組織化と再利用がずっと簡単です。サイト全体で使用される特定の機能は、独自のクラスやファイルにある接続を管理するようなものです。私はかなり新しくC#です。申し訳ありませんが、私は用語を使いこなしています。層へのコードのウェブアプリケーションデータレイヤーの無効/利点

おかげ

+2

..それなしでは生きて、私はいつも* *という事実にもかかわらず、のように私のコードを分離することを言うことができませんでしたあなたが提案している、私は本当に多くの利点を享受したことはありません。私は本当の理由のためにそれが好きです - 私は特定の層をやり直したことはありません、頻繁に私のアプリは、特定の機能の背後にある "ビジネスロジック"がその領域にユニークなような機能をターゲットにしているので、再利用性は完全に理論的です...毎回それをやってください:p – JustLoren

答えて

4

分離ちょうどC#言語を超えて利益をもたらします。

データアクセスコードが別のレイヤーに保持されている場合は、別のデータベースで動作するようにデータアクセスコードを調整するのは簡単です。データベース固有のコードはこのレイヤーにカプセル化され、クライアントはデータベースに依存しないインターフェイスで動作します。したがって、ここでの変更はビジネス層の実装に影響を与えません。

ビジネスロジックが1か所に保持されている場合、Webサービスを介して行われた要求の処理など、他のアプリケーションにサービスを提供することができます。

コードがクリーンで構造が整っている場合は、メンテナンスの労力が低く抑えられます。何かを変更する必要があるときは、責任コードの場所、変更すべき点、変更を保証する方法がコードの残りの部分に影響することはありません。

ASP.NETについては、懸念の分離に従わないと、多くのプロジェクトが巨大なコードに変わりました - プレゼンテーションコードはビジネス上の意思決定を行い、コードビハインドは適切なビジネスメソッドが存在しない場合はデータベースに直接話します。多くの場所から書き込まれ、データフローはトレースするのが困難な複数のパスをたどっていますが、それらのすべてに導入されていない1つのパスの変更は整合性を失い、データ破損を引き起こします。ほとんど変わらないコード・ブラック・ボックスは、プロジェクトが停止するまでどんな変更にも多くの労力が必要です。プロジェクトは「完成」しています。技術的な破産。

2

次のように我々は通常、(層のそれぞれがソリューションの別のプロジェクトで、その結果、別のDLLである我々のアプリケーションレイヤ:私は常に(最初のために行くだろう何 )は層状のアプリケーション

を持つことです
  • プレゼンテーション層(JUST UIとデータバインディングロジック)ビジネスレイヤ
  • ビジネスレイヤの実装(BLにアクセスするための 契約を定義する)( 実際のロジック、データ へ
  • インタフェースレイヤ検証など...)あなたはその後、取得するためのいくつかの工場を使用することができます

データアクセス レイヤ(DAL)

  • データアクセス層にアクセスする ための契約を定義 実装へ
  • インタフェースレイヤ対応するオブジェクト。私はいくつかの図書館を見ていて、可能であればSpring.NetまたはMicrosoft Unityのような依存性注入をMSのパターンと実践から使います。それはUI(開発者はこれに注意を払わなければならない)
  • すべてのアプリケーションは、見に
  • なしのビジネス・ロジックに属しロジックの

    • 分離:

      利点は、以下の通りです。同じで結果として、このアーキテクチャを知っている開発者は、対応するロジックを検索する場所を直ちに知るでしょう

    • 交換可能なDAL。インタフェースは、対応するレイヤにアクセスするためのコントラクトを定義します。
    • 単体テストがより簡単になりました。BLロジックとDALに焦点を当てました。
    • アプリケーションには多数のエントリポイント(Webインターフェイス、Winformsクライアント、Webサービス)がある可能性があります。それらのすべてが同じビジネスロジック(およびDAL)を参照することができます。
    • ...

    だけでは、ここで「穀物に対して」私は行くつもりです