2016-02-09 2 views
0

Мы пытаемся создать решения Dynamics CRM (онлайн-версию), следуя некоторым рекомендациям от microsoft - ALM best practices. Одна из рекомендаций - создать решение для основных объектов и сделать управляемый слой и функции сверху как отдельные решения.Динамическое развертывание CRM: управление зависимостями компонентов решений

Когда мы создаем объект, такой как «обратная связь с учетной записью», которая зависит от учетной записи - она ​​отлично вписывается в слой. Однако, если мы хотим перечислить всю обратную связь в форме учетной записи в качестве подзаголовка, тогда мы создаем зависимость от учетной записи -> Обратная связь с учетной записью. Это заставляет нас переместить функцию обратной связи аккаунта в основное решение. Если это будет продолжаться, и мы построим все больше зависимостей между сущностями, мы в конечном итоге переместим все в одно большое одно решение.

Что мы делаем неправильно здесь?

+0

Вы можете получить дополнительную помощь на programers.stackexchange.com, поскольку они больше подходят для вопросов концептуального дизайна. – Matthew

+0

Спасибо. Я тоже опубликую его там. –

ответ

0

Вы ничего не делаете неправильно. Просто примите это, например. entity Account может быть частью вашего ядра.

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

Я рекомендую развернуть ваше основное решение, содержащее объекты неуправляемый. Другие решения, содержащие рабочие процессы, сборки плагинов и этапы и т. Д., Могут быть развернуты отдельно в управляемых решениях.

На определенном уровне может оказаться полезным разбить модель сущности на отдельные решения. Когда вы это сделаете, вы можете либо распределить одни и те же основные сущности над этими решениями, либо принять решение о добавлении ваших основных объектов в базовое решение.

Во втором сценарии установка базового решения является обязательным условием для успешной установки других решений.

+0

Это делает все сущности моего экземпляра доступными для ядра, а остальные функции настройки переходят в новый пакет. Не будут ли неуправляемые объекты проблемой для обновлений? –

+1

Неуправляемые дают вам больше гибкости. Управляемые решения изначально были разработаны с использованием надстроек ISV. Требованием для надстроек было умение удалять их, не оставляя следов. Для расширений модели данных вашей компании это скорее недостаток, потому что удаление управляемого решения может также удалить таблицы, которые являются его частью, и уничтожить данные в нем. Кроме того, когда какие-то неуправляемые изменения управляемых объектов находят свой путь к вашей производственной системе, управляемые обновления для тех же объектов больше не могут быть импортированы. –

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