2011-12-01 1 views
0

Я собираюсь создать веб-приложение для внутреннего использования компанией. Я создал одну библиотеку классов «General.dll», содержащую абстрактные классы, такие как Person, EmailAddress и т. Д. Затем я создал «EmployeeManagement.dll», который включает в себя такие классы, как Employee: Person, EmployeeEmailAddress: EmailAddress и т. Д.Как я могу эффективно управлять библиотеками классов, которые ссылаются друг на друга?

My EmployeeManagement.dll ссылается на файл general.dll.

Тогда мое веб-приложение будет ссылаться на EmployeeManagement.dll.

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

+1

У вас нет всех проектов в одном решении в Visual Studio? –

+0

Спасибо. Я предполагаю, что моя главная проблема/непонятность заключается в том, что если у нас есть несвязанный будущий проект, который должен использоваться как General.dll, но он является частью другого решения целиком. Я мог бы создать отдельный файл General.dll для этого решения, но я нацелен на максимальную эффективность, не повторяя код нигде, по всей компании. Если кто-то подходит и говорит: «Мне жаль, что у меня не было общей библиотеки классов абстрактных классов ...», я могу просто сказать: «О, хватайте файлы в« общем »хранилище», и это может быть что-то совершенно отдельно от это веб-приложение. – CptSupermrkt

ответ

2

Для начала, если вы добавите все свои проекты в одно и то же решение в Visual Studio, тогда они будут автоматически перестраиваться по мере необходимости на основе зависимостей при внесении изменений.

Кроме того, во время разработки вы, вероятно, не хотите добавлять ссылку на конкретную версию сборки (это значение по умолчанию при выборе «Добавить ссылку»). Таким образом, любые изменения в вашей General.dll автоматически каскадируются в любой другой проект, который ссылается на следующую сборку.


Edit после обновления с OP

Вы совершенно свободны для повторного использования проектов в различных растворах. Таким образом, вы можете иметь ровно одну базу кода для файла General.dll и включать этот проект в любое его решение. В этом случае вы, конечно, должны быть осторожны при внесении изменений в файл General.dll, чтобы не повредить любой проект, который включает его (здесь может помочь утилита непрерывной интеграции).

+2

С примечанием, что вы должны добавить ссылки на «Проекты», а не на обычные DLL-файлы. И есть способ управлять зависимостями проекта, чтобы вы могли отремонтировать (или повредить) это автостроение. –

+0

Спасибо за информацию! Я сделал комментарий к моему оригинальному вопросу, который детализирует область, в которой я немного туманный, немного больше. – CptSupermrkt

+0

@CptSupermrkt Обновлено после вашего комментария –

Смежные вопросы