Delen via


Uw ontwikkelingsstijl voor beheerde code kiezen

 

Gepubliceerd: november 2016

Is van toepassing op: Dynamics CRM 2015

De Microsoft Dynamics CRM SDK biedt een groot aantal manieren en technologieën om te gebruiken wanneer u code schrijft om toegang te krijgen tot de Microsoft Dynamics CRM 2015 en Microsoft Dynamics CRM Online 2015 Update-webservices of om de toegang uit te breiden. In deze handleiding wordt ook gewezen op een aantal hulpmiddelen en methoden die u kunt gebruiken om verschillende codeertaken uit te voeren en de handleiding biedt een richtlijn voor wanneer u ze kunt gebruiken.

In dit onderwerp

Verifiëren met behulp van code

Invoegtoepassingen of aangepaste werkstroomactiviteiten maken en implementeren

XAML-werkstromen maken en implementeren

Entiteitprogrammering (eerder gebonden, later gebonden en uitbreidingen voor ontwikkelaars)

Query (Fetch, QueryExpressions, LINQ en Developer-uitbreidingen)

Verifiëren met behulp van code

De onderstaande tabel bevat de keuzemogelijkheden die u hebt voor het schrijven van code die de aanroeper verifieert bij een installatie van Microsoft Dynamics 365 voor on-premises IFD-implementatie (Internet Facing Deployment) of online-implementaties.

Klassen

Beschrijving en gebruik

Meer informatie

Helpercode

De klassen in de voorbeeldcode laten zien hoe u verbinding met de webservices maakt en de gebruiker verifieert. U kunt de helpercode gebruiken als basis van uw eigen aangepaste code voor verificatie.

Deze code is eenvoudig te gebruiken en ondersteunt alle installatietypen van Microsoft Dynamics 365. De code ondersteunt ook het opslaan van wachtwoorden van gebruikers in de Referentiebeheer van Windows voor later hergebruik.

De volledige broncode wordt verschaft zodat u deze voor uw behoeften kunt kopiëren en aanpassen. Dit is een aanbevolen procedure om uw programma's te isoleren van wijzigingen in deze helpercode in toekomstige versies.

Voorbeeld: Aan de slag voor Microsoft Dynamics CRM

Het voorbeeld en de helpercode gebruiken

Helpercode: klasse ServerConnection

U vindt deze code in de bestanden SampleCode\CS\HelperCode\CrmServiceHelpers.cs en SampleCode\VB\HelperCode\CrmServiceHelpers.vb in de SDK. Download het Microsoft Dynamics CRM SDK-pakket.

Developer-uitbreidingen

Deze assembly's worden geleverd om de ontwikkeling te vereenvoudigen en te versnellen van toepassingen die communiceren met Microsoft Dynamics 365. De uitbreidingen breiden de functionaliteit van de kern Microsoft Dynamics CRM SDK uit, met name rond het gebruik van de klasse OrganizationServiceContext.

Voor een gemakkelijke methode die het harde werk voor je doet met enkele regels code, gebruik je de klasse CrmConnection.

Deze code is eenvoudig te gebruiken en ondersteunt alle installatietypen van Microsoft Dynamics 365.

Uitbreidingen voor ontwikkelaars voor Microsoft Dynamics CRM 2015

Vereenvoudigde verbinding met Microsoft Dynamics CRM 2015

Xrm-client

Geavanceerde ontwikkelaars die het beheer van het Windows Communication Foundation (WCF)-servicekanaal en het verificatieproces moeten aanpassen, gebruiken het IServiceManagement<TService> en OrganizationServiceProxy-klassen in de Microsoft.Xrm.Sdk.Client-naamruimte.

Het gebruik van deze klassen kan direct leiden tot betere verbindings- en verificatieprestaties, en meer flexibiliteit. Ze vereisen echter geavanceerde kennis van het WCF-servicekanaal en serververificatie. Bovendien moet u meer code schrijven om alle Microsoft Dynamics 365-implementatietypen af te handelen.

Active Directory en verificatie op basis van claims

Voorbeeld: Gebruikers verifiëren met Microsoft Dynamics CRM-webservices

De prestaties bij toewijzing van het servicekanaal verbeteren

XRM tooling

Deze assembly's gebruiken de Dynamics 365 API's om eenvoudig ondersteuning van verificatie te bieden met minder regels code en door middel van Windows PowerShell-cmdlets. Alle functieoproepen in deze klassen bieden threadveiligheid voor acties die in Dynamics 365 worden uitgevoerd in een multithreaded omgeving. Dit biedt een algemeen besturingselement voor aanmelding met geïntegreerde verificatielogica en een mogelijkheid om de verificatiegegevens veilig op te slaan en te hergebruiken om een consistente en naadloze aanmeldingservaring bij Dynamics 365 te bieden vanuit uw Windows-clienttoepassingen.

Deze klassen bieden ook ingebouwde diagnostische tracering om te helpen met het oplossen van problemen en met het rapporteren over de prestaties van de actieaanroepen vanuit uw Windows-clienttoepassingen.

Deze klassen ondersteunen alle implementatietypen en verificatietypen van Microsoft Dynamics 365, behalve OAuth.

Windows clienttoepassingen maken met de XRM-hulpprogramma's

XRM-hulpmiddelen gebruiken om verbinding met CRM te maken

PowerShell-cmdlets gebruiken voor XRM-tooling om verbinding met CRM te maken

Voorbeeld: Snel aan de slag voor de XRM Tooling API

Invoegtoepassingen of aangepaste werkstroomactiviteiten maken en implementeren

De onderstaande tabel bevat de keuzemogelijkheden die u hebt voor het schrijven en implementeren van invoegtoepassingen en aangepaste werkstroomactiviteiten.

Hulpmiddel

Beschrijving en gebruik

Meer informatie

Klassen invoegtoepassingen en aangepaste werkstroomactiviteiten

Hulpmiddel voor registratie van invoegtoepassingen

Met klassen invoegtoepassingen en aangepaste werkstroomactiviteiten kunt u gebeurtenishandlers maken om aangepaste bedrijfslogica uit te voeren die u met Microsoft Dynamics 365 kunt integreren om het standaardgedrag van het platform te wijzigen of uit te breiden.

Door deze klassen direct te gebruiken bevat uw code geen helpercode die wordt geleverd in de Developer Toolkit.

Als u nieuwe invoegtoepassingen en aangepaste werkstroomactiviteiten schrijft, moet u het hulpprogramma registratie van invoegtoepassingen gebruiken om ze te registreren. Dit hulpmiddel biedt een grafische gebruikersinterface en ondersteunt de registratie van invoegtoepassingen en aangepaste werkstroomactiviteiten met Microsoft Dynamics 365.

Gebruik deze methode als u:

Begrijpt hoe u de klassen met invoegtoepassingen en aangepaste activiteiten gebruikt.

Geen extra bibliotheekcode wilt die automatisch wordt gegenereerd en in uw codebestanden wordt geplaatst.

Geen bezwaar hebt tegen het gebruik van een extern hulpmiddel en de webtoepassing om aangepaste code-assembly's te registreren en in pakketten op te nemen.

Ontwikkeling van plug-ins

Aangepaste workflowactiviteiten (workflowassemblies)

Plug-ins registreren en inzetten

Overzicht: een plug-in registreren met het registratiehulpprogramma plug-ins

XAML-werkstromen maken en implementeren

De onderstaande tabel toont de keuzemogelijkheden die u hebt voor het schrijven en implementeren van XAML-werkstromen.

Hulpmiddel

Beschrijving en gebruik

Meer informatie

Microsoft Visual Studio Workflow Designer

Microsoft Dynamics 365 on-premises en IFD ondersteunen de mogelijkheid om aangepaste XAML-werkstromen te maken. Met de Microsoft Visual Studio Workflow Designer kunt u aangepaste XAML-werkstromen, ook declaratieve werkstromen genoemd, maken door werkstroomactiviteiten van de werkset op het ontwerpvlak te slepen, variabelen te maken, en eigenschappen van deze activiteiten in te stellen om de functionaliteit van de werkstroom te implementeren. U kunt de ingebouwde Windows Workflow Foundation activiteiten of procesactiviteiten gebruiken die specifiek zijn voor Microsoft Dynamics 365.

Gebruik deze methode wanneer u alleen aangepaste XAML-werkstromen wilt schrijven.

Aangepaste XAML-werkstromen

Werkstromen schrijven om bedrijfsprocessen te automatiseren

Entiteitprogrammering (eerder gebonden, later gebonden en uitbreidingen voor ontwikkelaars)

De onderstaande tabel toont de keuzemogelijkheden die u hebt voor het schrijven van code die entiteiten gebruikt in Microsoft Dynamics 365.

Klasse

Beschrijving en gebruik

Meer informatie

Eerder gebonden

<optional namespace>.Account, <optional namespace>.Contact, enzovoort

Het hulpmiddel voor het genereren van code (CrmSvcUtil) maakt eerder gebonden entiteitklassen, afgeleid van de klasse Entity, die u kunt gebruiken om toegang tot bedrijfsgegevens te krijgen in Microsoft Dynamics 365. Deze klassen omvatten één klasse voor elke entiteit in uw installatie, inclusief aangepaste entiteiten.

Gebruik deze methode wanneer u de compiler typeverwijzingen wilt laten controleren tijdens het compileren. Kenmerken en relaties worden ook opgenomen in de gegenereerde klasse, dus ze hebben IntelliSense-ondersteuning voor entiteit-, kenmerk- en relatienamen. Sterke typen zijn meestal de voorkeursmethode en worden in de meeste voorbeelden in deze SDK-documentatie gebruikt.

Deze aanpak heeft enkele nadelen:

Klassen moeten steeds opnieuw worden gegenereerd als entiteiten worden aangepast, om gebruik te maken van schemawijzigingen.

De serialisatiekosten nemen toe als de entiteiten worden geconverteerd naar later gebonden typen tijdens transmissie via het netwerk.

De eerder gebonden entiteitklassen in code gebruiken

Eerder gebonden entiteitklassen maken met het hulpmiddel voor het genereren van code (CrmSvcUtil.exe)

Later gebonden

Microsoft.Xrm.Entity

De klasse Entity bevat de logische naam van een entiteit en een eigenschappenverzamelingmatrix met de kenmerken voor de entiteit. Hiermee kunt u latere binding gebruiken, zodat u kunt werken met typen zoals aangepaste entiteiten en aangepaste kenmerken die eerder niet aanwezig waren toen uw toepassing werd gecompileerd.

Een ander voordeel hiervan is dat er minder serialisatie optreedt als entiteitgegevens via een netwerk worden verzonden, wat betere prestaties betekent.

Deze aanpak heeft enkele nadelen:

Typen moeten expliciet worden opgegeven om impliciete casts te voorkomen.

Het is moeilijker om de gevolgen van wijzigingen voor het schema te isoleren omdat de namen van bronnen, zoals entiteiten en kenmerken, hard zijn gecodeerd.

Spellingsfouten tijdens coderen zijn gemakkelijker te maken omdat de kenmerknamen hard gecodeerde tekenreeksen zijn.

De later gebonden entiteitklasse in code gebruiken

Uitbreidingen voor ontwikkelaars

Microsoft.Xrm.Client.CrmEntity

De CrmEntity-klasse wordt afgeleid van de Entity-klasse. Naast het bieden van alle functionaliteit van de Entity-klasse, voegt CrmEntity nieuwe ophaal- en instel-uitbreidingsmethoden toe om algemene codeertaken te vereenvoudigen, en twee nieuwe gebeurtenissen voor het wijzigen van eigenschappen.

Uitbreidingen voor ontwikkelaars voor Microsoft Dynamics CRM 2015

Eerder gebonden met behulp van uitbreidingen van het hulpmiddel voor het genereren van code

<optional namespace>.Account, <optional namespace>.Account, enzovoort

Met de versie van het hulpmiddel CrmSvcUtil van de Developer-uitbreidingen kunt u eerder gebonden typen genereren die worden afgeleid van de CrmEntity-klasse. Gebruik dit als u gebruik wilt maken van andere functies die beschikbaar zijn in de Developer-uitbreidingen.

Code genereren met de uitbreidingen van het hulpmiddel voor het genereren van code (Dynamics CRM 2015)

Entiteiten aan de context koppelen (Dynamics CRM 2015)

Uitbreidingen voor ontwikkelaars voor Microsoft Dynamics CRM 2015

Query (Fetch, QueryExpressions, LINQ en Developer-uitbreidingen)

De onderstaande tabel toont de keuzemogelijkheden die u hebt voor het maken van query's die u kunt gebruiken om records op te halen uit de Microsoft Dynamics 365-database.

Querystijl

Beschrijving en gebruik

Meer informatie

FetchXML

Dit is een aangepaste, op XML gebaseerde querytaal die alle functies van QueryExpression plus combinaties en groepering ondersteunt. Fetch-query's kunnen records voor meerdere entiteiten retourneren. Bovendien kunnen query's worden geserialiseerd en opgeslagen in de database. Dit wordt gebruikt om een query op te slaan als een opgeslagen weergave van de gebruiker die is opgeslagen in de entiteit UserQuery en als een opgeslagen weergave van de organisatie in de entiteit SavedQuery.

Gebruik deze querytaal wanneer u ondersteuning nodig hebt voor combinaties en groepering of wanneer u de query moet opslaan.

Bouw query's met FetchXML

QueryExpression

Een query-expressie wordt gebruikt om te zoeken naar records voor één entiteitstype. Query's worden gemaakt als een objectmodel. Deze klasse ondersteunt alle functies in FetchXML, behalve voor combinaties en groepering. De functie ondersteunt ook programmeerstijlen voor eerder gebonden en later gebonden entiteiten.

Bouw query's met QueryExpression

LINQ

Query's worden gebouwd met standaardtaal, maar intern .NET Language-Integrated Query (LINQ)gebruiktQueryExpression en is dus beperkt tot de functies van QueryExpression.LINQ ondersteunt ook programmeerstijlen voor eerder gebonden en later gebonden entiteiten.

Query's maken met LINQ (.NET Language Integrated Query)

Zie ook

Ontwikkelaaroverzicht
Zelfstudies voor informatie over ontwikkeling voor Microsoft Dynamics CRM 2015
Toepassingen en serveruitbreidingen schrijven
De programmeringsmodellen voor Microsoft Dynamics CRM 2015

© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht