Солюшены и проекты в Visual Studio

aleks058

Вот че мне не нравится в студии - так это отсутствие возможности создавать глубокую древовидную структуру проекта.
Только один солюшен и в нем много проектов.
Вот есть у меня в солюшене 21 проект.
Причем, на самом деле, это три малозависимые сущности и круто было бы их разбить на три больших проекта.
Но один из них - главный и он использует другие два.
А чтобы эти два добавить, надо добавить референсы на все маленькие проектики, из которых состоят два неглавных больших.
А так бы я создал эти при больших проекта, добавил их в солюшен, а в каждом из этих больших по несколько маленьких, причем некоторые используются совместно.
Не удобно, короче, и в 2005 студии, насколько я понимаю, ничего в этом плане не изменилось.

Dasar

мы делали следующим образом: разносили код - по нескольким solution-ами - связывая их через условные post и pre-build-ы.
соответственно - каждый solution можно использовать, как независимо от остальных, так и вместе с остальными

aleks058

Так это гимор.
Не видно древовидной структуры.
Не отслеживаются зацикливания.
ЗЫ. А солюшены, от которых все зависело, перебилдивались сами?

Dasar

> А солюшены, от которых все зависело, перебилдивались сами?
одновременно использовались оба варианта

xz_post

а в чем гемор то ? у нас вот под 50 проектов в солюшене, и в каждом проекте до*уя папок, референсы все равно приходится один раз выставлять в начале разработки. Единственное - неудобно, что на уровне солюшена нет папок (исправлено в 2005 студии) - но пофигу ставишь решарпер и навигация между файлами проекта делается моментально... в итоге на солюшен экплорер воообще можно не тыкаться мышей. в любой момент я билдю максимум 5 проектов, чтобы быстро все было, + ставлю инкрементный билд, но с ним есть свои заморочки

aleks058

Как?
Студия это умеет?
Что надо написать?
Меня заинтересовало...

Dasar

я уже писал - через pre-build-ы и post-build-ы

Dasar

> а в чем гемор то ?
тем, что наличие большого монолитного проекта - очень связывает руки.

xz_post

мне кажется, что один большой проект это лучше чем десяток маленьких... все равно каждый девелопер использует свой солюшин и пихает только то что требуется
вопрос - ты в солюшене референс в проектах на что ставишь - на проекты или длл?

Dasar

> все равно каждый девелопер использует свой солюшин и пихает только то что требуется
не понял.
вот допустим есть один мега-solution - на 100 проектов, который лежит на source safe-е.
каким образом разработчики смогут надергать только необходимые им проекты, создавая свои solution-ы?
> вопрос - ты в солюшене референс в проектах на что ставишь - на проекты или длл?
Если проект в solution-е, то на проект.

xz_post

вот допустим есть один мега-solution - на 100 проектов, который лежит на source safe-е.
каким образом разработчики смогут надергать только необходимые им проекты, создавая свои solution-ы?
создаешь новый солюшен - добавляет в него нужные проекты, они друг-на друга ссылаются - это некоторая логическая группа... студия ведь для каждого проекта назначает уникальный гуид... и ей пофигу в каком солюшене проект - ссылки автоматически выставляются как надо.
я не знаю как правильно... но у нас так... еще есть один большой солюшен, - он только используется билд-сервером несколько раз в неделю...

xz_post

вообще, если длл-проект со своими сорцами - я стараюсь билдить его в составе солюшена, а не ссылаться на длл из-за глючности стулии(лочит блин длл-ки и если версии сборок инкрементируюся - возникает проблема с манифестом

Dasar

> создаешь новый солюшен - добавляет в него нужные проекты, они друг-на друга ссылаются - это некоторая логическая группа... студия ведь для каждого проекта назначает уникальный гуид... и ей пофигу в каком солюшене проект - ссылки автоматически выставляются как надо.
дык, вот и получается, что для того, чтобы поредактировать один проект - надо еще штук 30 проектов в solution добавить, т.к. наш проект зависит от 5 других - а те отследующих, и понеслась.
Поэтому проще - разносить на более менее независимые solution-ы - уменьшая связность.

xz_post

не фишка как раз в том чтобы выделить группу взаимосвязанных проектов в одну группу и поместить их в один солюшен. у МС есть на эту тему паттерны
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/tdlg_ch3.asp
так вот то что я говорил у них называется
Figure 3.3. The Partitioned Single Solution Model

xz_post

соответсвенно, есть 1 мастре солюшен, в котором есть все проекты, он билдится по скрипту, половина проектов из него - мне вообще по барабану...кто их сделал и зачем...

Dasar

> Figure 3.3. The Partitioned Single Solution Model
вот мы и используем Multi-Solution Model, потому что она позволяет при разработке отдельных проектов не забивать голову, как устроена вся система в целом.
Single solution-ы требуют, чтобы каждый разработчик знал обо всех исходниках и имел доступ ко всем исходникам.
Оставить комментарий
Имя или ник:
Комментарий: