Informazioni sulle applicazioni livello dati

Un'applicazione livello dati (DAC) è un'entità contenente tutti gli oggetti di database e istanza utilizzati da un'applicazione. Una DAC fornisce una singola unità per la creazione, la distribuzione e la gestione degli oggetti del livello dati, anziché gestirli separatamente, e consente un'integrazione più stretta dello sviluppo del livello dati allo sviluppo di codice dell'applicazione associato. L'applicazione del livello dati fornisce inoltre agli amministratori una vista a livello di applicazione dell'utilizzo delle risorse nel sistema.

Utilizzo delle applicazioni livello dati

Utilizzare i processi riportati di seguito per la gestione di DAC.

  • Creare innanzitutto un tipo DAC, ovvero una definizione DAC che specifica gli oggetti utilizzati dall'applicazione associata. La definizione DAC viene quindi compilata in un pacchetto DAC, ovvero un file utilizzato per la distribuzione e l'aggiornamento DAC. È possibile creare una definizione e un pacchetto DAC nei due modi riportati di seguito.

    • Aprire un progetto DAC in Microsoft Visual Studio 2010 e specificare gli oggetti compresi nell'applicazione del livello dati. Quando si compila il progetto DAC, Visual Studio compila una definizione DAC e la inserisce in un pacchetto DAC.

    • Estrarre una definizione DAC da un database esistente e creare un pacchetto DAC tramite la procedura guidata Estrai applicazione del livello dati.

    Per ulteriori informazioni, vedere Implementazione delle applicazioni livello dati.

  • Il pacchetto DAC viene distribuito in un'istanza di Motore di database utilizzando la procedura guidata Distribuisci applicazione del livello dati. La distribuzione del pacchetto DAC in genere è coordinata con la distribuzione dei file eseguibili dell'applicazione. La distribuzione crea un'istanza DAC costituita da due parti principali:

    • La definizione DAC viene archiviata nel database di sistema msdb (database master in SQL Azure).

    • Un database utente viene creato e popolato con gli oggetti specificati nella definizione DAC.

    Se l'istanza del Motore di database è un'istanza gestita nell'Utilità SQL Server, l'applicazione del livello dati viene caricata nel punto di controllo dell'utilità come DAC distribuita.

    Per ulteriori informazioni, vedere Distribuzione delle applicazioni livello dati.

  • Le applicazioni eseguono la connessione al database associato alla DAC. Oltre a essere in grado di monitorare e gestire il database associato alla DAC mediante procedure stabilite, gli amministratori possono ottenere informazioni aggiuntive dalla stessa DAC:

    • Nel nodo applicazioni livello dati distribuite di Esplora utilità di SQL Server Management Studio (SSMS) è presente un report sull'utilizzo delle risorse dell'applicazione che consente agli amministratori di valutare più rapidamente l'integrità delle istanze dell'applicazione del livello dati.

    • Nel nodo Applicazione livello dati di Esplora oggetti di Management Studio sono disponibili le proprietà per ogni istanza DAC.

  • Una DAC semplifica il processo di supporto degli aggiornamenti tra versioni diverse di un database. In caso di distribuzione di database tramite script Transact-SQL, gli sviluppatori del database devono compilare due set di script per ogni versione del database successiva alla prima. Un set di script può essere utilizzato per aggiornare un database esistente alla nuova versione e l'altro per installare un nuovo database. In caso di utilizzo di DAC, lo sviluppatore del database deve compilare un solo pacchetto DAC in cui viene descritto lo schema utilizzato dalla nuova versione dell'applicazione. È possibile utilizzare il pacchetto con la procedura guidata Distribuisci applicazione livello dati per installare una nuova DAC oppure con la procedura guidata Aggiorna applicazione livello dati per aggiornare un'istanza DAC esistente. La procedura guidata Aggiorna applicazione livello dati confronta i due schemi e dinamicamente esegue le azioni necessarie per trasformare l'istanza DAC esistente nella nuova versione DAC.

    Per ulteriori informazioni, vedere Aggiornamento di applicazioni livello dati.

  • È possibile eliminare la DAC dall'istanza di Motore di database utilizzando la procedura guidata Elimina applicazione del livello dati.

Per ulteriori informazioni sulla compilazione e sull'utilizzo di una DAC, vedere Esercitazioni sull'applicazione del livello dati.

Elementi dell'applicazione del livello dati

Una definizione DAC contiene i seguenti elementi:

  • Proprietà DAC che definiscono le caratteristiche dell'applicazione del livello dati. Ogni DAC dispone ad esempio di una proprietà per il nome dell'applicazione e di una proprietà per la versione i cui valori fanno generalmente riferimento al nome e al numero di versione dell'applicazione associata.

  • Definizioni di tutti gli oggetti di database utilizzati dall'applicazione, ad esempio schemi, tabelle, viste e stored procedure. Le applicazioni livello dati create tramite SQL Server 2008 R2 o Visual Studio 2010 non supportano tutti gli oggetti SQL Server disponibili. Per ulteriori informazioni, vedere Supporto dell'applicazione livello dati per oggetti e versioni di SQL Server.

  • Definizioni degli oggetti a livello di istanza, ad esempio gli account di accesso associati agli oggetti del database e utilizzati dall'applicazione.

  • Criteri di selezione dei server che definiscono le condizioni preliminari che un'istanza di Motore di database deve soddisfare per ospitare la DAC. I criteri vengono definiti utilizzando il facet di selezione dei server e possono valutare condizioni quali l'edizione e le regole di confronto predefinite dell'istanza.

  • File e script che possono essere incorporati nella definizione DAC creata in Visual Studio, quali documenti dell'applicazione, piani di generazione dati che specificano come creare dati di prova significativi oppure script precedenti o successivi alla distribuzione.

Progetto di applicazione livello dati

Di norma un'applicazione del livello dati viene sviluppata in Visual Studio 2010 da uno sviluppatore di database tramite un progetto DAC. Lo sviluppatore del database definisce gli oggetti livello dati richiesti dall'applicazione per il cui supporto viene sviluppata la DAC. Quando la DAC è pronta per gli sviluppatori applicazioni o i team di testing, lo sviluppatore del database compila il progetto DAC per creare un file di pacchetto DAC che consentirà di distribuire l'applicazione del livello dati.

Per ulteriori informazioni sui progetti DAC, vedere Implementazione delle applicazioni livello dati.

Pacchetto dell'applicazione del livello dati

Quando una DAC è pronta per la distribuzione, viene compilata in un pacchetto DAC, ovvero un file contenente la definizione DAC. Il pacchetto DAC è una singola unità di distribuzione, nello stesso modo in cui un file eseguibile è un'unità di distribuzione per il codice dell'applicazione. Un pacchetto DAC viene generalmente compilato in combinazione con un file eseguibile dell'applicazione. Quando gli amministratori di sistema distribuiscono il file eseguibile al livello applicazione o nei computer client, gli amministratori del database distribuiscono il pacchetto DAC associato in un'istanza di Motore di database. 

Si supponga ad esempio che un team di sviluppo stia sviluppando un'applicazione a tre livelli denominata Finance. La build 1.0.1.123 dell'applicazione supera tutti i test di accettazione ed è pronta per la distribuzione in produzione. Gli sviluppatori applicazioni passano la versione 1.0.1.123 del file Finance.exe agli amministratori di sistema nell'ambiente di produzione per la distribuzione nei server applicazioni di produzione. Gli sviluppatori database passano la versione 1.0.1.123 del file Finance.dacpac agli amministratori di database nell'ambiente di produzione per la distribuzione in un'istanza di produzione Motore di database.

Un pacchetto DAC è un file ZIP contenente più file XML. Per ulteriori informazioni sul contenuto del file del pacchetto DAC, vedere Microsoft SQL Server File Format Documents.

Istanza dell'applicazione del livello dati

Quando una DAC viene distribuita a un'istanza di Motore di database viene creata un'istanza DAC:

  • Viene creato un database tramite le proprietà di database predefinite per l'istanza di Motore di database utilizzata. Gli oggetti di database definiti nella DAC vengono creati nel nuovo database.

  • Vengono creati tutti gli oggetti a livello di istanza definiti nella DAC, ad esempio gli account di accesso.

  • La definizione DAC originale e i metadati relativi all'istanza DAC vengono archiviati nel database di sistema msdb (database master in SQL Azure).

Al termine della distribuzione dell'istanza, gli utenti possono iniziare a utilizzare gli oggetti e aggiungere dati al database creato per la DAC.

Creazione di applicazioni livello dati per i database esistenti

È possibile utilizzare la procedura guidata Estrai applicazione livello dati per estrarre una definizione DAC da un database esistente. La definizione DAC contiene gli oggetti selezionati dal database e gli oggetti a livello di istanza associati quali gli account di accesso corrispondenti agli utenti del database. Durante la procedura guidata la definizione DAC viene compilata in un pacchetto DAC. Il pacchetto DAC estratto viene in genere importato in un progetto DAC in Visual Studio per avviare lo sviluppo della versione successiva dell'applicazione. È inoltre possibile utilizzare il pacchetto estratto per distribuire la DAC in un'altra istanza di Motore di database.

È possibile inoltre registrare una DAC per un database esistente utilizzando la procedura guidata Registra applicazione del livello dati. La procedura guidata consente di creare una definizione DAC che include gli oggetti nel database esistente e di archiviarla nel database msdb (database master in SQL Azure). Se l'istanza del Motore di database è un'istanza gestita nell'Utilità SQL Server, la registrazione dell'applicazione livello dati viene caricata nel punto di controllo dell'utilità come applicazione di livello dati distribuita.