Проблема с большими решениями и сервисом завода
Моя команда разрабатывает службы WCF в Visual Studio 2008 с пакетом обновления 1 (SP1) с помощью Service Factory Modeling Edition. Проблема в том, что у нас так много сервисов для разработки, и мы поставили все в одно решение.
Спустя 250 проектов решение почти не загружается, и добавить его практически невозможно. Мы думали, что было бы хорошо разделить каждый сервис на собственное решение, но фабрика сервисов фактически не позволяет нам сделать это.
Мы генерируем код из нашего модельного проекта в другие наши проекты, но если мы пытаемся использовать несколько решений, мы не можем ссылаться на модельный проект, потому что он не может поддерживать сопоставления проекта, необходимые для генерации в нужном месте. И в нашем модельном проекте мы используем пару контрактов на совместное использование данных, поэтому разделение модельного проекта также не имеет смысла.
У нас сейчас так много проектов, что мы не можем по-настоящему повернуть назад и не использовать метод фабрики сервисов для выполнения всего.
Что нам делать?
3 ответа
На этом этапе вы должны разбить свои 250 проектов на группы и создать решение для каждого из них. Я рекомендую использовать ~25 проектов на решение. Используйте эти мини-решения для ежедневного редактирования.
Все еще возможно сделать полную сборку общего решения через msbuild и командную строку. Но VS не должен был обрабатывать столько проектов одновременно.
Я согласен с Джоном Сондерсом. Держите их маленькими. Кроме того, продолжайте работу в среде непрерывной интеграции, чтобы отслеживать ваши ошибки во время разработки.
Я удивлен, услышав это от тебя. Я использовал Service Factory в своей предыдущей работе, и мы создали отдельное решение для каждого набора услуг. В каждом решении мы создали одну или несколько моделей в модельном проекте.
Я рекомендую вам поэкспериментировать, создав пару новых SF-решений, добавив пару моделей и сгенерировав код. Посмотрите, не вызывает ли это каких-либо проблем.
Вы обсуждали это или создали проблему на CodePlex?