Delen via


Overzicht: Een webtoepassing maken die verbinding met Microsoft Dynamics CRM 2015 maakt met behulp van uitbreidingen voor ontwikkelaars

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

Dit overzicht laat zien hoe u een eenvoudige webtoepassing schrijft die verbinding met Microsoft Dynamics CRM 2015 maakt en een elementaire contactpersoontransactie maakt.

U vindt de voorbeeldcode die dit overzicht produceert, in de map Sdk\Walkthroughs\Portal\WebAppWalkthrough.

In dit onderwerp

Eerder gebonden typen maken

Uw webtoepassingsproject instellen in Visual Studio

Een webpagina maken - contactpersoonraster 1

Nog een webpagina maken - contactpersoonraster 2

Een WCF-gegevensservice maken

Een webpagina maken - contactpersoonformulier 1

Nog een webpagina maken - contactpersoonraster 3

Eerder gebonden typen maken

  1. Voer het CrmSvcUtil.exe-hulpprogramma met de uitbreiding Microsoft.Xrm.Client.CodeGeneration uit om uw entiteitklassen en servicecontexten te genereren. De volgende voorbeeldopdracht maakt een bestand met de naam "Xrm.cs" dat verwijst naar een exemplaar van Microsoft Dynamics 365. Houd er rekening mee dat het bestand Microsoft.Xrm.Client.CodeGeneration.dll zich in dezelfde map moet bevinden als het bestand CrmSvcUtil.exe, of in de algemene assemblycache van het systeem, wanneer u deze opdracht uitvoert. De eerste hier genoemde opdracht is voor een on-premises organisatie en de tweede opdracht is voor een CRM Online-organisatie. Beide opdrachten moeten worden uitgevoerd als één opdrachtregel zonder regeleinden.

    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
    

    Tip

    Het hulpmiddel CrmSvcUtil is beschikbaar in de map Bin van de SDK-download of door het pakket Microsoft.CrmSdk.CoreToolsNuGet te installeren.

Uw webtoepassingsproject instellen in Visual Studio

  1. Maak een nieuw ASP.NET-webtoepassingsproject in Microsoft Visual Studio. Dit voorbeeld gebruikt "WebAppWalkthrough " als projectnaam.

    Webtoepassing in Visual Studio maken

  2. Voeg de volgende referenties uit de map SDK\bin toe. U kunt deze stap en de volgende overslaan door het pakket Microsoft.CrmSdk.ExtensionsNuGet eenvoudig te installeren.

    • 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. Voeg de volgende referenties uit .NET toe.

    • 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. Klik met de rechtermuisknop op het project in Visual Studio, klik op Toevoegen en klik vervolgens op Bestaand item.

  5. Selecteer het bestand "xrm.cs" dat u hebt gemaakt toen u de eerder gebonden typen genereerde.

  6. Bewerk het bestand web.config om de <microsoft.xrm.client>-sectie te registreren. U moet een sectie in het knooppunt configSections van de configuratie toevoegen, zoals hier aangegeven.

    <configuration>
      <configSections>
        <section name="microsoft.xrm.client"
          type="Microsoft.Xrm.Client.Configuration.CrmSection, Microsoft.Xrm.Client" />
    
  7. Bewerk het bestand web.config met uw specifieke verbindingsreeks en context. Stel voor de verbindingsreeks de naam n op "Xrm". Voeg in de sectie <microsoft.xrm.client> een context met de naam "Xrm" toe en stel het type in op de naamruimte en de servicecontextnaam die u in stap 1 hebt opgegeven toen u het webtoepassingsproject maakte. In het volgende voorbeeld is het Xrm.XrmServiceContext en is het assemblygedeelte van het type de naam van uw webtoepassing, "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. Voeg het volgende aan de sectie <controls> van het bestand web.config toe om de Microsoft.Xrm.Portal-besturingselementen te registreren bij deze webtoepassing.

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

Een webpagina maken - contactpersoonraster 1

Maak een basiswebpagina met alle contactpersonen in uw Dynamics 365-systeem in een ASP.NET-gegevensraster.

  1. Klik met de rechtermuisknop op uw project en voeg een nieuw webformulier toe met de naam "WebForm_LinqDataSource.aspx".

  2. Voeg het volgende aan de nieuwe aspx-pagina toe:

    <!--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. Maak het project.

  4. Klik met de rechtermuisknop op de aspx-pagina en selecteer Weergeven in browser. Het resultaat moet lijken op het volgende:

    Weergeven in browser

Nog een webpagina maken - contactpersoonraster 2

Maak een webpagina met alle contactpersonen in uw Dynamics 365-systeem in een ASP.NET-gegevensraster op basis van een Dynamics 365-weergavedefinitie.

  1. Klik met de rechtermuisknop op uw project en voeg een nieuw webformulier toe met de naam "WebForm_SavedQueryDataSource.aspx".

  2. Voeg het volgende aan de nieuwe aspx-pagina toe.

    <crm:SavedQueryDataSource ID="ActiveContacts" SavedQueryName="Active Contacts" runat="server" />
    <asp:GridView DataSourceID="ActiveContacts" runat="server" />
    
  3. Maak het project.

  4. Klik met de rechtermuisknop op de aspx-pagina en selecteer Weergeven in browser. Deze pagina gebruikt de weergavedefinitie "Actieve contactpersonen" om de records te retourneren en de kenmerken van de weergave weer te geven in een ASP.NET GridView-besturingselement. Het resultaat moet lijken op het volgende:

    Weergeven in browser

Een WCF-gegevensservice maken

Een WCF Data Service maken voor Microsoft Dynamics 365.

  1. Klik met de rechtermuisknop op uw project en voeg een nieuwe WCF Data Service genaamd "CrmData.svc" toe:

    Gegevensservice maken

  2. U moet de WCF-gegevensservice laten verwijzen naar de XrmServiceContext die u aan het begin van het overzicht hebt gemaakt. Bewerk het bestand CrmData.svc.cs als volgt:

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

Een webpagina maken - contactpersoonformulier 1

Maak een webpagina die een invoerformulier voor contactpersoongegevens weergeeft op basis van een Microsoft Dynamics 365-weergavedefinitie:

  1. Ga in Dynamics 365 naar Instellingen, Aanpassingen en Het systeem aanpassen. Maak een nieuwe weergave voor de contact-entiteit, genaamd "Webformulier voor contactpersoon maken".

    Een webpagina maken

  2. Voeg kolommen aan de weergave toe die u als velden wilt laten weergeven in het gegenereerde formulier.

  3. Klik op Opslaan en publiceren.

  4. Klik met de rechtermuisknop op uw webproject in Microsoft Visual Studio en voeg een nieuw webformulier toe met de naam "WebForm_FromSavedQuery.aspx".

  5. Voeg de volgende code aan de nieuwe aspx-pagina toe:

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

  7. Klik met de rechtermuisknop op de aspx-pagina en klik op Weergeven in browser. Het resultaat moet lijken op het volgende:

    Weergeven in browser

Nog een webpagina maken - contactpersoonraster 3

Maak een webpagina die code-behind gebruikt om een Microsoft Dynamics 365-gegevensbron te verbinden met een ASP.NET GridView-besturingselement.

  1. Klik met de rechtermuisknop op uw project en voeg een nieuwe webpagina toe met de naam "WebForm_CodeBehindDataSource.aspx".

  2. Voeg de volgende code aan de nieuwe aspx-pagina toe.

    <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. Bewerk het code-behind-bestand WebForm_CodeBehind.aspx.cs als volgt:

    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. Maak het project.

  5. Klik met de rechtermuisknop op de aspx-pagina en klik op Weergeven in browser. Het resultaat moet lijken op het volgende:

    Weergeven in browser

Zie ook

Portalontwikkelingshandleiding voor Microsoft Dynamics CRM 2015
Portaloverzichten voor Dynamics CRM 2015

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht