Condividi tramite


Scegliere il proprio stile di sviluppo per il codice gestito

 

Data di pubblicazione: novembre 2016

Si applica a: Dynamics CRM 2015

In Microsoft Dynamics CRM SDK sono disponibili diversi metodi e tecnologie da utilizzare quando si scrive il codice per accedere ai servizi Web di Aggiornamento di Microsoft Dynamics CRM 2015 e Microsoft Dynamics CRM Online 2015 oppure per estendere l'applicazione. In questa guida vengono evidenziati alcuni strumenti e metodi disponibili per completare diverse attività di codifica e offre istruzioni su quando utilizzarli.

In questo argomento

Esegui autenticazione tramite il codice

Creare e distribuire i plug-in o le attività personalizzate del flusso di lavoro

Creare e distribuire i flussi di lavoro XAML

Programmazione dell'entità (associazione anticipata rispetto ad associazione tardiva rispetto a estensioni per sviluppatori)

Eseguire una query (Fetch e QueryExpressions e LINQ e estensioni per sviluppatori)

Esegui autenticazione tramite il codice

Nella tabella seguente sono elencate le opzioni disponibili per scrivere il codice che autentica il chiamante con un'installazione di Microsoft Dynamics 365 per le distribuzioni locali, con connessione Internet (IFD) o online.

Classi

Descrizione e utilizzo

Ulteriori informazioni

Codice di supporto

Le classi nel codice di esempio dimostrano come connettersi ai servizi Web e autenticare l'utente. È possibile utilizzare il codice di supporto come base per il proprio codice personalizzato di autenticazione.

Questo codice è semplice da usare e supporta tutti i tipi di distribuzione di Microsoft Dynamics 365. Inoltre supporta la memorizzazione delle password utenti in Gestione credenziali di Windows per un successivo utilizzo.

Viene fornito il codice sorgente completo in modo che sia possibile copiarlo e personalizzarlo in base alle proprie esigenze. È consigliabile isolare i programmi dalle modifiche apportate al codice di supporto nei rilasci successivi.

Esempio - Guida introduttiva per Microsoft Dynamics CRM

Utilizzare il codice di esempio e dell'helper

Codice dell'helper: classe di ServerConnection

Questo codice è disponibile nei file SampleCode\CS\HelperCode\CrmServiceHelpers.cs e SampleCode\VB\HelperCode\CrmServiceHelpers.vb di SDK. Scarica il pacchetto SDK di Microsoft Dynamics CRM.

Estensioni per sviluppatori

Tali assembly sono disponibili per semplificare e accelerare lo sviluppo delle applicazioni che interagiscono con Microsoft Dynamics 365. Le estensioni estendono la funzionalità di Microsoft Dynamics CRM SDK principale in particolare nell'utilizzo delle classi di OrganizationServiceContext.

Per un metodo semplice che esegue il lavoro impegnativo automaticamente in poche righe di codice, utilizzare la classe CrmConnection.

Questo codice è semplice da usare e supporta tutti i tipi di distribuzione di Microsoft Dynamics 365.

Estensioni per sviluppatori per Microsoft Dynamics CRM 2015

Connessione semplificata a Microsoft Dynamics CRM 2015

Client Xrm

Per gli sviluppatori avanzati che devono personalizzare la gestione del canale di servizio di Windows Communication Foundation (WCF) e il processo di autenticazione, utilizzare le classi IServiceManagement<TService> e OrganizationServiceProxy nello spazio dei nomi Microsoft.Xrm.Sdk.Client.

Se tali classi vengono utilizzate direttamente è possibile garantire migliori prestazioni di connessione e autenticazione e una maggiore flessibilità. Tuttavia, richiedono conoscenze più avanzata del canale di servizio WCF e dell'autenticazione server. Inoltre, è necessario scrivere più codice per gestire tutti i tipi di distribuzione di Microsoft Dynamics 365.

Active Directory e autenticazione basata sulle attestazioni

Esempio - Autenticare gli utenti tramite i servizi Web di Microsoft Dynamics CRM

Ottimizzare le prestazioni di allocazione del canale di servizio

Strumenti XRM

Tali assembly utilizzano le API di Dynamics 365 per fornire un supporto di autenticazione semplice con meno righe di codice e tramite i cmdlet di Windows PowerShell. Tutte le chiamate di funzione in tali classi offrono sicurezza thread safety per le azioni eseguite in Dynamics 365 in un ambiente a thread multipli. Fornisce un controllo accessi comune con logica di autenticazione integrata e la capacità di archiviare e riutilizzare in modo sicuro le informazioni di autenticazione per fornire un'esperienza di accesso unica e coerente a Dynamics 365 dalle applicazioni client di Windows.

Tali classi forniscono inoltre un'analisi diagnostica incorporata per supportare la creazione di report di prestazioni e di risoluzione dei problemi degli inviti all'azione dalle applicazioni client di Windows.

Tali classi supportano tutti i tipi di distribuzione e i tipi di autenticazione di Microsoft Dynamics 365, ad eccezione di OAuth.

Compilare applicazioni client di Windows tramite gli strumenti XRM

Utilizzare gli strumenti XRM per la connessione a CRM

Utilizzare cmdlet PowerShell per gli strumenti XRM per connettersi a CRM

Esempio: guida introduttiva per API degli strumenti XRM

Creare e distribuire i plug-in o le attività personalizzate del flusso di lavoro

Nella tabella seguente sono elencate le opzioni disponibili per la scrittura e la distribuzione di plug-in e di attività personalizzate del flusso di lavoro.

Strumento

Descrizione e utilizzo

Ulteriori informazioni

Classi plug-in e attività flusso di lavoro personalizzate

Strumento di registrazione plug-in

Le classi plug-in e attività del flusso di lavoro personalizzate consentono di creare i gestori eventi per eseguire le regole business che è possibile integrare con Microsoft Dynamics 365 per modificare o aumentare il comportamento standard della piattaforma.

Utilizzando queste classi direttamente, il codice non includerà un codice di supporto fornito in Toolkit sviluppatori.

Se si scrivono i plug-in e le attività personalizzate del flusso di lavoro partendo da zero, è necessario utilizzare lo strumento per la registrazione dei plug-in per registrarli. Tale strumento fornisce un'interfaccia utente grafica e supporta la registrazione di plug-in e attività flusso di lavoro personalizzate con Microsoft Dynamics 365.

Utilizzare questo metodo se:

Si sa come utilizzare le classi plug-in e attività flusso di lavoro personalizzate.

Non si desidera che il codice delle librerie aggiuntivo venga generato automaticamente e venga posizionato nei file di codice.

Non è un problema utilizzare uno strumento esterno e l'applicazione Web per registrare e impacchettare l'assembly del codice personalizzato.

Sviluppo dei plug-in

Attività personalizzate del flusso di lavoro (assembly del flusso di lavoro)

Registrare e distribuire plug-in

Procedura dettagliata: registrare un plug-in utilizzando lo strumento per la registrazione dei plug-in

Creare e distribuire i flussi di lavoro XAML

Nella tabella seguente sono elencate le opzioni disponibili per la scrittura e la distribuzione di flussi di lavoro XAML.

Strumento

Descrizione e utilizzo

Ulteriori informazioni

Progettazione flussi di lavoro di Microsoft Visual Studio

Microsoft Dynamics 365 locale e IFD supporta la possibilità di creare flussi di lavoro XAML personalizzati. Utilizzando la funzione Progettazione flussi di lavoro di Microsoft Visual Studio, è possibile creare flussi di lavoro XAML personalizzati, chiamati anche flussi di lavoro dichiarativi, trascinando attività del flusso di lavoro dalla casella degli strumenti nell'area di progettazione, creando variabili e impostando le proprietà di queste attività per implementare la funzionalità del flusso di lavoro. È possibile utilizzare le attività predefinite di Windows Workflow Foundation oppure le attività di processo specifiche di Microsoft Dynamics 365.

Utilizzare questo metodo quando si desidera scrivere i flussi di lavoro XAML personalizzati.

Flussi di lavoro XAML personalizzati

Scrivere i flussi di lavoro per automatizzare i processi aziendali.

Programmazione dell'entità (associazione anticipata rispetto ad associazione tardiva rispetto a estensioni per sviluppatori)

Nella tabella seguente sono elencate le opzioni disponibili per la scrittura del codice che utilizza le entità in Microsoft Dynamics 365.

Classe

Descrizione e utilizzo

Ulteriori informazioni

Associazione anticipata

<optional namespace>.Account, <optional namespace>.Contact, e così via

Lo strumento di generazione del codice (CrmSvcUtil) crea classi di entità con associazione anticipata derivate dalla classe Entity che è possibile utilizzare per accedere ai dati aziendali in Microsoft Dynamics 365. Tali classi includono una classe per ogni entità dell'installazione, incluse le entità personalizzate.

Utilizzare questo metodo quando si desidera che il compilatore controlli i riferimenti del tipo in fase di compilazione. Inoltre, gli attributi e le relazioni vengono inclusi nella classe generata, pertanto dispongono di supporto IntelliSense per l'entità, l'attributo e i nomi della relazione. L'utilizzo di tipi complessi in genere è il metodo preferito e viene utilizzato nella maggior parte degli esempi in questa documentazione SDK.

Esistono alcuni aspetti negativi di questo approccio:

Le classi devono essere rigenerate ogni volta che le entità vengono personalizzate per avvalersi delle modifiche dello schema.

I costi di serializzazione aumentano quando le entità vengono convertite in tipi con associazione tardiva durante la trasmissione in rete.

Utilizzare le classi di entità con associazione anticipata nel codice

Creare le classi di entità con associazione anticipata con lo strumento di generazione del codice (CrmSvcUtil.exe)

Associazione tardiva

Microsoft.Xrm.Entity

La classe Entity contiene il nome logico di un'entità e una matrice del delle proprietà degli attributi delle entità. Ciò consente l'utilizzo di un'associazione tardiva in modo che sia possibile utilizzare i tipi come le entità personalizzate e gli attributi personalizzati non presenti quando l'applicazione è stata compilata.

Un altro dei vantaggi legati a questo è che si verifica minore serializzazione quando i dati dell'entità vengono trasmessi in una rete e ciò consente una prestazione migliore.

Esistono alcuni aspetti negativi di questo approccio:

I tipi devono essere specificati in modo esplicito per impedire cast impliciti.

È più difficile isolare l'impatto delle modifiche allo schema perché i nomi per le risorse, ad esempio le entità e gli attributi, sono hardcoded.

È facile commettere errori di ortografia durante la codifica poiché i nomi degli attributi sono stringhe hardcoded.

Utilizzare la classe di entità con associazione tardiva nel codice

Estensioni per sviluppatori

Microsoft.Xrm.Client.CrmEntity

La classe CrmEntity deriva dalla classe Entity. Oltre a fornire tutte le stesse funzionalità della classe Entity, CrmEntity aggiunge nuovi metodi di estensione get e set per semplificare le attività comuni di codifica e due nuovi eventi di modifica della proprietà.

Estensioni per sviluppatori per Microsoft Dynamics CRM 2015

Associazione anticipata tramite le estensioni dello strumento di generazione del codice

<optional namespace>.Account, <optional namespace>.Account, e così via

Utilizzando la versione delle estensioni per gli sviluppatori dello strumento CrmSvcUtil è possibile generare i tipi con associazione anticipata derivati dalla classe CrmEntity. Utilizzare questa opzione quando si desidera trarre vantaggio da altre funzionalità disponibili nelle estensioni per gli sviluppatori.

Generare il codice con le estensioni dello strumento di generazione del codice (Dynamics CRM 2015)

Collega entità al contesto (Dynamics CRM 2015)

Estensioni per sviluppatori per Microsoft Dynamics CRM 2015

Eseguire una query (Fetch e QueryExpressions e LINQ e estensioni per sviluppatori)

Nella tabella seguente sono elencate le opzioni disponibili per creare query che è possibile utilizzare per recuperare record dal database di Microsoft Dynamics 365.

Stile query

Descrizione e utilizzo

Ulteriori informazioni

FetchXML

Questo è un linguaggio di query basato su XML personalizzato che supporta tutte le funzionalità di QueryExpression oltre alle aggregazioni e al gruppo. Le query Fetch possono restituire record per più entità. Inoltre, le query possono essere serializzate e salvate nel database. Viene utilizzato per salvare una query come visualizzazione salvata di proprietà dell'utente nell'entità UserQuery e come visualizzazione salvata di proprietà dell'organizzazione nell'entità SavedQuery.

Utilizzare questo linguaggio di query quando è necessario un supporto per le aggregazioni e i gruppi o quando è necessario salvare la query.

Creare query con FetchXML

QueryExpression

Un'espressione query viene utilizzata per cercare i record per un singolo tipo di entità. Le query sono generate come modello a oggetti. Questa classe supporta tutte le funzionalità in FetchXML ad eccezione degli aggregati e del gruppo. Supporta inoltre stili di programmazione entità sia con associazione anticipata che ritardata.

Compilare query con QueryExpression

LINQ

Le query sono compilate utilizzando il linguaggio standard, ma internamente .NET Language Integrated Query (LINQ) usa QueryExpression pertanto è limitato alle funzionalità di QueryExpression.LINQ supporta gli stili di programmazione entità sia con associazione anticipata che ritardata.

Creare query con LINQ (.NET language-integrated query)

Vedere anche

Panoramica per gli sviluppatori
Esercitazioni per l'apprendimento dello sviluppo per Microsoft Dynamics CRM 2015
Scrivere applicazioni ed estensioni del server
Modelli di programmazione per Microsoft Dynamics CRM 2015

© 2017 Microsoft. Tutti i diritti sono riservati. Copyright