2

私たちのチームの何人かは、アプリケーションのすべての Web ページが Web ユーザー コントロールであるべきだという意見を持っています。したがって、たとえば、すべての html + イベント処理が Customer.ascx にあり、Customer.ascx コントロールを含む対応する Customer.aspx ページが存在します。

これらは彼らの議論です:

  1. このプラクティスは、汎用性、移植性、および再利用性を促進します。
  2. ページが現在再利用されていなくても、将来再利用される可能性があります。
  3. 将来、顧客ページを別の場所に移動したり名前を変更したりする必要が生じる可能性があり、ユーザー コントロールを移動する方が簡単です。
  4. これは、新規開発に対する MS の推奨事項です。

これは本当に新規開発の推奨事項ですか? この戦略に欠点はありますか? 必要に応じてユーザー コントロールを手元に置いておくのは良いことですが、「後で必要になった場合に備えて」アプリケーション全体に対してこれを行うのはやり過ぎのようです。

4

4 に答える 4

2

1、2、3: 「後で必要になるかもしれない」という理由で何かをするのは恐ろしい戦略です。

http://c2.com/xp/YouArentGonnaNeedIt.html

4: 私はこれを読んだことがなく、MS がこのようなことを言ったことがあることを真剣に疑っています。おそらく、MS タグを持っている、または MVP か何かだった 1 人の人物によるランダムな記事で、だまされやすい後輩開発者がそれを福音の真実として取り上げたのかもしれません。

于 2008-11-11T01:23:41.333 に答える
1

かつてそのように書かれた.NET1.1のアプリケーションに出くわしました。誰かが同じ誤った「ベストプラクティス」を聞いて、それを絶対的な真実と見なしたに違いありません。

私は、それがほとんど必要とされないレベルの複雑さを追加することに同意します。私は通常、ユーザーコントロールは、複数のページで繰り返されるページの一部のようなものに役立つと思います。ページ全体を再利用すると思われる場合は、元のページだけを使用してみませんか?

また、移動/名前変更の議論も理解していません。ページの名前変更/移動はそれほど難しくありません。同僚が提案していることを行うと、orders.ascxファイルしか含まれていないcustomers.aspxページになってしまいますか?そのアプローチでは、ファイルの名前を変更したり移動したりするよりも、混乱やエラーが発生する可能性があります。

于 2008-11-11T02:45:36.003 に答える
1

個人的には私はファンではありません。初期段階では厳密には必要ではない複雑さの層がアプリケーションに追加されると思います。以前は再利用されるとは思っていなかったコンポーネントを再利用する必要がある場合、その時点でユーザーコントロールにリファクタリングすることはそれほど難しくありません。

于 2008-11-10T22:49:24.373 に答える
1
  1. NamingContainer ジガリーが _ctl0 などをすべての前に追加することがあるため、クライアント側のスクリプトが非常に複雑になります。
  2. MSがそれを推奨したことはないと思います。MSDN ドキュメントへのリンクをリクエストします。
  3. 通常、何かの実装が完了し、それが十分に複雑になるまでに、それを「再利用」しようとすると、多くの「落とし穴」が見つかります。良い例は、パスの外では機能しなくなったユーザー コントロールの相対リンクです。
  4. ユーザーは、すべてのページで顧客を追加/編集/削除する必要はありません。実際、すべてのページにこれらのタイプのコントロールがあると、キャッシュの問題が発生し始めます。たとえば、請求書ページで顧客を追加した場合、請求書コントロールは新しい顧客で更新されますか? あらゆる種類のコントロール間の操作性の問題が顕在化する可能性があります。もちろん、すべてのユーザーのコントロールが完璧であるため、これらの問題について議論するのは難しいため、これは決して起こりません。ははは、そうですね。
  5. ユーザーコントロールを移動/名前変更すると、複雑になるのではなく、実際に時間を節約できる例を考え出すことができるかどうかを確認してください。実際の例を作成し、それぞれの長所と短所を示します。
于 2008-11-10T22:43:52.013 に答える