Formulário da Web e associação de dados do ASP.NET
Publicado: novembro de 2016
Aplicável a: Dynamics CRM 2015
Uma das tecnologias de programação da Web mais populares são os formulários da Web do ASP.NET, que associam dados aos controles. As Extensões do Desenvolvedor para o Microsoft Dynamics CRM 2015 apresentam uma série de mecanismos que facilitam a criação de um formulário da Web do ASP.NET, que é associado aos dados do Microsoft Dynamics 365.
Neste tópico
Usar o contexto CrmService e o controle LinqDataSource
Usar o controle CrmDataSource e FetchXML
Usar o controle CrmMetadataDataSource
Usar a associação de dados code-behind
Usar consultas salvas em um portal
Usar o contexto CrmService e o controle LinqDataSource
As práticas recomendadas para o uso das Extensões do Desenvolvedor para o Microsoft Dynamics CRM 2015 é executar a ferramenta de geração de código CrmSvcUtil.exe com a extensão Microsoft.Xrm.Client.CodeGeneration para gerar as classes de objeto de transferência de dados e contexto de serviço que correspondem ao modelo de entidade do Microsoft Dynamics 365. A classe de contexto de serviço inclui uma interface IQueryable para cada entidade do Dynamics 365 da solução. A classe de contexto de serviço pode ser facilmente usada com o controle LinqDataSource do ASP.NET para facilitar a associação declarativa de dados que não precisem de nenhum code-behind. Defina o atributo ContextTypeName do controle LinqDataSource para o nome do tipo do contexto de serviço e defina o atributo TableName para o nome da propriedade da entidade que deseja consultar. Depois que os dados do Microsoft Dynamics 365 forem associados ao controle da fonte de dados, é possível usar qualquer controle de associação de dados do ASP.NET para exibir os dados, incluindo repetidores e o controle GridView.
O código a seguir usa um controle LinqDataSource que será associado aos contatos do Dynamics 365, exibindo-os com um GridView. Esse mesmo exemplo pode ser visualizado em Passo a passo: Criar um aplicativo Web que se conecta ao Microsoft Dynamics CRM 2015 usando extensões do desenvolvedor.
<?xml version="1.0" encoding="utf-8"?>
<!--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>
Isso mostra os seguintes resultados em HTML.
Usar o controle CrmDataSource e FetchXML
Se você não deseja usar a ferramenta CrmSvcUtil.exe para gerar um objeto de transferência de dados e contexto de domínio, é possível usar Microsoft.Xrm.Client.CrmOrganizationServiceContext.
Os seguintes exemplos usam o FetchXml para consultar o Microsoft Dynamics 365 e o controle CrmDataSource para a associação aos dados do Dynamics 365. Os resultados são exibidos em um controle GridView. Observe que DataItem na exibição de grade é do tipo Entity. Para associar às colunas nos resultados, converta Container.DataItem em uma classe Entity ou associe-o às propriedades no indexador padrão usando Eval("[attribute-logical-name]").
<crm:CrmDataSource ID="Contacts" runat="server">
<FetchXml>
<fetch>
<entity name="contact" />
</fetch>
</FetchXml>
</crm:CrmDataSource>
<asp:GridView DataSourceID="Contacts" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField HeaderText="Full Name">
<ItemTemplate>
<asp:Label Text=''
<%# Eval("[fullname]") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Created On">
<ItemTemplate>
<asp:Label Text=''
<%# Eval("[createdon]") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Modified">
<ItemTemplate>
<asp:Label Text=''
<%# Eval("[modifiedon]") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<crm:CrmDataSource ID="Contacts" runat="server">
<FetchXml>
<fetch>
<entity name="contact" />
</fetch>
</FetchXml>
</crm:CrmDataSource>
Isso mostra os seguintes resultados em HTML.
Usar o controle CrmMetadataDataSource
O controle CrmMetadataDataSource permite a associação de dados aos metadados do Microsoft Dynamics 365. A finalidade mais útil é associar uma lista suspensa a um conjunto de opções do Dynamics 365 usado em um formulário de dados que esteja coletando dados para serem armazenados no Dynamics 365.
O exemplo a seguir demonstra o uso do controle CrmMetadataDataSource para a associação a três conjuntos de opções separados na entidade case (incident) do Dynamics 365.
<h2>Incident Picklists</h2>
<h3>Priority</h3>
<crm:CrmMetadataDataSource ID="PriorityCodes" runat="server"
EntityName="incident"
AttributeName="prioritycode" />
<asp:DropDownList runat="server"
DataSourceID="PriorityCodes"
DataTextField="OptionLabel"
DataValueField="OptionValue" />
<h3>Satisfaction Rating</h3>
<crm:CrmMetadataDataSource ID="SatisfactionCodes" runat="server"
EntityName="incident"
AttributeName="customersatisfactioncode" />
<asp:DropDownList runat="server"
DataSourceID="SatisfactionCodes"
DataTextField="OptionLabel"
DataValueField="OptionValue" />
Isso mostra os seguintes resultados em HTML.
Usar a associação de dados code-behind
Os exemplos anteriores usaram os controles específicos da fonte de dados que implementam a associação declarativa de dados. A classe XrmServiceContext também pode ser usada com a associação de dados com as técnicas de code-behind. O contexto de serviço gerado pela ferramenta CrmSvcUtil.exe (com a extensão Microsoft.Xrm.Client.CodeGeneration) tem propriedades IQueryable para todas as entidades do Dynamics 365. É possível escrever consultas .NET LINQ (Language-Integrated Query) padrão ou usar expressões com essas propriedades e associá-las diretamente aos repetidores ou controles DataGrid.
Para obter mais informações:Passo a passo: Criar um aplicativo Web que se conecta ao Microsoft Dynamics CRM 2015 usando extensões do desenvolvedor
Usar consultas salvas em um portal
O Microsoft Dynamics 365 tem a capacidade de permitir ao cliente salvar uma consulta ou exibição para recuperação futura. A exibição apresenta a ordem e as definições das colunas, ordem de classificação e opções de filtro. É uma técnica conveniente permitir aos usuários configurar uma exibição no Dynamics 365; em seguida, um desenvolvedor pode usar o controle SavedQueryDataSource para a associação a essa exibição e usar um controle GridView com a propriedade AutoGenerateColumns ativada. Isso permite a um desenvolvedor soltar uma exibição do Dynamics 365 diretamente em uma página da Web e gerenciar o conteúdo da exibição no Microsoft Dynamics 365. Assim, os usuários de negócios podem alterar o conteúdo da exibição, sem a necessidade de ter um desenvolvedor para fazer uma alteração na página da Web e promover uma nova versão do site para o servidor de produção.
Para obter um exemplo disso, além de um exemplo de como gerar um formulário de entrada de dados a partir de uma consulta salva com o controle CrmEntityFormView, consulte Passo a passo: Criar um aplicativo Web que se conecta ao Microsoft Dynamics CRM 2015 usando extensões do desenvolvedor.
Confira Também
Guia do desenvolvedor para o portal do Microsoft Dynamics CRM 2015
Preparar-se para desenvolvimento do portal (Dynamics CRM 2015)
Gerenciar o conteúdo do portal (Dynamics CRM 2015)
Autenticação de portal (Dynamics CRM 2015)
Usar a ferramenta Website Copy (Dynamics CRM 2015)
Instruções passo a passo do portal do Dynamics CRM 2015
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais