プロジェクト内のコード編成のベストプラクティスを理解しようとしています。私はインターネットで良い例を探しましたが、これまでのところ、参照する1つまたは複数のサポートクラスライブラリを備えたWebプロジェクト、または名前空間の規則に従うサブフォルダーを備えたWebプロジェクトの例を見てきました。
正しい答えがないと仮定すると、これは私が現在コード編成のために持っているものです:
MyProjectWeb
これは私のウェブサイトです。ここでクラスライブラリを参照しています。
MyProject.DLL
基本名前空間として、一般的に消費可能である必要があるファイルにこのDLLを使用しています。たとえば、私のプロジェクトのすべての列挙型を含む私のクラス「列挙型」はそこにあります。すべての例外処理のクラスMyProjectExceptionも同様です。
MyProject.IO.DLL
これは、ファイルのアップロードとダウンロードを処理する20個のファイルのグループです(これまでのところ)。
MyProject.Utilities.DLL
私の一般的なクラスとメソッドはすべて、1つの一般的に消費可能なDLLにまとめられています。各クラスは、「SqlHelper、AuthHelper、SerializationHelperなどの「XHelper」規則に従います...
MyProject.Web.DLL
このDLLをメインのクライアントインターフェイスとして使用しています。現在、ここにあるクラスファイルの大部分は次のとおりです。
1)プロパティ(学校、場所、アカウント、投稿など)2)承認関連のもの(カスタムメンバーシップ、カスタムロール、カスタムプロファイルプロバイダーなど)
私の質問は単純です-これは論理的に見えますか?
また、あるプロジェクトライブラリから次のプロジェクトライブラリにDLLを相互参照する必要をなくすにはどうすればよいですか?たとえば、MyProject.Web.DLLはMyProject.Utilities.DLLのコードを使用し、MyProject.Utilities.DLLはMyProject.DLLのコードを使用します。これは、プロパティをクリックして[依存関係]を選択することで解決しますか?それを試しましたが、選択したアセンブリの名前空間にアクセスしていないようです。各クラスライブラリに必要なすべてのアセンブリを参照する必要がありますか?
ご回答いただきありがとうございます。今しばらくお待ちいただきますようお願いいたします。