Visual Studio のプロジェクトとソリューションの概念がわかりません
-
09-06-2019 - |
質問
Eclipse には、すべてのプロジェクトを含むワークスペースがあります。各プロジェクトは個別にビルドおよびコンパイルされます。プロジェクトは別のプロジェクトと対話しません。
これは Visual Studio およびそこにあるプロジェクト/ソリューションとどのように関連していますか?
解決
VS プロジェクトはそれ自体がエンティティです。自動的にビルドおよびコンパイルされます。ソリューションは、複数のプロジェクトを含める単なる方法です。プロジェクトは、必ずしも他のプロジェクトをコンパイルする必要はありません (ただし、他のプロジェクトに依存する場合もあります)。
これにより、概念的にプロジェクトを 1 つの大きなプロジェクトにグループ化できるようになります。たとえば、別のテスト プロジェクトを作成できます。これは実際のプロジェクトのコードに依存するため、実際のプロジェクトと一緒に保持する必要がありますが、同じ exe/dll 内にある必要はありません。
他のヒント
各 VS プロジェクトは、単一の EXE または DLL をビルドします。ソリューションは、関連するプロジェクトの単なるコレクションです。
したがって、VS プロジェクト:Eclipse プロジェクト::VS ソリューション:Eclipse ワークスペースになります。
別の見方をすると、ソリューションはプロジェクトのコンテナーです。私の仕事のほとんどでは、各層をソリューション内のプロジェクトとして作成し、ツリーは次のようになります。
- 私の Web アプリまたは Win アプリ
- プレゼンテーション層
- ファイル...
- ビジネス層
- ファイル...
- データアクセス
- ファイル
- プレゼンテーション層
あなたのマイレージは異なる場合があります
@トーマス・オーエンズ:
はい、Eclipse を使用している一部の (ほとんどの?) 人々は複数のワークスペースを持っています。初めて Eclipse を使い始めたときに私が最も驚いたのはこれでした。そのため、このコメントをより見やすくするためにここに返信します。
あなたを混乱させているかもしれないのは次のようなことです。
VS2003 では、すべてにプロジェクト ファイルとソリューション ファイルがありました。1 つのプロジェクトを含むソリューションがある場合は、ソリューションを開いて 1 つのプロジェクトを確認できます。プロジェクトを開くと、プロジェクトを含む新しいソリューション ファイルの作成が試行されます。ただし、Web プロジェクトと Winform プロジェクトにはすべてプロジェクトとソリューションがありました。
VS2005 では、これが少し変更されました。デフォルトでは、Web プロジェクトにはプロジェクト ファイルが存在しなくなりました。彼らは、プロジェクト ファイルを好まない一部の Web 開発者からフィードバックを受けていました。彼らの見解は、ファイルがディレクトリ内にある場合、それはアプリの一部であるというものでした。VS2005 の出荷後、プロジェクト ファイルの概念を気に入った開発者からさらに多くのフィードバックが得られたため、パッチを適用して戻しました。これは、VS2005 における「Web サイト」と「Web アプリケーション」です (今ではどちらがどちらなのか思い出せません)。
さらに、VS2005 では、プロジェクトが 1 つしかないソリューションを開いている場合、ソリューション エクスプローラーにはソリューションがあることさえ表示されず、プロジェクトのみが表示されます (ソリューション内に存在しないかのように) )。2 番目のプロジェクトを追加した後でのみ、両方を含むソリューションがあることがわかります。
つまり、基本的には正しい方向に進んでいます。ソリューションとプロジェクトは、Visual Studio でも Eclipse での場合と同じように機能します。それは、状況を混乱させるいくつかの癖があるだけです。
ソリューションには 0 個または多数のプロジェクトがあります...
Visual Studio 2008 には、Web プロジェクトの種類が多すぎます。Web サイト プロジェクトとWeb アプリケーション プロジェクトには、さまざまな方法で制限がかかります。これは、Microsoft が 1 つの強力なソリューションに焦点を当てるのではなく、あまりにも多くの選択肢を提供している良い例です。Web サイトのプロジェクト オプション内でも、アプリケーションをコンパイルするには少なくとも 3 つの異なる方法があります。
ソリューション エクスプローラーでソリューションが表示されることが常にイライラするわけではないことがわかりました。[オプション] -> [プロジェクトとソリューション] -> [一般] に「常にソリューションを表示」という設定があって便利です。