Веб-страница для CRM 2011
Разберем пример простой ASPX-странички, которая использует веб-сервис IOrganizationService, для создания контактов в CRM 2011.
Нам понадобятся:
- Visual Studio 2010;
- CRM 2011 SDK.
Поехали…
- Откройте Visual Studio 2010 и создайте новый проект веб-сайта ASP .NET Empty Web Site;
- Щелкните правой кнопкой мыши по веб-сайту — Add New Item. Добавьте Web Form (с именем index.aspx) и StyleSheet (с именем style.css);
- В index.aspx вставьте такой код:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="ContactEntry.index" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <link href="style.css" rel="Stylesheet" type="text/css" /> </head> <body> <form id="form1" runat="server"> <h3> <span>Контакт</span> </h3> <fieldset> <p class="first"> <label>Имя</label> <asp:TextBox ID="firstName" runat="server"></asp:TextBox> </p> <p> <label>Фамилия</label> <asp:TextBox ID="lastName" runat="server"></asp:TextBox> </p> <p> <label>Отчество</label> <asp:TextBox ID="middleName" runat="server"></asp:TextBox> </p> <p> <label>E-mail</label> <asp:TextBox ID="email" runat="server"></asp:TextBox> </p> <p> <label>Описание</label> <asp:TextBox ID="description" runat="server" Columns="30" Rows="10" TextMode="MultiLine"></asp:TextBox> </p> <p class="submit"> <asp:Button ID="create" runat="server" Text="Создать" onclick="create_Click" /> </p> </fieldset> </form> </body> </html>
Этот код содержит определение простой HTML-формы ввода данных, состоящую из нескольких полей ввода и кнопки «Создать»;
- В файл style.css добавьте такой код:
body { background: #f8f8f8; font: 13px Trebuchet MS, Arial, Helvetica, Sans-Serif; color: #333; line-height: 160%; } #form1 { margin: 1em 0; color: #fff; width: 350px; /* customize width, this form have fluid layout */ } h3 { margin: 0; background: #57a700; color: #fff; font-size: 20px; border: 1px solid #57a700; border-bottom: none; } h3 span { display: block; padding: 10px 20px; } fieldset { margin: 0; padding: 0; border: none; border-top: 3px solid #000; background: #000; padding-bottom: 1em; } p { margin: .5em 20px; } label { display: block; } input, #form1 textarea { width: 302px; border: 1px solid #111; background: #282828; padding: 5px 3px; color: #fff; } textarea { height: 125px; overflow: auto; } p.submit { text-align: right; } #create { padding: 0 20px; height: 32px; line-height: 32px; border: 1px solid #70ad2e; background: #5aae00; color: #fff; cursor: pointer; text-align: center; width: 100px; }
Здесь просто набор стилей для нашей странички;
- Перейдите в представление Design основного окна и дважды щёлкните на кнопке – это создаст и откроет метод create_Click в коде, который будет обрабатывать клик на кнопке. Добавьте следующий код внутрь метода create_Click:
// Логинимся под текущем пользователем ClientCredentials Credentials = new ClientCredentials(); Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials; // URL сервера и организации Uri OrganizationUri = new Uri("http://crm2011:5555/superfirma/XRMServices/2011/Organization.svc"); Uri HomeRealmUri = null; // OrganizationServiceProxy using (OrganizationServiceProxy serviceProxy = new OrganizationServiceProxy(OrganizationUri, HomeRealmUri, Credentials, null)) { IOrganizationService service = (IOrganizationService)serviceProxy; // Определяем объект Контакт Entity contact = new Entity("contact"); contact["firstname"] = firstName.Text.ToString(); contact["lastname"] = lastName.Text.ToString(); contact["middlename"] = middleName.Text.ToString(); contact["emailaddress1"] = email.Text.ToString(); contact["description"] = description.Text.ToString(); Guid newContactId = service.Create(contact); // очищаем текстовые поля firstName.Text = ""; lastName.Text = ""; middleName.Text = ""; email.Text = ""; description.Text = ""; }
- Добавьте в проект следующие сборки:
- Microsoft.Xrm.Sdk;
- Microsoft.crm.sdk.proxy;
- System.Runtime.Serialization;
- System.ServiceModel.
А в начало файла Default.aspx.cs следующие определения using:
using System.ServiceModel.Description; using Microsoft.Xrm.Sdk.Client; using System.Net; using Microsoft.Xrm.Sdk; using System.Runtime.Serialization;
- Создайте для сайта в папке C:\inetpub\ новую папку, назовите ее, например, ContactCreate.
Вернитесь в VS и опубликуйте сайт в созданную папку. Для этого в меню выберите Build – Publish ContactEntry и укажите путь к созданной папке; - Создайте в IIS новый сайт на не занятом порту. Для сайта сделайте следующие настройки:
- Для Application Pool: 4 .Net в классическом режиме и запуск под Network Services;
- Аутентификация сайта: включите Анонимную, .Net и Windows аутентификацию;
- В Default Document добавьте index.aspx.
Готово. Откройте в браузере созданный сайт (http://<имя_сервера>/<порт>), введите информацию по контакту и жмите Создать.