まず、大学で Java を学んで以来 (私は 2005 年 12 月に卒業しました)、OO の多いプログラミング言語でプログラミングしたことはありません。卒業してから、FoxPro 2.5 - VFP9 でプログラミングしています。現在、私が働いている会社は、すべての FoxPro アプリケーションを C# に変換することを推進しています。
このプロジェクトの私の部分は、レポート解析アプリケーションを変換することです。VFP9 では、5 ~ 6 のフォーム (新しい C# フロントエンドを作成して置き換えたため、いずれも引き継がれません)、すべての標準メソッドを含む単一のBaseクラス、および約 575 の個別のパーサークラスで構成されます。 (そのうちのいくつかは、いくつかのパーサー固有の変数/プロパティを設定し、必要な基本クラスを呼び出すだけです)。一部のパーサーには独自のカスタム メソッドが含まれており、基本メソッドとグローバル プロパティを引き続き使用および操作します。
今、私の質問のために...
設計の観点から、新しい C# フロントエンドが、新しい C# ベース/パーサー クラス ライブラリ (DLL) を呼び出す複数の実行可能ファイル (3 ~ 5 個の EXE) を生成することを望みます。私の最初の考えは、Base_Code.cs と他の 575 個の parser.cs ファイル (H1.cs、H2.cs、H3.cs など) を含む 1 つのソリューション/プロジェクトを作成することでした。ただし、同僚が H1.cs を更新している間に Base_Code.cs を更新している可能性があるため、各 .cs ファイルを他のファイルとは独立してビルドする機能が必要です。
これをどのように構成するのが最善ですか?1 つのソリューションを保持して 576 個のプロジェクトを作成するか、それとも別のチームが現在試みているのと同じ名前空間をすべて使用して 576 個のソリューションを作成するか?
基本コードと各パーサー (これらはフロントエンド アプリケーションから渡されます) 全体で使用するいくつかのグローバル変数/プロパティがあります。ファイル パス、ファイル名などは静的であるため、これを考慮する必要があります。デザインを考えるときも考慮してください。
例の編集**
C# フロントエンドは、基本的にキュー システムとファイル/ステータス ビューアーです。このフロントエンドは、1 日を通して収集したレポートを「キューに入れます」。リストの一番上にあるレポートによって、必要な DLL が決まります。フロントエンド アプリケーションと DLL は完全に分離されています。
例: H00001_2342318.MSG - これは H00001 DLL を呼び出します H00002_3422551.MSG - これは H00002 DLL を呼び出します
各 H00001、H00002 など (合計 575 個の DLL) は、BASE DLL にあるメソッドを使用します。
H00001 DLL を更新する必要がある場合は、575 個の DLL すべてを再構築せずに更新する必要があります。