Разработка
27
Авг
2

CRM 2011 ConnectionDialog

CRM 2011 SDK содержит один полезный WPF контрол – ConnectionDialog. Этот контрол предназначен для создания подключения к CRM c использованием различных типов подключения. Найти его можно в Microsoft.Xrm.Client.dll.

Рассмотрим как можно использовать этот инструмент:

  • Создайте в VS новый WPF проект;
  • В свойствах проекта задайте .Net Framework 4;
  • Добавьте к проекту следующие сборки:
    • microsoft.xrm.sdk
    • microsoft.xrm.client
    • System.configuration
  • В начало проекта добавьте следующие директивы using:
    using Microsoft.Xrm.Client;
    using Microsoft.Xrm.Client.Configuration;
    using Microsoft.Xrm.Client.Windows.Controls.ConnectionDialog;
    using System.Configuration;
    
  • В конец метода MainWindow добавьте следующий код:
    ConnectionDialog dialog = new ConnectionDialog();
    dialog.Activate();
    var result = dialog.ShowDialog();
    if (result == true)
    {
        var connString = dialog.ConnectionString;
        var crmConnection = new CrmConnection(new ConnectionStringSettings("crm", connString));
        var orgService = CrmConfigurationManager.CreateService(crmConnection);
    }
    

    Здесь мы делаем следующее:

    • Сначала создаем ConnectionDialog и активируем его (так мы выводим его на передний план);
    • Затем мы выводим модальное окно, в котором пользователь выбирает тип соединения и вводит его параметры. Можно использовать также и немодальное окно, но чтобы быть уверенными, что пользователь не закроет его до ввода параметров, лучше использовать модальное;\
    • Если пользователь успешно заполнил мастер соединения, тогда результат будет установлен в истину, и мы используем ConnectionString из мастера для создания Organization Service. Теперь у нас есть доступ к службам.

Соберите проект и запустите его для проверки.




Комментарии (2)
  • Endymion 27.08.2012

    Здравствуйте, не могли бы вы подсказать как указать default значение url при запуске модального окна?

  • slivka_83 27.08.2012

    Добрый день.
    Боюсь я много с ним не разбирался, поэтому таких подробностей не знаю.

*

code