0

良い一日!私はASP.NETプロジェクトのrefatoringomに取り組んでおり、このような問題に直面しました。プロジェクトは国際的であり、その場所がいくつかあり、ビジネスロジックの多くの場所にあり、特定のアクションはそれほど狡猾ではないものの助けを借りて解決されます検査:

    if (IsChina) 
    {
        ...
    }
    else if (IsFrance)
    {
        ...
    }

当然、そのようなコードは急速に成長し、耐えられなくなり、再利用をサポートできなくなります。その結果、問題が特定の場所のレイアウトを変更するように見えた場合、コード ビハインドを作成する必要があり、さらにひどいことになりました。2 つの問題があることが判明しました。 A. 同じ (類似した) ビジネス ロジックに対して異なるマークアップが必要です。異なるビジネス ロジックで同じレイアウトが必要

最初のパラグラフだけで文芸クラスの階層構造と継承が決定された場合、2 番目の問題は、最も重要なレイアウトの複製です。それで私の質問は何ですか、レイアウトを(コードビハインドに追加せずに)何らかの方法で継承するか、1つのASCXファイルを使用してビジネスロジックのいくつかの実装をバインドし、右側で動的に接続することができますか時間。たぶん、似たようなことを誰かがすでに経験したことがありますか?

ありがとうございました!

4

1 に答える 1

0

私が見た重大な問題は、ソリューションの設計について真剣に考えることです。

マークアップ (aspx または ascx): どのコントロールが共通で、どのコントロールが可変か? 一般的なものは MasterPageFile に配置して、他のマークアップ ファイルから参照できます。

コード ビハインド (aspx.cs または ascx.cs): ページ上のコントロールに直接関連するロジックのみをここに配置します。

ビジネス ロジック クラス (.cs) の場合: ここでも、共通要素 (メソッド、プロパティなど) を「親」ファイル (基本クラス) に配置し、固有の要素を基本から継承する「子」クラスに配置する必要があります。

于 2012-06-21T13:56:56.953 に答える