質問

Webアプリケーションプロジェクト、クラスライブラリ、データベースプロジェクト、およびテストで1つのソリューションがありますか?または、それを複数のソリューションに分割していますか?なぜですか?

Visual Studio 2010のこのシナリオを合理化しようとしているので、私は質問しています。どのように働きたいかについてコミュニティから意見をもらいたいと思います。

役に立ちましたか?

解決

私は(常にではないが)ジョブごとに1つのソリューションを使用する傾向がありますが、一般的なユーザーコントロールやクラスを保持するWebControlLibraryなど、他のソリューションから既存のプロジェクトをインポートします

仕事に対する私の実際のソリューションは、Webアプリケーション、ビジネスロジック層、データアクセス層、エンティティ層に分類される傾向があります。例:

Solution
...MyCompany.WebControlLibrary
...Project
...Project.BusinessLogic
...Project.DataAccess
...Project.Entities
...Project.Scripts
...Project.Testing
...Project.Deployment

プロジェクトでモバイルデバイスなどが必要な場合は、常に新しいソリューションに入れますが、現在のソリューションのプロジェクトを共有する可能性があります。つまり、

MobileSolution
...MobileProject
...Project.Entities
...MobileProject.BusinessLogic

結合する「もの」が多いほど、Visual Studioの構築は遅くなります。デフォルトで特定のプロジェクトのビルドを明らかに停止できますが、それは独自のビルド構成の作成を開始する必要があるときです。大規模なアプリケーションを作成する場合は、複数のソリューションに分割することをお勧めします。ビルド構成を変更し続けるソリューションを簡単に切り替えることができます。

もう1つのオプションは、プロジェクトをビルドするときにDLLを参照できることです。ビルド構成の作成、つまりDebugまたはReleaseフォルダーからDLLを選択することを心配する必要がないため、前述のプロジェクトをソリューションにインポートすることを好みます。

他のヒント

スタンドアロンライブラリは、独自のソリューションになります。これらのライブラリの参照は、作業しているプロジェクトに作成できます。 Webアプリケーション、テストセットアップ、データアクセスやビジネスルールなどの特定のライブラリなどの関連アイテムは、1つのソリューション内のプロジェクトとしてセットアップできます。それは本当に、あなたがどれだけ持続可能性のために物事を壊したいかにかかっています。

これは、プロジェクトが実行するジョブに少し依存します。

使いやすくするために、必要なすべてのプロジェクトを含むソリューションを作成するのは簡単です。これが大規模なソリューションである場合、IDEが遅くなり、屋根を突き抜けるまでに時間がかかると、後で障害になります。

プロジェクトの1つが、カード支払いと3Dセキュアとのインターフェースを取るために会社で使用されるライブラリであるとします。詳細を確認するための独自のGUIページを提示します。

すべてがカード支払いを行うサイトが多数ある場合、このプロジェクトを個別のソリューションに組み込み、コンパイル済みのdllを参照することにより、大きなメリットが得られます。必要な変更は、ソリューションを開き、変更を加え、ビルドし、作業中のソリューションに移動してテストする必要があります。ピタのように聞こえますが、すべてを1つの大きなソリューションにまとめる方が簡単です。ただし、すべてのソリューションにこのライブラリがあり、一般的な変更を行う場合は、その変更を最後まで繰り返す必要があります。

したがって、同じソリューションで別のプロジェクトを開発するか、他の場所で使用される可能性のあるプロジェクトを開発するかを決定する必要があります。ライブラリが提供する以上の機能が必要な場合は、プロジェクトに部分クラスを実装し、その方法でライブラリを拡張できます。または、ラッパークラスで十分な場合もあります。ただし、このライブラリを使用する他のサイトに影響を与えていないことがわかっているため、開発中にメモリプリントを小さくすることで、ソリューションをより小さく管理しやすくします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top