Partilhar via


Passo a passo: Criar um aplicativo Web que se conecta ao Microsoft Dynamics CRM 2015 usando extensões do desenvolvedor

 

Publicado: novembro de 2016

Aplicável a: Dynamics CRM 2015

Esta explicação passo a passo demonstra como escrever um aplicativo Web simples que se conecta ao Microsoft Dynamics CRM 2015 e executa uma transação básica de criação de contato.

É possível encontrar o código de exemplo criado por esta explicação passo a passo na pasta Sdk\Walkthroughs\Portal\WebAppWalkthrough.

Neste tópico

Gerencie tipos early bound

Configure o projeto do aplicativo Web no Visual Studio

Crie uma página da Web – Grade de contato 1

Crie outra página da Web – Grade de contato 2

Crie um serviço de dados do WCF

Crie uma página da Web – Formulário de contato 1

Crie outra página da Web – Grade de contato 3

Gerencie tipos early bound

  1. Execute a ferramenta CrmSvcUtil.exe com a extensão Microsoft.Xrm.Client.CodeGeneration para gerar as classes de entidade e os contextos de serviço. O seguinte comando de exemplo cria um arquivo chamado “Xrm.cs”, que aponta para uma instância do Microsoft Dynamics 365. Observe que, ao executar o comando, o arquivo Microsoft.Xrm.Client.CodeGeneration.dll deverá estar no mesmo diretório que o arquivo CrmSvcUtil.exe ou no cache do assembly global do sistema. O primeiro exibido aqui é para uma organização local, enquanto o segundo comando é para uma organização do CRM Online. Ambos os comandos devem ser executados como uma linha de comandos única sem quebras de linha.

        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
    

    Dica

    A ferramenta CrmSvcUtil está disponível na pasta Bin do download do SDK ou com a instalação do pacote Microsoft.CrmSdk.CoreToolsNuGet.

Configure o projeto do aplicativo Web no Visual Studio

  1. Crie um novo projeto do aplicativo Web ASP.NET no Microsoft Visual Studio. Este exemplo usa “WebAppWalkthrough” como o nome do projeto.

    Criar aplicativo Web no Visual Studio

  2. Adicione as seguintes referências da pasta SDK\bin. Você pode ignorar esta etapa e a seguinte simplesmente instalando o pacote 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. Adicione as seguintes referências do .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. Clique com o botão direito no projeto do Visual Studio, clique em Adicionar e em Item existente.

  5. Selecione o arquivo “xrm.cs” criado quando os tipos early bound foram gerados.

  6. Edite o arquivo web.config para registrar a seção <microsoft.xrm.client>. É necessário adicionar uma seção ao nó de configSections da configuração, conforme mostrado aqui.

    <configuration>
      <configSections>
        <section name="microsoft.xrm.client"
          type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client" />
    
  7. Edite o arquivo web.config com o contexto e a cadeia de conexão específicos. Para a cadeia de conexão, defina o nome para “Xrm”. Na seção <microsoft.xrm.client>, adicione um contexto com o nome “Xrm” e defina o tipo para o namespace e o nome do contexto de serviço fornecidos na Etapa 1 ao configurar o projeto do aplicativo Web. O exemplo a seguir é Xrm.XrmServiceContext e a parte do assembly do tipo é o nome do aplicativo 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. Adicione o seguinte à seção <controls> do arquivo web.config para registrar os controles do Microsoft.Xrm.Portal com este aplicativo Web.

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

Crie uma página da Web – Grade de contato 1

Crie uma página da Web básica que exiba todos os contatos do sistema do Dynamics 365 em uma grade de dados do ASP.NET.

  1. Clique com o botão direito no projeto e adicione um novo formulário da Web chamado “WebForm_LinqDataSource.aspx”.

  2. Adicione o seguinte à nova 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. Crie o projeto.

  4. Clique com o botão direito na página aspx e selecione Exibir no navegador. Os resultados deverão ser semelhantes ao seguinte:

    Exibir no navegador

Crie outra página da Web – Grade de contato 2

Crie uma página da Web que exiba os contatos do sistema do Dynamics 365 em uma grade de dados do ASP.NET baseada em uma definição de exibição do Dynamics 365.

  1. Clique com o botão direito no projeto e adicione um novo formulário da Web chamado “WebForm_SavedQueryDataSource.aspx”.

  2. Adicione o seguinte à nova página aspx.

    <crm:SavedQueryDataSource ID="ActiveContacts" SavedQueryName="Active Contacts" runat="server" />
    <asp:GridView DataSourceID="ActiveContacts" runat="server" />
    
  3. Crie o projeto.

  4. Clique com o botão direito na página aspx e selecione Exibir no navegador. Esta página usará a definição de exibição “Contatos ativos” para retornar os registros e exibir os atributos da exibição em um controle de GridView do ASP.NET. Os resultados deverão ser semelhantes ao seguinte:

    Exibir no navegador

Crie um serviço de dados do WCF

Crie um serviço de dados do WCF para o Microsoft Dynamics 365.

  1. Clique com o botão direito no projeto e adicione um novo Serviço de Dados do WCF chamado ”CrmData.svc“:

    Criar serviço de dados

  2. É necessário apontar o serviço de dados do WCF para o XrmServiceContext criado no início da explicação passo a passo. Edite o arquivo CrmData.svc.cs da seguinte forma:

    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;
            }
        }
    }
    

Crie uma página da Web – Formulário de contato 1

Crie uma página da Web que renderize um formulário de entrada de dados de contato com base em uma definição de exibição do Microsoft Dynamics 365:

  1. No Dynamics 365, acesse Configurações, Personalizações e Personalizar o sistema. Crie uma nova exibição da entidade contact chamada “Criar formulário da Web do contato”.

    Criar uma página da Web

  2. Adicione colunas à exibição que você deseja exibir como campos no formulário gerado.

  3. Clique em Salvar e publicar.

  4. Clique com o botão direito no projeto do Microsoft Visual Studio e adicione um novo formulário da Web chamado “WebForm_FromSavedQuery.aspx”.

  5. Adicione o seguinte código à nova 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. Crie o projeto.

  7. Clique com o botão direito na página aspx e clique em Exibir no navegador. Os resultados deverão ser semelhantes ao seguinte:

    Exibir no navegador

Crie outra página da Web – Grade de contato 3

Crie uma página da Web que usa code behind para conectar uma fonte de dados do Microsoft Dynamics 365 a um controle de GridView do ASP.NET.

  1. Clique com o botão direito no projeto e adicione uma nova página da Web chamada “WebForm_CodeBehindDataSource.aspx”.

  2. Adicione o seguinte código à nova 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 o arquivo code-behind WebForm_CodeBehind.aspx.cs da seguinte forma:

    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. Crie o projeto.

  5. Clique com o botão direito na página aspx e clique em Exibir no navegador. Os resultados deverão ser semelhantes ao seguinte:

    Exibir no navegador

Confira Também

Guia do desenvolvedor para o portal do Microsoft Dynamics CRM 2015
Instruções passo a passo do portal do Dynamics CRM 2015

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais