Cenni preliminari sull'architettura delle funzionalità di database di Visual Studio
Visual Studio offre agli sviluppatori di database molti degli strumenti e delle funzionalità offerti ad altri membri di un team di sviluppo di applicazioni. È ad esempio possibile utilizzare per il database lo stesso sistema di controllo delle versioni e altri strumenti di gestione del ciclo di vita utilizzati dagli sviluppatori di software per il codice sorgente. Poiché l'architettura di Visual Studio è strettamente integrata con Visual Studio Team Foundation Server, è possibile gestire con maggior facilità il processo di sviluppo di database e al contempo ottimizzare il coordinamento con gli sviluppatori di altri aspetti dell'applicazione.
Per ulteriori informazioni sulle funzionalità che supportano lo sviluppo di database in Visual Studio, vedere Gestione delle modifiche al database.
Integrazione con Visual Studio
Non solo l'architettura principale di Visual Studio è integrata con Visual Studio Team Foundation Server, ma anche l'interfaccia risulta coerente nei vari componenti. In molti casi è possibile utilizzare progetti di database, progetti server e progetti del livello applicazione dati in modo analogo ad altri tipi di progetti in Visual Studio. I modelli specifici del database sono visualizzati nelle finestre di dialogo Nuovo progetto e Aggiungi elemento di progetto. È inoltre possibile eseguire azioni, ad esempio Compila e Distribuisci, nonché configurare impostazioni, ad esempio la connessione al database di destinazione e le regole di confronto di database, appositamente progettate per lo sviluppo di database.
I progetti di database vengono visualizzati in Esplora soluzioni come peer di tipi di progetto esistenti. È possibile inserire questi progetti nel controllo delle versioni, aggiungere e rimuovere elementi di progetto e compilarli con MSBuild.
Composizione dell'architettura
Visual Studio include le aree architetturali seguenti:
Progetto di database
Infrastruttura del ciclo di vita del database
Ogni progetto di database è una rappresentazione offline di un database ed è situato nella struttura di una soluzione Visual Studio. È necessario compilare e distribuire le modifiche apportate a un progetto di database affinché possano interessare un'istanza attiva di Microsoft SQL Server 2005 o Microsoft SQL Server 2008.
Infrastruttura del ciclo di vita del database
L'infrastruttura del ciclo di vita del database offre una vasta gamma di servizi tra il progetto di database e la rappresentazione logica (modello) del database. Include le funzionalità fondamentali necessarie per qualsiasi progetto di database, definite collettivamente come fondamenta del progetto di database. Le funzionalità compilate su tali fondamenta vengono definite come funzionalità del progetto di database.
Fondamenta del progetto di database
Le fondamenta del progetto di database includono le seguenti funzioni principali:
Analisi del progetto e degli elementi del progetto
Le fondamenta analizzano gli elementi dei progetto di database, quali tabelle, visualizzazioni e stored procedure. Durante questa operazione vengono estratte le informazioni sugli oggetti di database dai file di script che costituiscono il progetto di database. Questa funzionalità si applica ad esempio quando si importano oggetti di database da script di database esistenti. I progetti di database sono costituiti da insiemi di script Transact-SQL. Il sistema del progetto di database interpreta tali script e consente quindi di interagire con essi come oggetti di schema logici.Importa schema database
Importa schema database consente di importare un database esistente in Visual Studio e di includerlo nel controllo della versione. Persino in un ambiente in cui il database viene gestito tramite il controllo della versione, è possibile che si verifichino casi in cui sia necessario importare nel progetto di database modifiche apportate in un server database attivo. In tal caso è possibile utilizzare Confronto schema per importare modifiche da un server database in un progetto di database in fase di sviluppo.Rilevamento delle dipendenze tra oggetti di database
Il sistema del progetto di database rileva automaticamente le dipendenze tra oggetti di database. Il rilevamento delle dipendenze tra oggetti garantisce che vengano compilati e distribuiti gli oggetti corretti. In tal modo sarà possibile rilevare una modifica importante inserita nel prodotto quando si salva la modifica per la prima volta. È possibile utilizzare il Visualizzatore dipendenze schema per visualizzare e spostarsi all'interno delle dipendenze tra oggetti di database. Le modifiche importanti vengono in genere rilevate quando si tenta di compilare, distribuire o eseguire uno unit test del database. Nel refactoring del database tali dipendenze vengono utilizzate per identificare le modifiche necessarie. Nella generazione dei dati le relazioni tra dipendenze possono essere visualizzate nell'ambito del piano di generazione dati.Refactoring del database
Il refactoring del database consente di identificare le dipendenze tra oggetti di database e di utilizzare tali informazioni per propagare le modifiche in modo accurato nei progetti di database e unit test. Il refactoring del database è disponibile solo in Visual Studio Premium e Visual Studio Ultimate.Creazione di script di distribuzione per distribuzioni nuove ed esistenti
Gli script di distribuzione vengono utilizzati per creare un database o aggiornare un database esistente in base allo schema del progetto di database. Gli script di distribuzione sono costituiti da script pre-distribuzione, script di creazione oggetti di database e script post-distribuzione. Se si effettua la distribuzione in un database esistente, in fase di distribuzione il progetto di database verrà confrontato con lo schema corrente del database di destinazione. Verrà quindi generato uno script di aggiornamento per aggiornare il database di destinazione tramite una combinazione di istruzioni ALTER, CREATE e DROP.Convalida di compilazioni
Questa funzionalità include la convalida della struttura e delle relazioni degli oggetti inclusi nel progetto di database e la convalida della sintassi degli script pre-distribuzione e post-distribuzione, nonché la restituzione dei risultati.
Funzionalità dei progetti di database
Oltre ai servizi principali forniti per i progetti di database, sulla base delle fondamenta del progetto di database vengono compilate altre funzionalità, Queste funzionalità includono:
Confronto di schemi di database
Consente di confrontare due schemi di database presenti in una versione corrente di un progetto di database, in una versione precedente del file con estensione dbschema compilato e creato quando si compila un progetto di database oppure in uno o più database attivi. È inoltre possibile generare gli script necessari per fare in modo che la struttura del database di destinazione corrisponda alla struttura del database di origine. Confronto schema è disponibile solo in Visual Studio Premium e Visual Studio Ultimate.Confronto di dati di database
Consente di confrontare i dati di due database se si dispone di database attivi con schemi corrispondenti. È inoltre possibile generare gli script necessari per fare in modo che i dati nel database di destinazione corrispondano ai dati nel database di origine. Confronto dati è disponibile solo in Visual Studio Premium e Visual Studio Ultimate.Unit test del database
Consente di generare automaticamente unit test per una stored procedure o una funzione e di supportare la creazione manuale di unit test che costituiscono qualsiasi istruzione Transact-SQL valida. Grazie a questo servizio è possibile verificare che le modifiche introdotte in altri componenti non influiscano negativamente sul proprio componente. In uno unit test è possibile compilare e distribuire automaticamente il database, nonché generare dati di test riproducibili per definire uno stato iniziale congruente. Il servizio include inoltre un'API pubblica utilizzabile per scrivere condizioni di test personalizzate che consentono di aggiungere logica di convalida riutilizzabile per gli unit test. Benché sia possibile eseguire unit test del database in Visual Studio Professional, Visual Studio Premium o Visual Studio Ultimate, è necessario disporre di Visual Studio Premium e Visual Studio Ultimate per creare o modificare unit test del database.Generazione di dati
Consente di popolare un database con dati di test realistici non corrispondenti solo a una copia dei dati di produzione, che potrebbero contenere informazioni riservate. È inoltre possibile creare generatori di dati personalizzati. Il servizio include inoltre un'API pubblica per la scrittura di generatori di dati personalizzati da utilizzare con tipi di dati CLR, tipi definiti dall'utente e tipi di dati definiti dall'utente oppure per utilizzare algoritmi di generazione dati personalizzati per tipi incorporati. Per creare o modificare piani di generazione dati, è necessario disporre di Visual Studio Premium e Visual Studio Ultimate.Modifica ed esecuzione di script di database
Fornisce un editor Transact-SQL in cui è possibile creare, analizzare ed eseguire script di database la cui modalità di utilizzo è simile a quella di Query Analyzer o SQL Server Management Studio. Si tratta dello stesso editor utilizzato per modificare script nel progetto di database, pertanto offre un'interfaccia utente congruente nel caso in cui si utilizzi un progetto di database offline oppure si eseguano direttamente script a fronte di un server database attivo.
Supporto della riga di comando
È necessario poter includere in un processo automatizzato alcune tra le attività di esecuzione più comune. Per supportare questo scenario, è possibile compilare il progetto di database, distribuirlo ed eseguire dalla riga di comando unit test, che includono ad esempio la generazione di dati di test rappresentativi e prevedibili.
Vedere anche
Attività
Procedura dettagliata: creazione di un ambiente di sviluppo isolato
Procedura dettagliata: creazione di una linea di base per l'ambiente di sviluppo isolato