Я не понимаю концепцию проектов и решений Visual Studio.
-
09-06-2019 - |
Вопрос
В Eclipse у меня есть рабочее пространство, содержащее все мои проекты.Каждый проект собирается и компилируется отдельно.Проект не взаимодействует с другим проектом.
Как это связано с Visual Studio и проектами/решениями там?
Решение
Проект VS — это отдельная сущность.Он будет собирать и компилировать сам.Решение — это просто способ объединить несколько проектов.Проекты не обязательно нуждаются в компиляции других проектов (хотя они могут зависеть от других проектов).
Это просто позволяет вам концептуально группировать проекты в один большой проект.Например, у вас может быть отдельный проект тестирования.Это зависит от кода реального проекта и должно храниться вместе с реальным проектом, но не обязательно находиться в одном exe/dll.
Другие советы
Каждый проект VS создает один EXE-файл или DLL.Решение — это просто набор связанных проектов.
Итак, проект VS: Проект Eclipse:: Решение VS: Рабочая область Eclipse.
Другой взгляд на это заключается в том, что решение — это контейнер для проектов.В большинстве случаев я создаю каждый уровень как проект внутри решения, поэтому мое дерево выглядит так:
- Мое веб-приложение или Win-приложение
- Уровень представления
- файлы...
- Бизнес-уровень
- файлы...
- Доступ к данным
- файлы
- Уровень представления
Ваш пробег может отличаться
@Томас Оуэнс:
Да, некоторые (большинство?) людей, использующих Eclipse, имеют более одного рабочего пространства.Это удивило меня больше всего, когда я впервые начал использовать Eclipse, поэтому я отвечаю здесь, чтобы сделать этот комментарий более заметным.
Вас может сбить с толку следующее:
В VS2003 все имело файл проекта и файл решения.Если бы у вас было Решение с одним Проектом, вы могли бы открыть Решение и увидеть один Проект.Если вы откроете проект, он попытается создать новый файл решения, содержащий проект.Но у всех веб-проектов и проектов Winform были проекты и решения.
В VS2005 это немного изменилось — теперь по умолчанию веб-проекты больше не имеют файлов Project.Они получили отзывы от некоторых веб-разработчиков, которым не нравились файлы Project: они считали, что если файл находится в каталоге, то он является частью приложения.После выпуска VS2005 они получили больше отзывов от разработчиков, которым понравилась идея файла проекта, поэтому они вернули ее обратно.Это «Веб-сайт» и «Веб-приложение» в VS2005 (и я не могу вспомнить, что есть что сейчас).
Кроме того, в VS2005, если у вас открыто решение только с одним проектом, вы не увидите в обозревателе решений вообще существования решения, вы увидите только проект (как если бы его не было в решении). ).Только после добавления второго проекта вы увидите, что существует решение, содержащее их оба.
Итак, в целом вы были на правильном пути: решения и проекты работают в Visual Studio так же, как и в Eclipse, просто есть некоторые особенности, которые сбивают с толку.
Решение имеет 0 или несколько проектов...
В Visual Studio 2008 слишком много типов веб-проектов.Существуют проекты веб-сайтов и проекты веб-сайтов.Проекты веб-приложений, и они ограничивают вас по-разному.Это хороший пример того, как Microsoft предлагает слишком много вариантов вместо того, чтобы сосредоточиться на одном надежном решении.Даже в рамках проекта веб-сайта существует как минимум 3 различных способа компиляции вашего приложения.
Я обнаружил, что не всегда видеть решение в обозревателе решений раздражает.В меню «Параметры» -> «Проекты и решения» -> «Общие» есть настройка «Всегда показывать решение», которая оказалась удобной.