Procedura dettagliata: sviluppare un'applicazione Web che si connette a Microsoft Dynamics CRM 2015 tramite le estensioni per sviluppatori
Data di pubblicazione: novembre 2016
Si applica a: Dynamics CRM 2015
La procedura dettagliata illustra come scrivere un'applicazione Web semplice che si connette a Microsoft Dynamics CRM 2015 ed esegue una transazione crea contatto di base.
È possibile trovare il codice di esempio che tale procedura dettagliata produce nella cartella Sdk\Walkthroughs\Portal\WebAppWalkthrough.
In questo argomento
Generare tipi con associazione anticipata
Impostare il progetto dell'applicazione Web in Visual Studio
Creare pagina Web - Griglia 1 dei contatti
Creare un'altra pagina Web - Griglia 2 dei contatti
Creare un servizio dati WCF
Creare pagina Web - Modulo 1 dei contatti
Creare un'altra pagina Web - Griglia 3 dei contatti
Generare tipi con associazione anticipata
Eseguire lo strumento CrmSvcUtil.exe, con l'estensione Microsoft.Xrm.Client.CodeGeneration, per generare le classi dell'entità e i contesti del servizio. Il seguente comando di esempio crea un file denominato "Xrm.cs" che punta a un'istanza di Microsoft Dynamics 365. Si noti che quando si esegue questo comando, il file Microsoft.Xrm.Client.CodeGeneration.dll deve trovarsi nella stessa directory del file CrmSvcUtil.exe o nella Global Assembly Cache del sistema. Il primo comando indicato è per un'organizzazione locale mentre il secondo comando è per un'organizzazione CRM Online. Entrambi i comandi deve essere eseguita come singola riga di comando senza interruzioni di riga.
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
Suggerimento
Lo strumento di CrmSvcUtil è disponibile nella cartella Bin del download di SDK o installando il pacchetto Microsoft.CrmSdk.CoreToolsNuGet.
Impostare il progetto dell'applicazione Web in Visual Studio
Creare un nuovo progetto dell'applicazione Web ASP.NET in Microsoft Visual Studio. In questo esempio viene utilizzato "WebAppWalkthrough" come nome del progetto.
Aggiungere i seguenti riferimenti dalla cartella SDK\bin. È possibile ignorare questo passaggio e il successivo semplicemente installando il pacchetto 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
Aggiungere i seguenti riferimenti da .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
Fare clic con il pulsante destro del mouse sul progetto in Visual Studio, fare clic su Aggiungi e quindi su Elemento esistente.
Selezionare il file "xrm.cs" creato quando sono stati generati i tipi con associazione anticipata.
Modificare il file web.config per registrare la sezione <microsoft.xrm.client>. È necessario aggiungere una sezione nel nodo configSections della configurazione come illustrato di seguito.
<configuration> <configSections> <section name="microsoft.xrm.client" type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client" />
Modificare il file web.config con la stringa di connessione e il contesto specifici. Per la stringa di connessione, impostare il nome su "Xrm". Nella sezione <microsoft.xrm.client> aggiungere un contesto con il nome "Xrm" e impostare il tipo con il nome del contesto del servizio e dello spazio dei nomi specificati nel passaggio 1 al momento della configurazione del progetto dell'applicazione Web. Nel seguente esempio è Xrm.XrmServiceContext e la parte dell'assembly del tipo è il nome dell'applicazione 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>
Aggiungere le operazioni seguenti alla sezione web.config**<controls>** del file per registrare i comandi Microsoft.Xrm.Portal con l'applicazione Web.
<system.web> <pages> <controls> <add tagPrefix="crm" namespace="Microsoft.Xrm.Portal.Web.UI.WebControls" assembly="Microsoft.Xrm.Portal" />
Creare pagina Web - Griglia 1 dei contatti
Creare una pagina Web di base in cui vengono visualizzati tutti i contatti nel sistema Dynamics 365 in una griglia dei dati di ASP.NET.
Fare clic con il pulsante destro del mouse sul progetto e aggiungere un nuovo modulo Web denominato "WebForm_LinqDataSource.aspx".
Aggiungere le operazioni seguenti alla nuova pagina 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>
Creare un progetto.
Fare clic con il pulsante destro del mouse sulla pagina ASPX e selezionare Visualizza nel browser. I risultati saranno analoghi ai seguenti:
Creare un'altra pagina Web - Griglia 2 dei contatti
Creare una pagina Web di base in cui vengono visualizzati i contatti nel sistema Dynamics 365 in una griglia dei dati di ASP.NET basata su una definizione delle visualizzazioni del Dynamics 365.
Fare clic con il pulsante destro del mouse sul progetto e aggiungere un nuovo modulo Web denominato "WebForm_SavedQueryDataSource.aspx".
Aggiungere le operazioni seguenti alla nuova pagina ASPX.
<crm:SavedQueryDataSource ID="ActiveContacts" SavedQueryName="Active Contacts" runat="server" /> <asp:GridView DataSourceID="ActiveContacts" runat="server" />
Creare un progetto.
Fare clic con il pulsante destro del mouse sulla pagina ASPX e selezionare Visualizza nel browser. Questa pagina utilizzerà la definizione di visualizzazione "Contatti attivi" per restituire i record e visualizzare gli attributi della visualizzazione in un comando GridView di ASP.NET. I risultati saranno analoghi ai seguenti:
Creare un servizio dati WCF
Creare un servizio dati WCF per Microsoft Dynamics 365.
Fare clic con il pulsante destro del mouse sul progetto e aggiungere un nuovo servizio dati WCF denominato "CrmData.svc":
È necessario puntare al servizio dati WCF in corrispondenza di XrmServiceContext creato all'inizio della procedura dettagliata. Modificare il file CrmData.svc.cs come segue:
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; } } }
Creare pagina Web - Modulo 1 dei contatti
Creare una pagina Web che esegue il rendering di un modulo di immissione dati dei contatti in base a una definizione di visualizzazione di Microsoft Dynamics 365 :
In Dynamics 365 accedere a Impostazioni, Personalizzazioni e Personalizza il sistema. Creare una nuova visualizzazione per l'entità contact denominata "Crea modulo Web dei contatti".
Aggiungere colonne alla visualizzazione che si desidera che venga visualizzata come campi nel modulo generato.
Fare clic su Salva e pubblica.
Fare clic con il pulsante destro del mouse sul progetto Web in Microsoft Visual Studio e aggiungere un nuovo modulo Web denominato "WebForm_FromSavedQuery.aspx".
Aggiungere il codice seguente alla nuova pagina ASPX.
<asp:ScriptManager runat="server" /> <crm:CrmDataSource ID="Contacts" runat="server" /> <crm:CrmEntityFormView DataSourceID="Contacts" EntityName="contact" SavedQueryName="Create Contact Web Form" runat="server" />
Creare un progetto.
Fare clic con il pulsante destro del mouse sulla pagina ASPX e selezionare Visualizza nel browser. I risultati saranno analoghi ai seguenti:
Creare un'altra pagina Web - Griglia 3 dei contatti
Creare una pagina Web che utilizza codice nascosto per connettere un'origine dati di Microsoft Dynamics 365 a un comando GridView di ASP.NET.
Fare clic con il pulsante destro del mouse sul progetto e aggiungere un nuovo modulo Web denominato "WebForm_CodeBehindDataSource.aspx".
Aggiungere il codice seguente alla nuova pagina 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>
Modificare il file codice nascosto WebForm_CodeBehind.aspx.cs come segue:
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(); } } }
Creare un progetto.
Fare clic con il pulsante destro del mouse sulla pagina ASPX e selezionare Visualizza nel browser. I risultati saranno analoghi ai seguenti:
Vedere anche
Guida per sviluppatori del portale per Microsoft Dynamics CRM 2015
Procedure dettagliate dei portali per Dynamics CRM 2015
© 2017 Microsoft. Tutti i diritti sono riservati. Copyright