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. Второй подход – более гибкий, при первом запуске плагина или расширения определенным пользователем, привязывать купленную лицензию к данному пользователю. В этом случае – клиент платит только за лицензии тех пользователей, которые реально пользуются плагином или расширением.
Если будет интересно, то продолжение следует…
Довольно распространенной является ситуация, когда стандартных возможностей 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. Второй подход – более гибкий, при первом запуске плагина или расширения определенным пользователем, привязывать купленную лицензию к данному пользователю. В этом случае – клиент платит только за лицензии тех пользователей, которые реально пользуются плагином или расширением.
Если будет интересно, то продолжение следует…