を制御します。ほとんどのページには約10〜20のユーザーコントロールが含まれています。ユーザーコントロールは、タブコントロールの各タブなどの細かい粒度で、内容がユーザーコントロール内にあるものの、ビジネスオブジェクトの視覚的な表示になります(意味がある場合)。プロジェクト自体には200を超えるユーザーコントロール(ascxファイル)があります。ASP.Net過度の使用は、私は広範囲に各ページにユーザーコントロールを使用してasp.netのWebアプリケーションを調査してい
アプリケーションのパフォーマンスが非常に悪い(と私が調査していた理由)です。各イベント(クリックやドロップダウンの選択など)は、ページが読み込まれるまでに約5秒かかります(ビジュアルスタジオでは10秒)。このアプリケーションにはAjaxを使用していません。
aspxページ自体がコードビハインドにコードを持たないため、ユーザーコントロールがこれをすべて調べるため、トレースは苦痛です。そのため、単一ページをトレースするには、そのページにあるすべてのユーザーコントロールにトレースステートメントが必要です。
私は実際にそのビジネスコードの後に、各ユーザーコントロールの外観を有し、かつ再利用可能なものだと思いますが、スマートなアイデアですが、ユーザーコントロールの過度の使用は、パフォーマンスヒットが発生することが起こっていますか?これは強力なWinFormsバックグラウンドを持つ人が書いたasp.netアプリケーションの構造のようですか?
EDIT
は、各ユーザーコントロールが接続する(私は、ユーザーコントロール(あるいは量)の使用に疑問を投げかけていないよということを付け加えなければならないと思ったが、すべてが物事を成し遂げるというページにこれほど多くの持つ単純にするかどうかデビッドMcEwingがいることを言及@ただ一つのユーザーコントロールpostsbackは、どのような他のすべての処理については、何かをする場合は例えばデータベース)は、一般的に、例えば...パフォーマンスの問題が発生します、...一部が表示され、一部ではありません彼は、などを行って40の最適化されたユーザーコントロールを持っていたが、開発者はそれらがどのようにしてください各1が最適化されていることを確認しようとしている、ベースのWinFormsまたは「asp.netに精通していない」であった場合...
EDIT2
異なるユーザーコントロールは、例えば、一般的に保存されていないデータを必要とするSQL文のトレースを取得した後、データの同じ呼び出しはイベントごとにページの呼び出しごとに5~6回実行されています(上記の)タブ内の各ユーザーコントロールは、データベースからオブジェクトを取り込むために同じ呼び出しを行います...私は本当にユーザーコントロールが問題であると非難するためにここにいません(質問を削除する必要がありますか?)。ユーザーコントロールではありませんが、この特定のケースではそれらを使用しています...私は過度だと信じています!
パフォーマンスはその時点では関係ありません。効果的なのは、ページ上のすべてのコントロールを持つのと同じです。実際の問題は、ページが行う作業の量だけです。これが唯一のパフォーマンス上の考慮事項です。 UserControlにあるかどうかは関係ありません。 –
ユーザーコントロールについて何もできない場合は、カスタムコントロールの一部に変換することができますか?プリコンパイルが役立つかどうかは分かりませんが、単なる考えです。 – johnofcross