Freigeben über


Auswählen des Entwicklungsstils für verwalteten Code

 

Veröffentlicht: November 2016

Gilt für: Dynamics CRM 2015

Microsoft Dynamics CRM SDK bietet zahlreiche Methoden und Technologien, die beim Schreiben von Code verwendet werden können, um auf die Microsoft Dynamics CRM 2015 und Microsoft Dynamics CRM Online 2015-Update-Webdienste zuzugreifen oder die Anwendung zu erweitern. In diesem Handbuch werden mehrere Tools und Methoden aufgezeigt, die Sie für verschiedene Codierungsaufgaben verwenden können, und es bietet Anleitungen dazu, wann sie verwendet werden sollten.

In diesem Thema

Authentifizieren mithilfe von Code

Erstellen und Bereitstellen von Plug-Ins oder benutzerdefinierten Workflowaktivitäten

Erstellen und Bereitstellen von XAML-Workflows

Entitätsprogrammierung (frühe Bindung im Vergleich zu später Bindung und Entwicklererweiterungen)

Abfrage (Fetch im Vergleich zu QueryExpressions und LINQ und Entwicklererweiterungen)

Authentifizieren mithilfe von Code

Die folgende Tabelle zeigt die Auswahlmöglichkeiten, die Sie zum Schreiben von Code haben, der den Aufrufer mit einer Installation von Microsoft Dynamics 365 für die lokale Bereitstellung mit Internetzugriff (IFD) oder Online-Bereitstellungen authentifiziert.

Klassen

Beschreibung und Verwendung

Weitere Informationen

Hilfscode

Die Klassen im Beispielcode zeigen, wie eine Verbindung mit den Webdiensten hergestellt und der Benutzer authentifiziert wird. Sie können den Hilfscode als Ausgangspunkt für Ihren eigenen benutzerdefinierten Authentifizierungscode verwenden.

Dieser Code ist einfach zu verwenden und unterstützt alle Bereitstellungsarten von Microsoft Dynamics 365. Außerdem unterstützt er das Speichern von Kennwörtern in Windows-Anmeldeinformationsverwaltung für eine spätere erneute Verwendung.

Vollständiger Quellcode wird bereitgestellt, den Sie kopieren und an Ihre Anforderungen anpassen können. Dies ist ein empfohlenes Verfahren, um Programme von Änderungen an diesem Hilfscode in zukünftigen Versionen zu isolieren.

Beispiel: Erste Schritte für Microsoft Dynamics CRM

Verwenden des Beispiel- und Hilfscode

Hilfscode: Klasse "ServerConnection"

Dieser Code ist in den SampleCode\CS\HelperCode\CrmServiceHelpers.cs- und SampleCode\VB\HelperCode\CrmServiceHelpers.vb-Dateien im SDK-Download verfügbar. Laden Sie das Microsoft Dynamics CRM SDK-Paket herunter.

Entwicklererweiterungen

Diese Assemblys werden bereitgestellt, um die Entwicklung von Anwendungen, die mit Microsoft Dynamics 365 interagieren, zu vereinfachen und zu beschleunigen. Die Erweiterungen erweitern die Funktionalität des Kern-Microsoft Dynamics CRM SDK spezfisch um die Verwendung der OrganizationServiceContext-Klasse herum.

Wenn Sie eine einfache Methode suchen, die die Arbeit mit wenigen Codezeilen für Sie erledigt, verwenden Sie die CrmConnection-Klasse.

Dieser Code ist einfach zu verwenden und unterstützt alle Bereitstellungsarten von Microsoft Dynamics 365.

Entwicklererweiterungen für Microsoft Dynamics CRM 2015

Vereinfachte Verbindung mit Microsoft Dynamics CRM 2015

Xrm-Client

Für fortgeschrittene Entwickler, die die Windows Communication Foundation (WCF)-Servicekanalverwaltung und den Authentifizierungsprozess anpassen müssen, bieten sich die IServiceManagement<TService>- und OrganizationServiceProxy-Klassen im Microsoft.Xrm.Sdk.Client-Namespace an.

Die direkte Verwendung dieser Klassen kann die Verbindungs- und Authentifizierungsleistung verbessern und mehr Flexibilität bieten. Dafür sind jedoch fortgeschrittene Kenntnisse über die WCF-Servicekanal- und -Serverauthentifizierung erforderlich. Darüber hinaus müssen Sie mehr Code zur Handhabung aller Microsoft Dynamics 365-Bereitstellungsarten schreiben.

Active Directory und anspruchsbasierte Authentifizierung

Beispiel: Authentifizieren von Benutzern durch die Microsoft Dynamics CRM-Webdienste

Verbessern der Servicekanal-Zuteilungsleistung

XRM-Tooling

Diese Assemblys nutzen die Dynamics 365-APIs, um Support für einfache Authentifizierung mit weniger Codezeilen und mithilfe von Windows PowerShell-Cmdlets bereitzustellen. Alle Funktionsaufrufe in diesen Klassen bieten Threadsicherheit für die in Dynamics 365 durchgeführten Aktionen in einer Multithread-Umgebung. Sie stellen ein übliches Anmeldesteuerelement mit integrierter Authentifizierungslogik und der Fähigkeit, Authentifizierungsinformationen sicher zu speichern und wiederzuverwenden, bereit, und bieten dadurch eine einheitliche und nahtlose Anmeldung bei Dynamics 365 über die Windows-Client-Anwendungen.

Die Klassen bieten außerdem integrierte Diagnose-Ablaufverfolgung zur Unterstützung der Problembehandlung und Leistungsberichterstellung der Aktionsaufrufe über die Windows-Client-Anwendungen.

Diese Klassen unterstützen alle Microsoft Dynamics 365-Bereitstellungsarten und -Authentifizierungstypen, mit Ausnahme von OAuth.

Erstellen von Windows-Client-Anwendungen mithilfe der XRM-Tools

Verwenden Sie XRM, um eine Verbindung mit CRM herzustellen

Verwenden von PowerShell-Cmdlets für XRM-Tooling, um eine Verbindung mit CRM herzustellen

Beispiel: Schnellstart für XRM Tooling API

Erstellen und Bereitstellen von Plug-Ins oder benutzerdefinierten Workflowaktivitäten

In der folgenden Tabelle werden die Möglichkeiten aufgeführt, die Sie zum Schreiben und Bereitstellen von Plug-Ins und benutzerdefinierten Workflowaktivitäten haben.

Tool

Beschreibung und Verwendung

Weitere Informationen

Plug-In- und benutzerdefinierte Workflowaktivitätsklassen

Plug-In-Registrierungstool

Die Plug-In- und benutzerdefinierten Workflowaktivitätsklassen ermöglichen das Erstellen von Ereignishandlern für die Ausführung der angepassten Geschäftslogik, die Sie in Microsoft Dynamics 365 integrieren können, um das Standardverhalten der Plattform zu ändern oder zu erweitern.

Wenn diese Klassen direkt verwendet werden, enthält Ihr Code nicht länger Hilfscode, der in Developer Toolkit bereitgestellt wird.

Wenn Sie Plug-Ins und benutzerdefinierte Workflowaktivitäten neu schreiben, müssen Sie das Plug-In-Registrierungstool verwenden, um sie zu registrieren. Das Tool stellt eine grafische Benutzeroberfläche bereit und unterstützt das Registrieren von Plug-Ins und benutzerdefinierten Workflowaktivitäten in Microsoft Dynamics 365.

Verwenden Sie diese Methode:

Wenn Sie mit der Verwendung der Plug-In- und benutzerdefinierten Workflowaktivitätsklassen vertraut sind.

Wenn kein zusätzlicher Bibliothekscode automatisch generiert und in Ihren Codedateien platziert werden soll.

Wenn es Sie nicht stört, ein externes Tool und die Webanwendung zum Registrieren und Packen von benutzerdefinierten Code-Assemblys zu verwenden.

Plug-In-Entwicklung

Benutzerdefinierte Workflowaktivitäten (Workflowassemblys)

Registrieren und Bereitstellen von Plug-Ins

Exemplarische Vorgehensweise: Registrieren eines Plug-Ins mithilfe des Plug-In-Registrierungstools

Erstellen und Bereitstellen von XAML-Workflows

In der folgenden Tabelle werden die Möglichkeiten aufgeführt, die Sie zum Schreiben und Bereitstellen von XAML-Workflows haben.

Tool

Beschreibung und Verwendung

Weitere Informationen

Microsoft Visual Studio-Workflow-Designer

Die lokale und IFD-Version von Microsoft Dynamics 365 unterstützt die Möglichkeit, benutzerdefinierte XAML-Workflows zu erstellen. Wenn Sie den Microsoft Visual Studio-Workflow-Designer verwenden, können Sie benutzerdefinierte XAML-Workflows, die auch als deklarative Workflows bezeichnet werden, erstellen, indem Sie Workflowaktivitäten von der Toolbox auf die Entwurfsoberfläche ziehen, Variablen erstellen und Eigenschaften dieser Aktivitäten festlegen, um den Funktionsumfang des Workflows zu implementieren. Sie können die integrierten Windows Workflow Foundation-Aktivitäten oder Prozessaktivitäten verwenden, die für Microsoft Dynamics 365 spezifisch sind.

Verwenden Sie diese Methode, wenn Sie nur benutzerdefinierte XAML-Workflows schreiben möchten.

Benutzerdefinierte XAML-Workflows

Erstellen von Workflows zum Automatisieren von Geschäftsprozessen

Entitätsprogrammierung (frühe Bindung im Vergleich zu später Bindung und Entwicklererweiterungen)

In der folgenden Tabelle werden die Möglichkeiten aufgeführt, die Sie zum Schreiben von Code haben, der Entitäten in Microsoft Dynamics 365 verwendet.

Klasse

Beschreibung und Verwendung

Weitere Informationen

Früh gebunden

<optional namespace>.Account, <optional namespace>.Contact und so weiter

Das Codegenerierungstool (CrmSvcUtil) erstellt aus der Entity-Klasse abgeleitete Entitätsklassen mit früher Bindung, die Sie verwenden können, um auf Geschäftsdaten in Microsoft Dynamics 365 zuzugreifen. Diese Klassen enthalten eine Klasse für jede Entität in Ihrer Installation, einschließlich benutzerdefinierter Entitäten.

Verwenden Sie diese Methode, wenn der Compiler Typreferenzen zur Kompilierzeit prüfen soll. Darüber hinaus sind Attribute und Beziehungen in der generierten Klasse enthalten, sodass sie über IntelliSense-Unterstützung für Entitäten, Attribute und Beziehungsnamen verfügen. Starke Typen werden im Allgemeinen bevorzugt verwendet und sie werden auch in den meisten Beispielen der SDK-Dokumentation verwendet.

Dieser Ansatz hat ein paar Nachteile:

Klassen müssen jedes Mal neu erstellt werden, wenn Entitäten angepasst werden, um Schemaänderungen zu nutzen.

Die Serialisierungskosten erhöhen sich, wenn die Entitäten während der Übertragung über das Netzwerk in Typen mit später Bindung konvertiert werden.

Verwenden Sie im Code die Entitätsklassen mit früher Bindung

Entitätsklassen mit früher Bindung mit dem Codegenerierungstool erstellen (CrmSvcUtil.exe)

Spät gebunden

Microsoft.Xrm.Entity

Die Entity-Klasse enthält den logischen Namen einer Entität und einen Eigenschaftsbehälterarrray des Entitätsattributs. Dadurch können Sie die späte Bindung verwenden, sodass Sie mit Typen wie benutzerdefinierten Entitäten und benutzerdefinierten Attributen arbeiten können, die nicht vorhanden waren, als Ihre Anwendung kompiliert wurde.

Ein weiterer Vorteil davon ist, dass weniger Serialisierung erfolgt, wenn die Daten über ein Netzwerk übertragen werden, sodass eine höhere Leistung erzielt wird.

Dieser Ansatz hat ein paar Nachteile:

Die Typen müssen explizit angegeben werden, um implizite Umwandlungen zu vermeiden.

Es ist schwieriger, die Auswirkungen von Änderungen auf das Schema zu isolieren, weil die Namen für Ressourcen, wie z. B. Entitäten und Attribute, hartcodiert sind.

Bei der Codierung treten leichter Rechtschreibfehler auf, da die Attributnamen hartcodierte Zeichenfolgen sind.

Verwenden Sie die spät gebunden Entitätsklasse in Code

Entwicklererweiterungen

Microsoft.Xrm.Client.CrmEntity

Die CrmEntity-Klasse wird von der Entity-Klasse abgeleitet. Zusätzlich dazu, dass sie die gleichen Funktionen wie die Entity-Klasse bietet, fügt die CrmEntity-Klasse neue Erweiterungsmethoden zum Abrufen und Festlegen zur Vereinfachung allgemeiner Codierungsaufgaben und zwei neue Eigenschaftenänderungs-Ereignisse hinzu.

Entwicklererweiterungen für Microsoft Dynamics CRM 2015

Frühe Bindung mithilfe der Codegenerierungstool-Erweiterungen

<optional namespace>.Account, <optional namespace>.Account und so weiter

Durch die Verwendung der CrmSvcUtil-Tool-Version mit Entwicklererweiterungen können Sie Typen mit früher Bindung generieren, die von der CrmEntity-Klasse abgeleitet werden. Verwenden Sie diese Option, wenn Sie andere Funktionen nutzen möchten, die in den Entwicklererweiterungen verfügbar sind.

Generieren von Code mit den Codegenerierungstool-Erweiterungen (Dynamics CRM 2015)

Anhängen von Entitäten an den Kontext (Dynamics CRM 2015)

Entwicklererweiterungen für Microsoft Dynamics CRM 2015

Abfrage (Fetch im Vergleich zu QueryExpressions und LINQ und Entwicklererweiterungen)

In der folgenden Tabelle sind die Möglichkeiten aufgeführt, die Sie zum Erstellen von Abfragen haben, die Sie verwenden können, um Datensätze aus der Microsoft Dynamics 365-Datenbank abzurufen.

Abfragenstil

Beschreibung und Verwendung

Weitere Informationen

FetchXML

Hierbei handelt es sich um eine benutzerdefinierte XML-basierte Abfragesprache, die alle Funktionen von QueryExpression sowie Aggregate und die Gruppierung unterstützt. Fetch-Abfragen können Datensätze für mehrere Entitäten zurückgegeben. Darüber hinaus können Abfragen in der Datenbank gespeichert werden und serialisiert werden. Dies wird verwendet, um eine Abfrage als benutzereigene Ansicht in der UserQuery-Entität und als unternehmenseigene Ansicht in der SavedQuery-Entität zu speichern.

Verwenden Sie diese Abfragesprache, wenn Aggregate und Gruppierung unterstützt werden müssen, oder wenn Sie die Abfrage speichern müssen.

Abfragen erstellen mit FetchXML

QueryExpression

Ein Abfrageausdruck wird verwendet, um Datensätze für einen einzelnen Entitätstyp zu suchen. Abfragen werden als Objektmodell erstellt. Diese Klasse unterstützt alle FetchXML-Funktionen, ausgenommen Aggregate und Gruppierung. Sie unterstützt außerdem Entitätsprogrammierungsstile mit früher und später Bindung.

Erstellen von Abfragen mit QueryExpression

LINQ

Abfragen werden mithilfe der Standardsprache erstellt, aber intern verwendet .NET Language-Integrated Query (LINQ)QueryExpression, weshalb eine Einschränkung auf die Funktionen von QueryExpression besteht.LINQ unterstützt außerdem Entitätsprogrammierungsstile mit früher und später Bindung.

Erstellen von Abfragen mit LINQ (.NET language-integrated query)

Siehe auch

Entwicklerübersicht
Lernprogramme für den Einstieg in die Entwicklung für Microsoft Dynamics CRM 2015
Schreiben von Anwendungen und Servererweiterungen
Die Programmiermodelle für Microsoft Dynamics CRM 2015

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright