2009-05-17 20 views
3

私は主にイントラネットでの使用、つまり組織のローカルエリアネットワーク内で使用するためのASP .NET 2.0(C#)ベースのWebアプリケーションを構築しています。ASP.NET Webアプリケーション - 1ページに5000行のコードがありますか?

ユーザーインターフェイスに関して、私が選択する必要がある2つのアプローチがあります。

  1. は、そうでない場合は別の.aspxページに入っていた分類されたコンテンツを表示するASP .NET AJAX 1.0コントロール(モーダルポップアップ)の多くで、1ページのWebアプリケーションをビルドします。

  2. 従来のアプローチを使用して、複数のページを作成します。

1ページのUIが非常にクールに感じられます。しかし、私はスケーラビリティに関して疑問を持っています。

アプリケーションはLAN経由での使用を前提としていますが、Webアプリケーションなので、クライアントが望む場合はインターネット経由で使用する可能性があります。

、1ページのUIのおかげでこれが成長しようとしている単一.aspxページ内のコードの約2600行とコードビハインド(.aspx.cs)内のコードの別の1600行

が既にあります - 最大10,000行のコード(10,000 in。aspxと10,000 in。aspx.cs)。だから私は知っておく必要があります - どのくらいのASP .NETベースのページのためにあまりにも - イントラネットとインターネットアクセスのための2600 + 1600行のコードは大丈夫ですか?約10,000行のコードはどうですか?ボトルネックとは何ですか?この単一ページのアプローチは大丈夫ですか、従来の複数ページアプローチに戻す必要がありますか?

+8

あなたが探している答えは「いいえ、それは正しくない」と思います。 –

+0

さて、どのくらいですか? 2600 + 1600は受け入れ可能ですか? 一般にASP .NETページまたはWebページの場合、パフォーマンスの問題につながる前にLOCに比喩的な制限がありますか? これまでのページサイズは180 KBです...そのカットオフ値は何ですか? – Sameet

+0

ASP.NETページは、プレゼンテーションロジックとプレゼンテーションロジックに関するものでなければなりません。ビジネスロジック、モデル操作などは、別のクラスに属します。 –

答えて

4

私が言うことを言う前に、私はこれが良い考えだとは思わないと述べたいと思います。 5kまたは10k行のすべてのクラス(ASP.NET)かどうかはリファクタリングする必要があります。 ここには、ダウンロード時間が長すぎると主張するコメントがたくさんあります。 5k行のコードが埋め込まれた.aspxファイル、またはコードの後ろに5k(またはその両方)のファイルがあるからといって、これだけでダウンロード時間が重要になるわけではありません。これらのコード行はコンパイルされ、サーバー上で実行され、クライアントには渡されません。したがって、ダウンロードするコードの行数の間に直接の関係はありません。

サイード・イブラヒムHashimi

マイブック:機能やセクションによって異なるファイルにInside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

はい、生成されたhtmlは約900行です。 – Sameet

+0

stackoverflowの自身のこのページのために生成されたHTMLは、1300本の以上のラインであるのに対し、... – Sameet

3

このような膨大な膨大な単一ページのダウンロード時間の増加にかかわらず、維持するのは絶対的な悪夢となります。私はブラッドに同意する、単一ページのアプローチは正しくない。そして、私は1つのコードビハインドで10k +ラインを正当化する方法について考えることはできません。

+1

あなたのコメントに追加したいだけです:モジュール性は、従うべき重要なパラダイムです。使用するコンポーネントを使用可能なチャンクに分解してください。あなたはまだコードを維持する必要があるので、狂ってはいけませんが、私はその多くのコードで疑わしいでしょう、あなたは神オブジェクトのアンチパターンが起こっています。 http://en.wikipedia.org/wiki/God_object –

+0

ダウンロード時間は、分離コードのページ/サイズ上のコントロールの数に比例しない:ビューステートは無効/非表示になっているコントロールがクライアントにレンダリングされませんを意味します。 – Ian

0

どのくらいそれがあまりにも多く、答えが不可能です。量だけでなく、コードの品質も重要です。確かに言えることは、大量のコードを1つのページに入れると、コードを維持する際に問題が発生することです。アプリケーションを扱う複数の開発者がいる場合は、別々のファイルを簡単に更新するのではなく、ソース管理システムの変更を非常に頻繁にマージする必要があります。

アプリケーションを単一のページとして実装する場合でも、別の動作をコードの背後にカプセル化して、別のクラスにカプセル化して、ページで必要に応じて使用することを強く推奨します。しかし、私は個人的にアプリケーションを設計して、別々の動作も別々のページに分かれるようにしました。

1

私は恐ろしい解決策のように思えますが(あなたのDAOはビューに埋め込まれていると思います)、実際のコードを見直さずに言うことはできません。

あなたは他の意見や他のオプションを探す感覚がありました...スケーラビリティに関するあなたの懸念は有効です。

アプリケーションのレイヤリングについて慎重に考えてください ...モノリシックソリューションは、WMLビューをサポートするという点で「適切に階層化された」ソリューションにどのようにスタックされますか?あなたは、単一のWebページのすべての機能を持っている必要がある場合

2

、私は別のASCXコントロールにコードを移動し、1つのaspx内のすべてのASCX年代を組み合わせることをお勧め

あなたは常にuderstandしようとする人々について考えるshoud
1

あなたの後にあなたのアプリを変更するあなたのコード。とにかく私は1ページと思う - これは間違いなく受け入れられない。従来の複数ページアプローチはありません。アプリケーションに異なるアクションが含まれている場合は、「複数ページ」にする必要があります。

0

ViewStateに誰も言及していないのは驚きです。 ViewStateのサイズを最小限に抑えて(ascxコントロールを使用して動的にロードする)、うまく設計された「1ページソリューション」がうまくいくと思います。

0

1ページに10kのコードが多すぎる(うまくいくかもしれませんが)このコードを維持できますか?私は誰もができると確信していません:)

0

あなたの番号は「OK」から分かります。実際に彼らはあなたに正直であるために悲惨です...

できるだけ多くの異なる概念をUserControlsにスタッフィングしてください。次に、ページの領域にUserControlを動的に読み込むためのステートフルなソリューションを作成します。

1

ないOK、スプリットのものまで。

これは、ユーザーコントロールが便利な場所です。 このページにビジネスロジックがある場合は、これをBLLに配置します。 DALと同じです。

DAL、BLL、およびユーザーコントロールのすべてを分割した後は、すべてのメンテナンスがもっと楽になるはずです。

0

私は、.aspxに2K行、コードビハインドファイルに10,000+のページがあります。私はサイトの他のどこでも使用されず、いくつかのviewstate情報に依存する多くの機能を持っています。私の考えでは、この状況では、サーバが別のページなどで機能を検索するように求めるのではなく、パフォーマンスが向上すると思う。時には、あなたがしなければならないことを実行しなければならないと思う。できるだけ効率的にコードを作成してください。

+1

サーバが機能を検索するために持っていない、との機能は、別のページにすべきではありません。クラスの種類にかかわらず、そのような巨大なクラスのための弁解はありません。明らかに、その膨大な量のコードの単体テストは行いません。 –

関連する問題