DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
Build automatizzate, esecuzione di unit test, creazione di un pacchetto nuget, ecco cosa serve per essere pronti con SQL Server e la continuous integration
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
La continuous integration, ovvero un insieme di pratiche di sviluppo atte a rilasciare frequentemente le modifiche al nostro codice, può essere applicata anche a SQL Server. In questa sessione andremo a descrivere come mettere sotto controllo del codice sorgente i nostri database in un'ottica di teamwork e, successivamente, a capire come automatizzare il processo di test unitario al fine di prevenire regressioni e correggere quanto prima bug.
Grazie a Team Foundation Build è possibile adottare pratiche di integrazione continua nel proprio progetto. In questa presentazione viene introdotta la struttura di tfs build assieme alle tecniche base per effettuare una customizzazione della build.
DevOpsHeroes 2016 - Realizzare Continouous Integration con SQL Server e Visua...Alessandro Alpi
In questa serie di slide vedremo come creare i build step su Visual Studio Team Services sfruttando gli add-on forniti da Red Gate, come DLM Automation 2: Build.
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
Build automatizzate, esecuzione di unit test, creazione di un pacchetto nuget, ecco cosa serve per essere pronti con SQL Server e la continuous integration
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Prepariamoci al cambiamento. ASP.NET MVC e ASP.NET Web API saranno unificati in un unico framework chiamato ASP.NET MVC 6, e questo è solo la prima di una serie di novità che stanno per arrivare.
Tutto si semplifica. Le performance migliorano. Un altro salto tecnologico in avanti portato da ASP.NET 5.
In questa sessione, infatti, vedremo tutte le novità che ASP.NET MVC 6 porta con se, e cercheremo di andare in dettaglio in modo da capire cosa voglia dire realizzare (da zero) o migrare (un'applicazione essitente) a questa nuova versione
Meetup Azure DevOps
Introduzione ad Azure DevOps e panoramica sulle principali funzionalità per il CI ed il CD del proprio software
Speaker: Simone Natalini
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
Lavorando come consulente mi sono trovato spesso di fronte a problematiche (a volte banali), ma che erano la causa di gravi problemi di performance dell'appliccazione realizzata, oppure più banali, ma che rendevano il codice meno manutenibile e gestibile, specialmente lavorando in team. Vedere che nel tempo, persone/realtà diverse, commettono gli stessi errori mi ha fatto pensare a questa sessione...dove intendo elencare i problemi più comuni, che per causa di tempo o scarsa conoscenza, vengono commessi, e proporre delle soluzioni semplici da poter applicare fin da subito. (ASP.NET, ma non solo)
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
Power BI Dataflow è il componente di trasformazione dei dati in Power BI. È un processo di Power Query che viene eseguito nel cloud. Bene, questa potrebbe non sembrare una funzionalità molto nuova, giusto? Quindi cosa c'è di nuovo con Dataflow? Le risposte alle vostre domande saranno nella mia sessione :-)
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
In questa sessione vedremo come portare i dati in ambienti QA direttamente dalla produzione, evitando ogni problema conosciuto ad oggi: spazio, tempo, numero di copie, isolamento e via discorrendo. Un annoso problema che può essere finalmente risolto con pochi click.
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
We are used to see our code under source control. What about our databases? This topic is too often underestimated. Keeping database under our control (source controlled) brings many advantages in terms of organization and quality. The distributed work become rock solid and Continuous integration is simpler to implement. In addition, we can take many advantages from testing, automated deployment and all the stuff that brings the agile methodology available to the team. We will compare also third party tools in order to understand the differences between different vendors.
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGian Maria Ricci
Come tenere sotto controllo la qualità del proprio codice tramite gli analizzatori di Sonar Qube sia dentro visual studio, sia tramite analisi automatiche del codice fatte tramite Azure DevOps Pipeoine
Windows azure - abbattere tempi e costi di sviluppoAndrea Dottor
In questa sessione vedremo come utilizzare Windows Azure per velocizzare e semplificare la realizzazione di applicazioni ASP.NET. Dallo sviluppo al deploy, passando per lo storage...andremo in dettaglio su varie funzionalità che ci faranno apprezzare ancora più la piattaforma Windows Azure.
Prepariamoci al cambiamento. ASP.NET MVC e ASP.NET Web API saranno unificati in un unico framework chiamato ASP.NET MVC 6, e questo è solo la prima di una serie di novità che stanno per arrivare.
Tutto si semplifica. Le performance migliorano. Un altro salto tecnologico in avanti portato da ASP.NET 5.
In questa sessione, infatti, vedremo tutte le novità che ASP.NET MVC 6 porta con se, e cercheremo di andare in dettaglio in modo da capire cosa voglia dire realizzare (da zero) o migrare (un'applicazione essitente) a questa nuova versione
Meetup Azure DevOps
Introduzione ad Azure DevOps e panoramica sulle principali funzionalità per il CI ed il CD del proprio software
Speaker: Simone Natalini
Il buon programmatore - consigli pratici per una vita feliceAndrea Dottor
Lavorando come consulente mi sono trovato spesso di fronte a problematiche (a volte banali), ma che erano la causa di gravi problemi di performance dell'appliccazione realizzata, oppure più banali, ma che rendevano il codice meno manutenibile e gestibile, specialmente lavorando in team. Vedere che nel tempo, persone/realtà diverse, commettono gli stessi errori mi ha fatto pensare a questa sessione...dove intendo elencare i problemi più comuni, che per causa di tempo o scarsa conoscenza, vengono commessi, e proporre delle soluzioni semplici da poter applicare fin da subito. (ASP.NET, ma non solo)
Power BI: Introduzione ai dataflow e alla preparazione dei dati self-serviceMarco Pozzan
Power BI Dataflow è il componente di trasformazione dei dati in Power BI. È un processo di Power Query che viene eseguito nel cloud. Bene, questa potrebbe non sembrare una funzionalità molto nuova, giusto? Quindi cosa c'è di nuovo con Dataflow? Le risposte alle vostre domande saranno nella mia sessione :-)
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerAlessandro Alpi
In questa sessione vedremo come portare i dati in ambienti QA direttamente dalla produzione, evitando ogni problema conosciuto ad oggi: spazio, tempo, numero di copie, isolamento e via discorrendo. Un annoso problema che può essere finalmente risolto con pochi click.
[ITA] Sql Saturday 355 in Parma - New SQL Server databases under source controlAlessandro Alpi
We are used to see our code under source control. What about our databases? This topic is too often underestimated. Keeping database under our control (source controlled) brings many advantages in terms of organization and quality. The distributed work become rock solid and Continuous integration is simpler to implement. In addition, we can take many advantages from testing, automated deployment and all the stuff that brings the agile methodology available to the team. We will compare also third party tools in order to understand the differences between different vendors.
Gestire la qualità del codice con Visual Studio, SonarQube ed Azure DevopsGian Maria Ricci
Come tenere sotto controllo la qualità del proprio codice tramite gli analizzatori di Sonar Qube sia dentro visual studio, sia tramite analisi automatiche del codice fatte tramite Azure DevOps Pipeoine
Real World Build + Release automation in Azure DevOpsGian Maria Ricci
The document discusses automating build and release processes in Azure DevOps. It recommends treating packaging and release as repetitive, traceable processes done by anyone. Key steps include:
1) Using scripts to automate builds locally with tools like PowerShell, Cake, or MSBuild.
2) Creating release builds that produce everything needed for release, like publishing sites, packaging resources, and compiling code.
3) Defining a release process in Azure DevOps that specifies builds, environments, and manages artifacts and auditing for releases.
4) Starting with manual checklists and scripts for releases, then gradually automating more tasks to reduce errors and improve reliability.
This document discusses managing automatic releases with Azure DevOps. It recommends starting with manual package and release processes to create documentation before automating repetitive tasks. When automating, configurations should be stored and managed separately from code. Pipelines should be defined in code using YAML for easy editing and maintenance. The document demonstrates multi-stage build and release pipelines in YAML and mentions future improvements for container and Kubernetes support. Overall it provides guidance for establishing a manual-to-automated DevOps cycle for continuous delivery using Azure DevOps.
Build and release in code with azure devops pipelinesGian Maria Ricci
Build and release your code with Azure pipelines defined in YAML code. Everything is in the repository, everything follow branches, and simplify creating pipelines with templates.
This document discusses Azure Pipelines and common misconceptions about it. It notes that Azure Pipelines can be used for both cloud and on-premises workloads, not just Microsoft technologies, and that maintaining agents is simplified. The document traces the history of Azure Pipelines and its predecessors. It promotes the benefits of defining pipelines in YAML, including storing them in source control, easy copying between repos, and support in Visual Studio Code. Future improvements may include multi-stage pipelines and releasing directly to environments using YAML.
This document discusses semantic versioning, GitFlow branching model, and how to automate versioning and packaging of code using GitVersion, NuGet, and Chocolatey. It recommends:
- Using semantic versioning (MAJOR, MINOR, PATCH) to manage versions in a Git repository.
- Implementing GitFlow branching model with main branches for development (develop) and releases (master).
- Leveraging GitVersion tool to determine semantic versions based on branches and commits.
- Automating builds to modify version numbers, compile code, run tests, create NuGet packages, and publish packages.
- Packaging and distributing applications using Chocolatey by creating NuGet packages containing
The document discusses using PowerShell Desired State Configuration (DSC) to automate the deployment and management of environments. It describes how DSC can be used to specify the desired state of an environment and have PowerShell work to ensure the actual state matches that desired configuration. This involves authoring DSC configurations that define resources and their desired properties, then applying those configurations to automatically install software, configure systems, and ensure services are running as specified. The document provides examples of using DSC to deploy a website along with its database components in a multi-step process.
This document discusses Application Insights, a service that provides automatic instrumentation of applications to monitor application health and performance. It provides an overview of logging benefits, costs of logging, and how Application Insights addresses these. The document outlines how Application Insights can instrument applications automatically or with custom logging, and demonstrates setting up synthetic monitors and custom logging.
This document discusses how to deploy .NET applications with TFS Build including:
- Deploying web applications to Azure or IIS using TFS build and Azure publishing
- Deploying SQL Server databases using database projects
- Deploying click-once applications and NuGet packages from TFS builds
It provides demonstrations of deploying to Azure, IIS, databases, and publishing NuGet packages and emphasizes the value of continuous deployment and testing for fast failure detection.
Presentation to show what are the differencies from branching feature in Git and standard centralized source control.
Presentation done at London Microsoft ALM User Group http://www.meetup.com/London-Microsoft-ALM-User-Group/events/219367230/
The document discusses the advantages of using Microsoft's Team Foundation Server (TFS) Service for application lifecycle management (ALM) in the cloud. It notes that TFS Service provides high availability, easy upgrades, and lower operational costs compared to an on-premise TFS solution. Additionally, TFS Service offers source control, work item tracking, build servers, testing tools, release management capabilities, and Application Insights out of the box as a complete ALM solution. The document recommends being prepared to choose between TFS Service or an on-premise TFS based on individual needs and priorities.
This document contains contact information for an individual and several websites. It lists an email address for an Alkampfer at Nablasoft.com, as well as URLs for codewrecks.com, blogs.ugidotnet.org/rgm, and getlatestversion.it.
The document discusses strategies for organizing team projects in Team Foundation Server (TFS). It describes the structure of TFS including project collections, team projects, and teams. It notes that many teams struggle to choose the right strategy for organizing team projects. The document then examines the pros and cons of using a single team project versus multiple team projects to organize teams and backlogs. It demonstrates in TFS 2012 how to manage teams and backlogs. While a single team project can provide consolidation, it warns of disadvantages like reduced security and process template flexibility compared to using multiple team projects.
The document appears to be a presentation about using Git for source control management. It discusses why developers should use Git and the mind shift required compared to other systems like TFVC. It also covers some of Git's capabilities like branching and its ability to act as a bridge between different version control systems. The presentation encourages attendees to try out Git themselves to see if it is a good fit for their team.
9. Si deve generare uno script per ogni possibile versione che si ha in produzione
10.
11. Database Project Visual Studio Database Edition (Team System Developer o Team Suite) introduce il concetto di Database Project Un Database Project è un progetto dedicato per lo sviluppo di database Lo scopo finale è garantire un’integrazione completa dello sviluppo DB nell’ALM
12. Quando introdurre un Database Project nel ciclo produttivo Grazie all’importazione automatica è possibile introdurre un Database Project anche in un progetto iniziato Le molte funzionalità fornite, tra cui il controllo sintattico e dei riferimenti tra oggetti porta immediati vantaggi. E’ comunque necessario che gli sviluppatori abbiano una familiarità con lo strumento, per cui è consigliabile un progetto pilota Operare immediatamente su un progetto relativo ad un database complesso può essere dispersivo Importazione DB Dev DB Project
14. Ogni oggetto un file Il paradigma più importante è che ogni oggetto è identificato da un file sorgente In questo modo è possibile confrontare le varie versioni e monitorare l’evoluzione degli oggetti del database nel tempo Il database viene effettivamente “modellato” partendo da dei file sorgente CREATE TABLE [dbo].[Customers] ( [CustomerID] NCHAR (5) NOT NULL, [CompanyName] NVARCHAR (40) NOT NULL, [ContactName] NVARCHAR (30) NULL, [ContactTitle] NVARCHAR (30) NULL, [Address] NVARCHAR (60) NULL, [City] NVARCHAR (15) NULL, … CREATE TABLE [dbo].[Customers] ( [CustomerID] NCHAR (5) NOT NULL, [CompanyName] NVARCHAR (40) NOT NULL, [ContactName] NVARCHAR (30) NULL, [ContactTitle] NVARCHAR (30) NULL, [MainAddress] NVARCHAR (60) NULL, [City] NVARCHAR (15) NULL, …
15. Sviluppo dichiarativo Un database project contiene al suo interno tutte le dichiarazione di creazione degli oggetti Si può passare dalla dichiarazione, alla generazione del database e di nuovo al codice Nel database project sono contenute le definizioni di tutti gli oggetti che compongono un database: tabelle, storedprocedures, funzioni, utenti, assembly CLR, trigger, indici, etc. Tutti questi file sorgente possono essere “compilati” per generare artefatti. Per contro gli sviluppatori necessitano della conoscenza della sintassi T-SQL relativa alla creazione degli oggetti, ma si può sempre usare il Management Studio e poi portare il codice in Visual Studio
19. Analisi di codice Procedura analoga a quella disponibile sui normali progetti C# o VB Permette di analizzare il Database Project al fine di evidenziare pattern di codice critici Suddivise in tre distinte categorie: Naming, Performance e Design attivabili distintamente Possibilità di attivare/disattivare non solo le categorie ma i singoli warning Mostra punti con possibili problemi nel codice.
20. Controllo di versione Visualizzando la storia di un file si ottiene la storia del corrispondente oggetto del DB Si può effettuare un confronto tra le versioni per vedere come un oggetto è cambiato nel tempo Si può capire chi e quando ha scritto una particolare porzione di codice e perché Si può effettuare un rollback annullando le modifiche
22. Deploy Il database logico può essere confrontato con un database fisico per generare uno script di aggiornamento Il confronto non necessita di avere una istanza “viva” del database di sviluppo Confronto DB Logico DB Fisico
23.
24.
25. Un’altra situazione è quella in cui un database di test viene ottimizzato da un DBA, che crea indici o modifica le viste direttamente in un’istanza di test.
26.
27. Come viene effettuato il deploy Il confronto passa sempre per lo schema model Le differenze vengono calcolate in base agli Schema Model Sulla base delle differenze viene generato lo script di upgrade Nella generazione si tiene conto delle caratteristiche delle varie versioni Schema Model Schema Model Diff
28. Interfaccia per VsDbCmd.exe Il tool di deploy è un utility a riga di comando chiamato VSDBCMD.exe Il formato “Riga di comando” è eccezionale per includerlo in procedure automatiche di setup e di aggiornamento del db. L’essere ridistribuibile permette di includerlo in programmi di aggiornamento senza spese di sorta Per semplificarne l’uso, un MVP Team System ha sviluppato una interfaccia grafica che permette di specificare le opzioni tramite una GUI molto più userfriendly rispetto alla modalità in riga di comando. Ulteriori dettagli sul mio blog http://blogs.ugidotnet.org/rgm/archive/2009/10/14/una-mini-ui-per-vsdbcmd.exe.aspx
33. Unit test del database Equiparazione tra database unittesting e code unittesting Strutturazione del test con il classico fourphase test. Dietro le quinte è sempre presente un normale test C# o VisualBasic generato dal designer, che costituisce il wrapper del database test. La classe wrapper può, se necessario, essere modificata per aggiungere funzionalità Wrapper FixtureSetup T-Sql Code TestSetup T-Sql Code Test T-Sql Code TestCleanup T-Sql Code FixtureTeardown T-Sql Code
35. Data Generation Plan Motore di generazione di dati per test. Altamente configurabile Rispetta chiavi, relazioni e vincoli del database Genera dati in maniera ripetibile Può generare dati sulla base di dati preesistenti su un database di test Espandibile con generatori custom per soddisfare qualsiasi esigenza
37. Refactoring Alcune operazioni su db sono molto invasive, come ad esempio il rinominare una colonna di una tabella Grazie alla conoscenza della struttura, in un Database Project questa operazione può essere automatizzata Il Visual Studio mostra tutte le modifiche che verranno effettuate al progetto prima di aggiornare tutti gli oggetti che fanno riferimento all’oggetto modificato È possibile avere una preview dettagliata per capire l’impatto che la modifica avrà nel database I refactoring sono possibili sia per le tabelle, ma anche per altri oggetti, come trigger, storedprocedures, funzioni
38. Refactoring - Dettagli Tabelle Rename: Rinomina una tabella o colonna MoveToSchema: Sposta una tabella in uno schema differente FullyQualifyName: Qualifica in modo completo i nomi con il nome a tre parti databasename.schema.name View (tutte quelle delle tabelle più) ExpandWildcards: Analizza una stored ed ogni volta che viene trovato il wildcard * in una selezione lo espande. Stored e funzioni Rename: Rinomina una stored funzione o parametro MoveToSchema: Sposta una tabella in uno schema differente ExpandWildcards: Analizza una stored ed ogni volta che viene trovato il wildcard * in una selezione lo espande. FullyQualifyName: Qualifica in modo completo i nomi con il nome a tre parti databasename.schema.name
39. Altre caratteristiche Visualizzazione dipendenze Permette di visualizzare, partendo da un oggetto radice, le dipendenze che esso ha nel database. Vengono mostrati gli oggetti che dipendono dall’oggetto radice, ma anche gli oggetti da cui l’oggetto radice dipende È possibile gestire le ExtendedProperty dei vari oggetti Supporto dell’integrazione con CLR Possibilità di aggiungere assembly al database project Gestione dei tipi nativi Modella qualsiasi oggetto supportato dal motore di database Certificati Chiavi di sicurezza Utenti Code / Servizi Etc.
41. Mantenere il numero di versione È sempre utile creare e mantenere una tabella con il numero di versione nel database Nel post deploy script si aggiunge uno script per inserire il numero di versione, solitamente si esegue un insert, in modo da conoscere tutte le versioni passate di un database Fondamentale quando avvengono modifiche al db che non possono essere propagate automaticamente dal tool di aggiornamento struttura. In questo caso infatti un predeployment script, può effettuare aggiornamenti specifici, conoscendo il numero attuale di versione. Utile se da codice si vuole permettere di usare una versione vecchia del database senza forzare un aggiornamento. Fondamentale per diagnostica, permette di capire la storia del database in caso di problemi
42. Ridurre le dimensioni degli script di reference I file di riferimento delle strutture master sono molto grandi e rallentano molto il Visual Studio Dato che sono file normali XML se ne può fare una copia e lasciare in essa solo le funzioni che si vogliono referenziare. Questa operazione può cambiare drasticamente i tempi di apertura del progetto e di compilazione. Necessario ogni qualvolta si faccia riferimento a funzioni base presenti nel database Master
43. Eseguire programmaticamente un data generation plan Ai fini del testing può essere molto utile eseguire in maniera programmatica un Data Generation Plan È possibile sfruttare msbuild da codice C# o VB per automatizzare l’operazione. In questo modo si può decidere quando e quale piano di generazione eseguire prima di ogni test. Generation Plan Test Data DB Database Project
44. Integrazione con Team Build E’ possibile integrare il deploy del progetto DB in una team build. Es, progetto web. In questo modo si automatizzano le procedure di deploy, sia nell’ambiente di test che in produzione TFS Aggiorna Web Check In Sincronizza DB Build Server DB Test
45. Test In memoria Grazie al concetto di “variabili” è possibile parametrizzare i sorgenti del progetto In particolare si può utilizzare un RAMDisk e far creare i file di database in memoria Utilizzando questa tecnica per un deploy locale per gli unittesting, si può velocizzare l’esecuzione. Test in memoria
46. Test transazionali Un test transazionale è un test che non modifica il contenuto del db È possibile rendere ogni test di database transazionale semplicemente aggiungendo codice alla classe wrapper. In questo modo dopo ogni test il contenuto del database viene riportato al contenuto iniziale, ed i test sono più ripetibili Wrapper FixtureSetup Test Setup BeginTransaction Test Execute test code TestCleanup RollbackTransaction FixtureTeardown
48. Estendibilità Il Visual Studio database edition può essere esteso in vari punti http://msdn.microsoft.com/en-us/library/aa833285(VS.100).aspx Condizioni di test custom per gli unit test su oggetti di database Regole custom per l’analisi di codice Refactoring custom, sia definendo nuovi refactoring per tipi di oggetti esistenti, sia definendo refactoring per tipi che di base non supportano refactoring. Nuovi generatori dati.
49. Database Supportati Visual Studio 2008 Database Edition GDR2 Sql Server 2000 Sql Server 2005 Sql Server 2008 Visual Studio 2010 Database Edition Aggiunto il supporto per Oracle tramite un plugin esterno chiamato TeamFuze: http://www.teamfuze.net/index.jspa IBM ha annunciato il supporto a DB2, ma attualmente non c’è un link pubblico per poterlo provare. L’intero modello della struttura di un database project è estendibile, è quindi possibile virtualmente fornire supporto a qualsiasi tipologia di database relazionale.
50. Data Dude 2010 Alcune funzionalità sono presenti direttamente nella versione Professional Per le team build non è più necessario installare la versione completa DatabaseEdition per compilare progetti di database. Questo evita di usare una licenza per ogni macchina di build. Maggiore estendibilità La nuova versione dei Database Project presenta alcune migliorie ed innovazioni rispetto la versione attuale Intellisense: nell’editor del codice T-SQL è presente l’integrazione dell’intellisense dell’editor di Sql Server 2008 R2 T-Sqldebuger: integrazione del debugger di Sql Server 2008R2 all’interno di Visual Studio 2010
51. Data Dude 2010 - Versioni Visual Studio 2010 Premium/Ultimate Database Unit Testing* Command Line Deploy Schema Compare Data Compare Refactoring Data Generation* Static Code Analysis* Project System IntelliSense Build Deploy Build Integration Visual Studio 2010 Professional