私は2年半のVB.Netの経験があります。ほとんどの場合、独学で教えられます。私はあなたがこれを始める前にお茶を飲むことをお勧めします。これはかなり長い時間がかかっているようです...VB.Netアプリケーションを分割するかどうかを決定する方法と、分割する方法を決定する方法はありますか?
私は現在、15000行以上のコードのかなり大きなアプリケーション(VB.Netウェブサイト)を持っています。最後のカウント。そのような小売りや何か複雑なことはありません。それは文字通り、管理フロントエンド、カタログ/カタログ管理システム、およびページビューシステムを備えた卸売業の閲覧用ウェブサイトです。
.NETアプリケーションがバックグラウンドでどのように動作しているかはよく分かりません。すべて同じスレッドにロードされている場合でも、スレッドごとにロードされている場合もあります。次のように少なくとも:-) ...私は考えるのが好き
は、基本的には自分のアプリケーションが設定されています
- 2つの異なる領域があります - 顧客地域と行政のフロントエンドが。
- 顧客フロントエンドの主要部分はカタログです。 MasterPageは製品のリストをロードしますが、それはすべてです。これはすべての顧客フロントエンドページに共通しています。
- 変更をアップロードする前に、一度に1つまたは複数のアプリケーションで作業する傾向があります。たとえば、カタログの階層を変更し、階層の変更に合わせてカタログページを変更し、それ以外はすべて残しておくことができます。
- ページビューデータベースは非常に大きくなっています。そのため、アプリケーションが最初に要求されたときに動作が遅くなっています。
- アプリケーションのタイムアウトは5分に設定されています。変更方法はわかりません。私はここでこの質問をしてみましたが、ソリューションが非常に複雑であり、変更しないことを覚えているようです顧客は最後のページビューの5分後にアプリケーションを要求し、アプリケーションを最初からリロードします。これは、5分間の非アクティブを超えるたびに非常に遅いページロードがあることを意味します。
私はこれがすべてであれば、アプリケーションを分割するために最善の方法を決定するために考慮が必要な場合はわからないが、次のようにカタログシステムの各部分が設定されています
- Managerクラス管理者フロントエンドが指定された型の項目を追加、編集、削除するために使用する最上位レベルと、指定された型の項目のリストを取得するための顧客フロントエンドです。たとえば、「RangeManager」には製品範囲のリストが含まれ、顧客のフロントエンドからこれらの製品と対話するために使用されます。
- 属性のリストを含むItemクラス(Rangeなど)。たとえば、Name、Description、Visible、Created、CreatedByなどです。追加/編集のためのフォームはこれらを介してループし、管理者に関連するコントロールを表示します。たとえば、BooleanAttributeのチェックボックス。
- AttributeAttribute、BooleanAttribute、IntegerAttributeなどのタイプの属性クラスです。また、RangeAttribute、UserAttributeなどのカスタム属性(データ型だけでなく)もあります。これらには、最初に要求されたときに含まれているアイテムに固有のデータを取得するために使用されるデータフィールドが与えられます。基本的にItemには、最初に要求されたときにのみAttributesによって格納され、アクセスされるDataRowが与えられます。
- 特定のマネージャから1つのアイテムが要求されると、マネージャはデータベース内のすべてのアイテムをループし、アイテムクラスの新しいインスタンスを作成します。たとえば、RangeManagerからRangeが要求されると、RangeManagerはRangesテーブルのすべてのDataRowをループし、それぞれのRangeの新しいインスタンスを作成します。上で述べたように、DataRowですべてのデータをそこにロードするのではなく、単に新しいインスタンスを作成します。属性自体は、最初に要求されたときにDataRowから関連するデータをフェッチします。
はそれだけでは、再コンパイルして(例えば、私が設定した場合、アプリケーション全体に私はマイナーなバグや背後にあるコードである単語のスペルの間違いを修正するたびにアップロードする、私の心の中で、少しは愚かなようですラベルのテキストは動的に)。カタログページへの修正/変更は、現在のように顧客がコンタクトページを表示しようとしている可能性があります。これは、カタログページとは全く関係なく、同じMasterPageを持つことによるものではなく、DLLアップロードされています。
基本的に私の質問は、私の現在の状況を考えれば、アプリケーションを複数のアプリケーションに分割する方法でアプリケーションのアーキテクチャをどのように変更することを提案するのでしょうか?私は顧客/管理者、顧客/管理者、ページビュー、あるいは他の何かの方法だろうか?それとも全く?ここで言及していない他の選択肢はありますか? Webサービスはここに便利なのでしょうか?カタログ自体を別のアプリケーションに分割し、他のすべてのページのマスターページにWebサービスを使用して、左側に一覧表示する製品の名前を取得するようにしますか?私はちょうど方法を複雑すぎるものにしていますか?この質問の長さで判断すると、これは初めてではありません...私はそれを短くしようとしていますが、いつも失敗します。:-)
事前に感謝します。私はちょうどあなたを完全に混乱させた場合は申し訳ありません!読書によって
よろしく、
リチャード
私は誰かがおそらくこの質問の長さのためにあなたに悲しみを与えるだろうと思う:) –
これはASP.NETですか?あなたはウェブサイトとマスターページを何度も持っていると言いますが、私はVB.NETが明示的に言及していることしか見ていません。 –
@El Ronnoco:なぜ私は何度か謝罪し、それを読む前にお茶を飲むことを勧めました! :) @Cody:私はその後、.netタグを削除します。私に瞬間を与えてください... – ClarkeyBoy