Насколько я понимаю, у меня есть две проблемы:
1. Как структурировать проект Sitecore
Я работаю разработчиком sitecore уже более 3 лет. Исходя из моего опыта, лучшая практика - это создать один проект Sitecore, который является высшим уровнем вашего решения.
Вам не нужно устанавливать dll-файлы sitecore для всего проекта, просто сохраните старый код как есть и включите его в базовый код. Например, я только что закончил проект, в который клиент хочет перейти, используя Sitecore,
решение уже было, оно имеет 4 проекта:
- ABC.Web ==> самый высокий слой
- ABC.Data ==> работа со слоем данных
- ABC.Services => уровень бизнес-обработки
- ABC.Domain ==> Общий слой
Мы создали новый проект, который должен установить dll Sitecore, который на самом деле заменит ABC.Web (самый высокий уровень), который будет содержать весь код Sitecore MVC и ничего не заменит на старый код.
С этого момента мы можем работать как с данными из старой системы (ссылаясь на библиотеки ABC.Services), так и с Sitecore.
2. Как установить необходимые файлы в производство для поддержки нескольких сайтов?
Sitecore поддерживает мультисайты, структурируя дерево контента Sitecore и конфигурацию litte. Вам НЕ ТРЕБУЕТСЯ создавать отдельные сайты в IIS,
на самом деле это ОДИН сайт с разными доменами. В файле конфигурации с именем SiteDefinition.config (или вы можете добавить свой собственный файл конфигурации) вы в основном задаете домен с начальным элементом. Sitecore распознает домен, который совпадает с доменом в файле конфигурации, и перенаправляет на
начальный элемент соответственно. Например. В изображении я создал 2 сайта (по сути, это 2 ветви дерева контента sitecore) с начальными элементами (MySite1 и MySite2)
![enter image description here](https://i.stack.imgur.com/WXl69.png)
это мой конфиг
<sites>
<site name="MySite1" patch:before="site[@name='website']"
virtualFolder="/"
physicalFolder="/"
rootPath="/sitecore/content"
startItem="/content/MySite1/home"
database="web"
domain="extranet"
allowDebug="true"
cacheHtml="true"
htmlCacheSize="50MB"
enablePreview="true"
enableWebEdit="true"
enableDebugger="true"
disableClientData="false"/>
<site name="MySite2" patch:before="site[@name='website']"
virtualFolder="/"
physicalFolder="/"
rootPath="/sitecore/content"
startItem="/content/MySite2/home"
database="web"
domain="extranet"
allowDebug="true"
cacheHtml="true"
htmlCacheSize="50MB"
enablePreview="true"
enableWebEdit="true"
enableDebugger="true"
disableClientData="false"/>
</sites>
Вы можете обратиться к этому руководству для более подробной информации
https://briancaos.wordpress.com/2010/03/01/working-with-multiple-sites-in-sitecore/