Microsoft Dynamics CRM плагины (Plug-Ins) и расширения (Add-Ons)

Microsoft Dynamics CRM – одна из наиболее распространенных CRM систем. Существенным преимуществом данной системы перед конкурентами является гибкая возможность расширяться и модифицироваться, используя как внутренние возможности настройки системы, так и внешние расширения. В Microsoft Dynamics CRM возможно реализовать гибкий функционал интеграции с внешними бухгалтерскими системами, с системами документооборота, с call-центрами, и почтовыми серверами.
Довольно распространенной является ситуация, когда стандартных возможностей Microsoft Dynamics CRM не хватает или не получается настроить работу некоторых объектов или сущностей в системе. Бывает, что необходимо переделать поведение определенных сущностей, из-за специфики бизнес процессов Заказчиков.
В этих нетривиальных случаях, консультанты и разработчики CRM используют плагины (Plug-Ins) и расширения (Add-Ons), назначение которых и разницу между данными сущностями мы и рассмотрим. При разработке данных программных продуктов есть также ряд ограничений, некоторые из которых я постараюсь кратко описать.

Плагины (Plug-Ins) – это настраиваемая бизнес логика, которую Вы можете интегрировать в Microsoft Dynamics CRM, чтобы изменить стандартное поведение платформы. При помощи плагинов производится прерывание и подмена существующих обработчиков событий CRM. Плагины широко используются для интеграции CRM с другими программными системами.

Расширения (Add-Ons) – это разрабатываемые в виде отдельных проектов надстройки над CRM, позволяющие вводить новые сущности и объекты, а также новые формы модификации этих сущностей в CRM.

Плагины обычно не имеют визуальных форм надстройки системы. В противоположность плагинам, расширения могут включать визуальные формы. Плагины и расширения после разработки встраиваются в CRM.

Все объекты, сущности и структуры CRM хранятся в базе данных. Плагины и расширения должны быть реализованы с использованием CRM SDK. CRM SDK – это API для разработчиков, позволяющее управлять различными объектами CRM. Формально, возможно реализовать прямое подключение к базе данных в обход CRM SDK. Этим возможно пользоваться в плагинах и расширениях, разрабатываемых для внутренних нужд. Но не желательно. Нельзя реализовывать прямое подключение к базе данных Microsoft Dynamics CRM в обход SDK в плагинах, которые будут распространяться для клиентов. Плагины и расширения, использующие прямое подключение, нельзя будет зарегистрировать в Microsoft.
Кроме этого, при прямом соединении с базой данных CRM, будет нарушена схема безопасности и прав пользователей Microsoft Dynamics CRM. Это происходит из-за того, что при прямом соединении с базой данных, оператору будут доступны все объекты, разрешенные пользователю базы данных, которого Вы используете для подключения.
При прямом соединении с базой данных также тяжелее поддержать обработку событий в CRM, которые могут вызывать определенные процессы. Эта поддержка усложняется, так как добавление в базу данных производится напрямую в таблицы. И соответственно внутренние обработчики событий CRM будут либо не срабатывать, либо срабатывать, но не во всех случаях.

Плагины и расширения – это NET сборки. Для разработки плагинов и Add-On используют инструментальную среду Visual Studio. Технология разработки – ASP. В качестве языков программирования C# или Visual Basic NET. Плагины и расширения должны быть оформлены особым образом в соответствии с требованиями Microsoft. В этом оформлении – множество нюансов, которые будут влиять на поведение приложения. Я остановлюсь на этом подробнее в следующих публикациях.


При разработке визуальных форм расширений CRM необходимо сделать внешний вид этих форм так, чтобы эти формы вписывались в существующий дизайн CRM, а поведение компонентов должно быть аналогичным поведению стандартных CRM компонентов. В этом есть некоторая сложность, так как Microsoft, к сожалению, не предоставляет таких компонентов для разработчиков. И, поэтому, различные разработчики самостоятельно дорабатывают существующие традиционные компоненты среды разработки, подгоняя поведение этих компонентов под поведение стандартных CRM компонентов. У кого-то из разработчиков это получается лучше, а у кого-то хуже. Но, пользователи Microsoft Dynamics CRM, в любом случае, привыкли к стандартному поведению компонентов и в своих расширениях желательно этой методологии придерживаться.

Если разрабатывать плагины и расширения ориентированные на несколько продаж (а не для разового внедрения), то непременно придется столкнуться с вопросами генерации инсталляционных ключей и лицензирования разрабатываемого программного продукта на определенное количество пользователей. Обычно, стоимость продукта зависит от количества пользователей, используемых данный продукт. В данном случае возможны два подхода. В первом подходе при инсталляции проверять количество пользователей в Microsoft Dynamics CRM. И требовать у клиента покупать столько лицензий, сколько пользователей в CRM. Второй подход – более гибкий, при первом запуске плагина или расширения определенным пользователем, привязывать купленную лицензию к данному пользователю. В этом случае – клиент платит только за лицензии тех пользователей, которые реально пользуются плагином или расширением.

Свяжитесь с нами