1

私はチームを率いて、ASP.NET (Web フォーム) で複雑な製造 Web アプリを作成する予定です。以前は、ビジネス ロジックは同じプロジェクトにあるか、さらに悪いことに、ページのコード ビハインドにありました。

関心の分離が重要であり、テストがはるかに簡単になることを理解しています (テストは常に私たちの問題でした)。

ただし、これをどのように実装できるかについては少し混乱しています。SqlDataSources にバインドする RadGrid などを多数使用しています。これらのようなものは、別のプロジェクトのすべてのビジネス ロジックでどのように機能しますか?

4

3 に答える 3

2

私のアドバイスは次のとおりです。

  • できれば、SqlDataSources のことは忘れてください。SqlDataSources を使用している場合でも、いくつかのビジネス ルールを分離できますが、データ中心のアプリケーションの場合、ほとんどのビジネス ルールはデータの編集と取得に関連しています。最適な種類のデータ ソースは、単純な IEnumerable です。ほとんどの Grid コントロールはそれをサポートします。ビジネス ルールは、グリッド コントロールにバインドされた単純な C# オブジェクトを取得する必要があります。ObjectDataSource も適切な選択です。
  • 可能であれば、ASP.NET WebForms の代わりに ASP.NET MVC を使用してください。テスト容易性と関心の分離という点での利点は非常に大きいです。だからこそ、この技術が生まれました。新しいプロジェクトを開始するので、強くお勧めします。実際、ASP.NET MVC は、コントローラー レイヤーがオブジェクトをビューに渡して表示できるようにすることがすべてです。
于 2013-07-13T18:06:29.847 に答える
2

もう 1 つのオプションは、Web フォームを保持し、MVP パターンを使用することです。シンプルな C# (Razor や MVC の規則を学ぶ必要がない) であるため、新規またはジュニアの開発者にとって参入障壁がはるかに低いことがわかりました。 Web 開発についてはまったく何もありません (ビジネス コードをより再利用しやすくするために、ユーザーやプロファイルなどの Web 関連の使用法を基本的に抽象化しました)。

sを廃止する必要がありますが、SqlDataSources も悪であることに同意します。この実装では、データはデータベースから取得され、POCO DTO にラップされ、IEnumerable としてビューに渡され、ページのコード ビハインドでデータバインドされます。

企業の世界における MVP のもう 1 つの利点は、変化に対する回復力です。ビューは可能な限りダムであるため、切り替えるのは非常に簡単です。同じモデルとプレゼンターを使用して、Winforms、Silverlight、Webforms、およびコンソール アプリでビューを同時に使用できます。ビューの実装は、プレゼンターまたはモデルには関係ありません。

MVC は新しい話題ですが、MVC と MVP の両方を使用した経験から、保守性と信頼性が重要な大規模なエンタープライズ Web アプリケーションには MVP をお勧めします。

于 2013-07-13T22:21:01.363 に答える
1

SqlDataSource の代わりに ObjectDataSource を使用して、他のプロジェクト (つまり、別のレイヤー) のクラスを利用することもできますが、それでも Web フォームを使用して困難な戦いを繰り広げることになります。

関心の分離とテスト容易性が重大な懸念事項である場合は、ASP.NET MVC を使用することを強くお勧めします。

于 2013-07-13T18:03:03.267 に答える