保守が困難になった ASP.NET Web アプリケーションがあり、それを再設計する方法についてのアイデアを探しています。これは、お客様ごとに高度にカスタマイズできる従業員管理システムです。それが今どのように機能するかを説明しましょう:
デフォルトのページには、ユーザーが従業員の作成やタイムシートの表示などのタスクを選択できるメニューがあります。例として、Create Employee を使用します。
ユーザーがメニューから [従業員の作成] を選択すると、選択したメニュー項目に対して動的に読み込まれたユーザー コントロールを含む ASPX ページが読み込まれます。たとえば、従業員の作成の場合、AddEmployee.ascx になります。
ユーザーがコントロールで [保存] をクリックすると、既定のページに移動します。
一部のメニュー項目には複数のステップが含まれるため、ユーザーが複数ステップのフローで [次へ] をクリックすると、フローの次のページに移動し、最終ステップに到達するまで同様に続き、[保存] をクリックするとデフォルト ページに移動します。
従業員の作成フロー (SecurityClearance.ascx など) で追加の手順が必要なお客様もいれば、不要なお客様もいます。
異なる顧客が同じ ASCX ユーザー コントロールを使用する場合があるため、AddEmployee.OnInit でその顧客のフィールドをカスタマイズできます。つまり、特定のフィールドを非表示、読み取り専用、または必須にすることができます。
次の項目は、顧客ごとにカスタマイズできます。
- メニュー項目
- 各フローのステップ (ascx コントロール名)
- 各 ascx の隠しフィールド
- 各 ascx の必須フィールド
- 各 ascx に関連するルール。これにより、その顧客のコードで特定のロジックを使用できます。
カスタマイズは、顧客ごとに 7500 行にも及ぶ巨大な XML ファイルに保持されます。
このようにアプリケーションをカスタマイズするために使用できるフレームワークまたはルール エンジンはありますか? 他のアプリケーションは、顧客ごとのカスタマイズをどのように管理していますか?