1


0

まったく新しいシステムを構築するとき、どのようなアプローチ/設計パスを取るべきですか?

私が担当しているこのアプリケーションは、基本的には約12個のテーブルに相当するCRUDシステムです。

このテクノロジーは、ASP.NET WebForms + Ajax Ctrl Toolkit + jQueryのフロントサイド、SQL Serverのバックサイドである可能性があります。

このアプリは、シングルテナントシステムとして一度に10〜20人以上のユーザーによって使用されることはほとんどありません。ただし、ある時点でマルチテナントシステムにしたい場合があり、そのための影響を最小限に抑えたいと考えています。

あなたの明るい人々への私の質問はこれです:私はすべきです

  1. これを単純な2層Webアプリケーションとして構築します。ASP.NET WebFormsは、ストアドプロシージャ(および一部のLinq2SQL)を介してSQL Serverのデータの永続性を処理するビジネスオブジェクト/レイヤーと直接対話しますか?

  2. n層アプリケーションを構築します。ASP.NETWebAppは、 ストアドプロシージャ(および場合によっては一部のLinq2SQL)を介してSQL Serverのデータの永続性を処理するビジネスオブジェクト/レイヤーの最小化を処理するWCFサービス?

  3. 私が考えていないいくつかの追加オプション?

私の質問をするより簡単な方法は、2層アプリを構築するか、3層アプリを構築するかです。 私はそのシンプルさから2層に傾いていますが、3層のWCFアプローチは賢明かもしれませんが、長期的な目標はマルチテナントにすることです。

更新

ASP.NET MVCの推奨事項に感謝し、その経路を調査します。ただし、MVCとWCFの使用へのリンクは、最終的な回答を選択する際に特に役立ちます。

5 回答


5


基本的にはCRUDシステムであるため、ASP.NET MVCを使用することをお勧めします。 それは、箱から出してすぐに懸念の明確な分離を作成します。 そして、できればLinq2SQLを使用して、ビューを作成してください。 http://www.asp.net/mvc/whatisaspmvc/ [こちら]簡単なCRUDアプリケーションの簡単なビデオがあります。


1


私の提案は、物事の柔軟性を保つためだけにn層/ MVCアプローチを採用することです。後でシステムを拡張するために必要な方法がわからない場合。アプリ


1


データベースに対してCRUDシステムを作成するだけであれば、Dynamic Dataを使用して1週間以内にセットアップできます(システムのすべての詳細を知らずにこれを提案します)。

MVCを使用して柔軟性を高めます。


1


お願いします!! 2層に移動(MVCかどうか)

なぜ複雑さを追加するのですか? プロジェクトに時間と労力を追加しますが、メリットはありません。

後で、アプリが非常に成功した場合(本当に、本当に、スーパーデューパーが成功している必要があります)、再設計するためのお金とリソースがあります。

編集:コメントで尋ねられた説明を追加: + N層は、異なるサーバー(または同じサーバーで、しかしそれぞれ独自のプロセスで)でアプリを実行する可能性を指します:

  • IISを実行する1つ(または複数)のWebサーバー

  • WCFを実行する1つ(または複数)のサーバー

  • DBサーバー

2層では、すべてのアプリが同じサーバー(およびプロセス)で実行されているため、DBを別のサーバーに配置できます。

2層アプローチを簡単に使用できますが、次のような懸念の分離があります。

  • DBアクセスを持つ1つのアセンブリ(VSプロジェクト)(Linq2SQLを使用する場合) 通常はDataContextを持ちます)

  • ビジネスロジックを含む1つのアセンブリ。 これはDBアクセスと話します そして、 `List(of T)`または `IQueryable`オブジェクトを返します

  • ビジネスロジックと通信するフロントエンド(何でもかまいません)。

後でフロントエンドを変更することにした場合、このプロジェクトのみを変更し、DBアクセスレイヤーとビジネスロジックを保持します。


0


あなたの状況では、単純な2層を使用します。 ビジネスロジックを分離している限り、後でWCFを介してホストすることはそれほど面倒ではありません(単に、インターフェイスとデータオブジェクトにそれぞれServiceContractとDataContractをタグ付けします)。 これは、Web層とは別の物理層でビジネスロジックをホストする必要がある場合にのみ必要です。

いずれにせよ、マルチテナントに移行する場合、おそらく多くの方法でアーキテクチャを変更する必要があります…​ WCFが最も懸念されることはありません。

ここでは他の人々と同様にMVCを好みますが、単純なアプリの場合はWebFormsで十分だと思います。 もちろん、MVCを学習する機会としてこれを使用する場合は、シンプルなアプリを開始するのが良い方法です。