Pull to refresh

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

Lumber room
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. В этом оформлении – множество нюансов, которые будут влиять на поведение приложения. Я остановлюсь на этом подробнее в следующих публикациях.

image

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

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

Если будет интересно, то продолжение следует…
Total votes 19: ↑3 and ↓16 -13
Views 2.1K
Comments 2

Клиент с поддержкой Linq для Microsoft Dynamics CRM (альтернатива клиенту из sdk)

.NET *C# *
При разработке одного из проектов, мне понадобилась интеграция с MS CRM… Посмотрев на стандартные механизмы запросов в msdn я понял, что это немного неудобно, а так как проект обещает быть длинным, и даже бесконечным (внутренняя автоматизация), я решил что использование QueryExpression в чистом виде приведет к серьезному увеличению трудозатрат и станет рассадником ошибок по невнимательности (так как разработчики по проекту будут частенько меняться — у кого есть время, тот и занимается).

Итак, было принято решение написать обертку над QueryExpression и добавить возможность построения fluent запросов как в EF. Сразу оговорюсь, что при написании этой обертки (где-то в середине) я нашел библиотеку из sdk которая предоставляет такую возможность — sdk crm client но посмотрев на нее повнимательнее я понял что там нет документации(!!!) и нескольких полезных возможностей, например: использование in в where, добавление условий к join и еще несколько помельче. Сравнительную таблицу приведу позже.

Так как проект обещает быть долгим, я все же решил дописать свою реализацию…

Читать дальше →
Total votes 7: ↑6 and ↓1 +5
Views 5K
Comments 0

Kiev Ciklum Dynamics: CRM developers’ internship course (participation is free)

Ciklum corporate blog
Ciklum Kiev is glad to invite you to take part in “Ciklum Dynamics: CRM developers’ internship course” .The course is designed for the students of the 4 and 5th course and University graduates who has profound knowledge in required fields. Internship presupposes after a short study to be involved in the business process.

We are waiting for you if you have:
• Good command of English (Upper Intermediate)
• Technical background (.NET, JavaScript, SQL)
• Business processes knowledge
• Experience in programming
image
Читать дальше →
Total votes 9: ↑2 and ↓7 -5
Views 1.5K
Comments 0

Обеспечиваем доступность пользовательских данных в Microsoft Dynamics CRM, используя Veeam Backup & Replication

Veeam Software corporate blog IT Infrastructure *Virtualization *Data recovery *Backup *
Translation
Tutorial
Не секрет, что Microsoft Dynamics CRM — довольно популярная (по последним данным 40 тыс. клиентов и 4,5 млн индивидуальных пользователей) система управления отношениями с клиентами как в крупных, так и в небольших компаниях. Для такого приложения с критически важной нагрузкой требуется соответствующая стратегия резервного копирования.

Сценарии развертывания Microsoft Dynamics CRM могут отличаться в разных компаниях, но все они будут включать три компонента:

  • Microsoft Active Directory (AD)
  • Microsoft SQL Server
  • Microsoft Dynamics CRM Server 2016

Каждый из этих серверов играет критическую роль в инфраструктуре CRM.

Сегодня мы расскажем, как с помощью резервного копирования и репликации Veeam максимально надежно защитить всю инфраструктуру CRM и, соответственно, данные о клиентах, рассмотрим роль каждого сервера и посмотрим, какие опции бэкапа и восстановления существуют для каждой роли. За подробностями просим под кат.
image
Читать дальше →
Total votes 7: ↑7 and ↓0 +7
Views 2.9K
Comments 2