Tutorial: Crear una aplicación web conectada a Microsoft Dynamics CRM 2015 mediante extensiones para desarrolladores 

Publicado: noviembre de 2016

Se aplica a: Dynamics CRM 2015

Este tutorial muestra cómo escribir una aplicación web sencilla que se conecta a Microsoft Dynamics CRM 2015 y realiza una transacción de creación de contactos básica.

Puede encontrar el código de muestra que genera este tutorial en la carpeta Sdk\Walkthroughs\Portal\WebAppWalkthrough.

En este tema

Generación de tipos de enlace de tiempo de compilación

Configurar el proyecto de aplicación web en Visual Studio

Crear una página web: cuadrícula de contactos 1

Crear otra página web: cuadrícula de contactos 2

Crear servicio de datos WCF

Crear una página web: formulario de contacto 1

Crear otra página web: cuadrícula de contactos 3

Generación de tipos de enlace de tiempo de compilación

  1. Ejecute la herramienta CrmSvcUtil.exe, con la extensión Microsoft.Xrm.Client.CodeGeneration, para generar las clases de entidad y los contextos de servicio. El siguiente comando de ejemplo crea un archivo llamado "Xrm.cs" que señala a una instancia de Microsoft Dynamics 365. Tenga en cuenta que el archivo Microsoft.Xrm.Client.CodeGeneration.dll debe estar en el mismo directorio que el archivo CrmSvcUtil.exe, o en la memoria caché de ensamblados global del sistema, al ejecutar este comando. El primer comando que se muestra aquí es para una organización local mientras el segundo comando es para una organización de CRM Online. Ambos comandos deben ser ejecutados como una sola línea de comandos sin saltos de línea.

    CrmSvcUtil.exe 
    /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration" 
    /out:Xrm\Xrm.cs 
    /url:http://Crm/Contoso/XRMServices/2011/Organization.svc 
    /domain:CONTOSO 
    /username:administrator 
    /password:pass@word1 
    /namespace:Xrm 
    /serviceContextName:XrmServiceContext
    
    CrmSvcUtil.exe
    /codeCustomization:"Microsoft.Xrm.Client.CodeGeneration.CodeCustomization, Microsoft.Xrm.Client.CodeGeneration"
    /out:Xrm.cs /url:https://<mydomain>.api.crm.dynamics.com/XRMServices/2011/Organization.svc
    /username:<myusername>@<mydomain>.onmicrosoft.com /password:<mypassword> /namespace:Xrm /serviceContextName:XrmServiceContext
    

    Sugerencia

    La herramienta CrmSvcUtil está disponible en la carpeta Bin de la descarga de SDK o instalando el paquete Microsoft.CrmSdk.CoreToolsNuGet.

Configurar el proyecto de aplicación web en Visual Studio

  1. Cree un nuevo proyecto de aplicación web ASP.NET en Microsoft Visual Studio. Este ejemplo usa "WebAppWalkthrough" como nombre de proyecto.

    Crear una aplicación web en Visual Studio

  2. Agregue las siguientes referencias desde la carpeta de SDK\bin. Puede omitir este paso y el siguiente instalando simplemente el paquete Microsoft.CrmSdk.ExtensionsNuGet.

    • AntiXSSLibrary.dll

    • Microsoft.Crm.Sdk.Proxy.dll

    • Microsoft.Xrm.Client.dll

    • Microsoft.Xrm.Portal.dll

    • Microsoft.Xrm.Portal.Files.dll

    • Microsoft.Xrm.Sdk.dll

  3. Agregue las siguientes referencias desde .NET.

    • System.IdentityModel.dll

    • Microsoft.Data.Entity.dll

    • System.Data.Services.dll

    • System.Data.Services.Client.dll

    • System.Runtime.Caching.dll

    • System.Runtime.Serialization.dll

  4. Haga clic con el botón derecho en Visual Studio, haga clic en Agregar y, a continuación, haga clic en Elemento existente.

  5. Seleccione el archivo "xrm.cs" creado al generar los tipos enlazados en tiempo de compilación.

  6. Edite el archivo web.config para registrar la sección <microsoft.xrm.client>. Necesitará agregar una sección al nodo configSections de configuración como se indica aquí.

    <configuration>
      <configSections>
        <section name="microsoft.xrm.client"
          type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client" />
    
  7. Edite el archivo web.config con la cadena de conexión y el contexto específicos. Para la cadena de conexión, ajuste el nombre en "Xrm". En la sección <microsoft.xrm.client> agregue un contexto con el nombre "Xrm" y establezca el tipo en el espacio de nombres y el nombre de contexto de servicio que ha indicado en el paso 1 al configurar el proyecto de la aplicación web. En el siguiente ejemplo es Xrm.XrmServiceContext y la parte de ensamblado del tipo es el nombre de la aplicación web, "WebAppWalkthrough".

    <connectionStrings>
      <add name="Xrm" connectionString="Server=http://crm/contoso; Domain=CONTOSO; Username=Administrator; Password=pass@word1" />
    </connectionStrings>
    <microsoft.xrm.client>
      <contexts>
        <add name="Xrm" type="Xrm.XrmServiceContext, WebAppWalkthrough" />
      </contexts>
    </microsoft.xrm.client>
    
  8. Agregue lo siguiente a la sección <controls> del archivo web.config para registrar los controles de Microsoft.Xrm.Portal con esta aplicación web.

    <system.web>
      <pages>
        <controls>
          <add tagPrefix="crm" namespace="Microsoft.Xrm.Portal.Web.UI.WebControls" assembly="Microsoft.Xrm.Portal" />
    

Crear una página web: cuadrícula de contactos 1

Cree una página web básica que presente todos los contactos de su sistema Dynamics 365 en una cuadrícula de datos de ASP.NET.

  1. Haga clic con el botón derecho en el proyecto y agregue un nuevo formulario web denominado "WebForm_LinqDataSource.aspx".

  2. Agregue lo siguiente a la nueva página aspx:

    <!--This example lists all contacts from the Microsoft Dynamics CRM system. -->
    <asp:LinqDataSource ID="Contacts" ContextTypeName="Xrm.XrmServiceContext" TableName="ContactSet" runat="server" />
    <asp:GridView DataSourceID="Contacts" AutoGenerateColumns="false" runat="server">
        <Columns>
            <asp:TemplateField HeaderText="First Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("firstname")%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Last Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("lastname")%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="City">
                <ItemTemplate>
                    <asp:Label Text='<%#Eval("address1_city") %>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    
  3. Cree el proyecto.

  4. Haga clic con el botón derecho en la página aspx y seleccione Ver en el explorador. Los resultados deberán tener un aspecto similar al siguiente:

    Ver en el explorador

Crear otra página web: cuadrícula de contactos 2

Cree una página web que presente los contactos de su sistema Dynamics 365 en una cuadrícula de datos ASP.NET basada en una definición de vista Dynamics 365.

  1. Haga clic con el botón derecho en el proyecto y agregue un nuevo formulario web denominado "WebForm_SavedQueryDataSource.aspx".

  2. Agregue lo siguiente a la nueva página aspx.

    <crm:SavedQueryDataSource ID="ActiveContacts" SavedQueryName="Active Contacts" runat="server" />
    <asp:GridView DataSourceID="ActiveContacts" runat="server" />
    
  3. Cree el proyecto.

  4. Haga clic con el botón derecho en la página aspx y seleccione Ver en el explorador. Esta página usará la definición de vista "Contactos activos" para devolver registros y mostrar los atributos de la vista en un control de ASP.NET GridView. Los resultados deberán tener un aspecto similar al siguiente:

    Ver en el explorador

Crear servicio de datos WCF

Cree un servicio de datos WCF para Microsoft Dynamics 365.

  1. Haga clic con el botón derecho y agregue un nuevo servicio de datos WCF denominado "CrmData.svc":

    Crear servicio de datos

  2. Es necesario indicar el servicio de datos WCF en el XrmServiceContext creado al principio de tutorial. Edite el archivo CrmData.svc.cs de la siguiente manera:

    namespace WebAppWalkthrough
    {
        public class CrmData : DataService<Xrm.XrmServiceContext>
        {
            // This method is called only once to initialize service-wide policies.
            public static void InitializeService(DataServiceConfiguration config)
            {
                config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
                config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
                config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
            }
        }
    }
    

Crear una página web: formulario de contacto 1

Cree una página web que represente un formulario de entrada de datos de contactos en función de una definición de vista de Microsoft Dynamics 365:

  1. En Dynamics 365, diríjase a Configuración, Personalizaciones y Personalizar el sistema. Cree una nueva vista de la entidad de contact llamada "Crear formulario web de contactos".

    Creación página web

  2. Agregue columnas a la vista que desee que se muestre como campos en el formulario generado.

  3. Haga clic en Guardar y publicar.

  4. Haga clic con el botón derecho en el proyecto web en Microsoft Visual Studio y agregue un nuevo formulario web denominado "WebForm_FromSavedQuery.aspx".

  5. Agregue el código siguiente a la nueva página aspx:

    <asp:ScriptManager runat="server" />
    <crm:CrmDataSource ID="Contacts" runat="server" />
    <crm:CrmEntityFormView DataSourceID="Contacts" EntityName="contact" SavedQueryName="Create Contact Web Form" runat="server" />
    
  6. Cree el proyecto.

  7. Haga clic con el botón derecho en la página aspx y haga clic en Ver en el explorador. Los resultados deberán tener un aspecto similar al siguiente:

    Ver en el explorador

Crear otra página web: cuadrícula de contactos 3

Cree una página web que use código subyacente para conectar un origen de datos Microsoft Dynamics 365 a un control GridView ASP.NET.

  1. Haga clic con el botón derecho en el proyecto y agregue una nueva página web denominada "WebForm_CodeBehindDataSource.aspx".

  2. Agregue el código siguiente a la nueva página aspx.

    <asp:GridView ID="ContactsGridView" AutoGenerateColumns="false" runat="server">
        <Columns>
            <asp:TemplateField HeaderText="First Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("firstname")%>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Last Name">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("lastname") %>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="City">
                <ItemTemplate>
                    <asp:Label Text='<%# Eval("address1_city") %>' runat="server" />
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    
  3. Edite el archivo de código subyacente WebForm_CodeBehind.aspx.cs de la siguiente manera:

    using System;
    using System.Linq;
    using Xrm;
    
    namespace WebAppWalkthrough
    {
        public partial class WebForm_CodeBehind : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                var xrm = new XrmServiceContext("Xrm");
    
                //Use all contacts where the email address ends in @example.com.
                var exampleContacts = xrm.ContactSet
                    .Where(c => c.EMailAddress1.EndsWith("@example.com"));
    
                ContactsGrid_CodeBehind.DataSource = exampleContacts;
                ContactsGrid_CodeBehind.DataBind();
            }
        }
    }
    
  4. Cree el proyecto.

  5. Haga clic con el botón derecho en la página aspx y haga clic en Ver en el explorador. Los resultados deberán tener un aspecto similar al siguiente:

    Ver en el explorador

Ver también

Manual de desarrollador de portal para Microsoft Dynamics CRM 2015
Tutoriales de portal para Dynamics CRM 2015

© 2017 Microsoft. Todos los derechos reservados. Copyright