2009-05-01 10 views
-1

私の友人の1人は、非常に多くのユーザーコントロールとページを持つウェブサイトを作成しました。良いプログラミングの提案

ページには、非常に多くのラベル、隠し値、ユーザーコントロールが含まれています。ユーザーの要求に基づいて、彼はこれらのコントロールを有効または無効にします。ウェブフォームのすべてのページロードで彼はRequest.form.allkeysをループし、すべてのコントロールを比較しています。その比較に基づいて、彼はWebフォーム上のコントロールを有効または無効にしています。

私はそれが良いプログラミングの練習であるかどうかわかりません。

誰でも正しい方向に向けることができますか?

+0

quesitonの「編集上の整理」の一部が良いかもしれません。 –

+0

@Martin:あなたの好きな編集者が質問を更新しました。 – Welbog

+0

"ページには何枚ものラベルが含まれています"他にどのようなウェブサイトのページを見ましたか? WWWには何十億ものページがあり、それらのうちの1つまたは2つを見て比較し、おそらくあなたが見るものについての詳細な質問をすることができます。 –

答えて

4

私はこのようなウェブサイトを一度継承しました。それを書いた人は、マゾイストだったに違いない。

ウェブサイトをデザインするのは恐ろしい方法です。どのフィールドからの入力を処理するのか、表示/非表示の複雑さはあまりにも大きいです。 1つの小さな変更が致命的な結果をもたらす可能性があるため、保守は不可能になります。

より良いアプローチは、共通の動作を1ページに分離することです。そのページが複雑な場合は、そのページのコアセクションをとり、それをユーザーコントロールにします。 UIを論理的な部分に分解し、それらをページ上にまとめます。

あなたのページコードは信じられないほど単純です。特定のフィールドを隠す/表示するロジックはビジネスロジックであり、可能な限り表現力豊かなコードで表現する必要があります。

0

私はwebdevをあまり使っていませんが、それはデスクトップアプリケーションの世界では非常に悪い習慣と考えられます。

特定のアクションが発生した場合、おそらくよりMVCを使用している(またはMVVMを使用していますか)アプローチを使用して、関連するコントロールのみを有効または無効にすることを検討してください。友人のアプリケーションロジックはプレゼンテーションロジックと密接に結びついているため、いずれかを変更する必要がある場合は、システム全体に波及効果が生じる可能性があります。

0

Webコントロールを使用しているときにフォームのポスト値を解析することについて聞いたことがありません。私が伝統的なASPをやったとき、それは私の毒でしたが、ウェブのコントロールではなかったでしょう。

多くの機能を1つのページにまとめるのは、おそらく悪い考えです。ユーザーコントロールを使用すると、関連するUI機能のブロックをグループ化することや、セクションを非表示にすることは意味がありますが、ページ全体を引き出すことはあまりありません。ちょうど別のページがあります。

また、同じページに多くの機能が混在する理由は、関連するコードを使用することであるため、関連するコードをすべてのコードビハインドで使用できるライブラリに移動します。ユーザーコントロールに戻って、任意のページで使用できる定期的なUI要素に使用します。

関連する問題