データベースに依存しないレイヤーにインターフェイスするためのWebプログラムを作成することをお勧めしますか?

StackOverflow https://stackoverflow.com/questions/4285864

質問

私は以前にWinformsプログラマーです。私は常に、フロントエンド(ウィンフォーム)とミドルティア(リモート/WCFによって促進)という2つの部分で書いているパーティションプログラム

そのアプローチでは、フロントエンドコードはLINQまたはsystem.data.sqlclientにアクセスできません。しかし、それには、中層がインスタントSOA市民(サービス指向アーキテクチャ)であるという追加の利点があり、B2Bシナリオ、データベースに依存しない、および単なるWinformsアプリでもインターネット対応で使用できます。

今、私はウェブスキルを学んでいます。 Book Pro Asp.Net MVCのSportsstoreプロジェクトを使用して、その本の古い(?)アプローチ(ミドルティア)とリポジトリアプローチを比較することは避けられません。リポジトリアプローチは、フロントエンド(SportsStore.Wubui)でデータアクセスメカニズム(LINQからSQL)を直接公開します。リポジトリアプローチを使用して、Sportsstore.webuiはデータベースへの直接的な接続を依然として持っています。

質問は、Webプログラムで、中間層のみにフロントエンドをインターフェースすることを目指している必要があります(したがって、フロントエンドはデータベースに依存して、中層は即時のSOA市民である可能性があります)、または私はすべきです)フロントエンドでデータベースを(リポジトリアプローチ、ORM、または同様の場合)直接使用しますか?

役に立ちましたか?

解決

私は、この本が簡潔にするためにいくつかのベストプラクティスに違反していると確信しています。著者は、「どうすれば自分のポイントを伝えるのか」と「それを行うための正しい方法」のバランスをとる必要があります。彼らは通常、前者を選びます(彼らはすべきである - これは、アーキテクチャに関するものではなく、ウェブ開発に関する本ですよね?)。

Nティアアーキテクチャを絶対に使用し続ける必要があります。 n層アーキテクチャの全体的なポイントは、レイヤーを簡単に交換できるようにすることです。データベースを切り替え、ユーザーインターフェイスを切り替えます(たとえば、WinFormsをASP.NETに置き換えます)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top