Честно говоря, я не могу сформулировать свой вопрос лучше, не описав его.
- У меня есть базовый проект (со всей его славой, DLL, ресурсами и т. Д.), Который представляет собой CMS.
- Мне нужно использовать этот проект в качестве основы для других проектов выпекания.
- Этот базовый проект должен поддерживаться и обновляться среди всех пользовательских проектов выпечки.
- Я использую Subversion (Collabnet и Tortise SVN)
У меня есть два вопроса:
1 - Можно ли использовать Subversion для совместного использования базового проекта среди других проектов
То, что я имею в виду, это то, что я могу «оформить» базовый проект в другой проект «извлечен» и получить как обновление, так и фиксацию отдельно. Итак, чтобы нарисовать картинку, скажем, я работаю над нестандартным проектом и каким-то образом модифицирую основной / базовый проект (который, я знаю, подойдет другим) Могу ли я затем зафиксировать эти изменения и при если я обновлю базовый проект в других ресурсах «Извлечено», то потянет ли он изменения? Короче говоря, я не хотел бы вручную развертывать обновленные файлы ядра всякий раз, когда я вносил изменения в каждый отдельный проект.
2 - Если я создаю пользовательский файл (скажем, страницу webcontrol или aspx и т. Д.), Могу ли я его скомпилировать отдельно из базового проекта
Еще один хитрый для объяснения. Когда я публикую свое веб-приложение, оно создает библиотеки DLL на основе пространств имен прикрепленных к нему проектов. Таким образом, у меня может быть несколько библиотек DLL, включая DLL пространства имен «Веб-сайт», которая может быть просто веб-сайтом. Я хочу иметь возможность создавать отдельный, настраиваемый элемент управления, который не компилируется в эти библиотеки DLL, поскольку пользовательские файлы не должны полагаться на эти библиотеки DLL для запуска. Разве так просто установить отдельное пространство имен для таких файлов, как, например, CustomFiles.ProjectName?
Думайте о всей идее как о добавлении модулей в проект .NET, я не хочу, чтобы код модуля был в какой-либо из основных DLL, но мне нужно, чтобы модуль имел доступ к основным библиотекам.
(Для основного проекта не требуется доступ к коду модуля, поскольку это должно быть только в теории, только в одном случае, хотя я считаю, что в любом случае это было бы невозможно без использования JSON / SOAP или чего-то подобного, возможно, Я не прав.)
Я хочу создать подключаемую среду, очень похожую на среду Joomla / Wordpress, так как PHP обычно не нужно сначала компилировать. Я вижу, что по этой причине все это возможно / просто. Идея состоит в том, чтобы использовать подключаемые темы, модули и т. Д.
(Я не пробовал просто добавлять темы .NET после компиляции / публикации, но я предполагаю, что это все равно возможно? ИЛИ компилятору нужно ссылаться на элементы в файлах?)
ОБНОВЛЕНИЕ (16/05/2010):
Я опубликовал аналогичный вопрос с чуть более подробной информацией по вопросу 2 на Experts-Exchange . Я не хочу публиковать всю эту информацию здесь, поскольку она будет слишком беспорядочной, но она более подробно объясняет вопрос 2.