Declarative Database Development with SSDT Randy Pagels Sr. Developer Technology Specialist Microsoft Corporation rpagels@microsoft.com www.teamsystemcafe.net Too Many Details Need to preserve data puts focus on ALTER scripts Dependencies make even simple tasks complex Promoting databases across environments Error Detection Errors detected too late Drift has to be accommodated Keeping in Sync Versioning your database as your application evolves Developing for different target platforms Migrating databases to the cloud Creating one package for multiple deployments Developer-focused toolset Author, debug, and build SQL Server and SQL Azure databases Compile, refactor, and deploy databases Single cohesive environment Supported in VS 2010 & VS 2012 Core Experiences Connected Development Project Based Development Application Lifecycle & Tools Fundamentals Target SQL Server and SQL Azure Detect and manage database drift Declarative, model based database development Integrated tools with modern language services Connected and offline with unit testing capabilities Developer-focused toolset to author, debug, and deploy SQL Server & Windows Azure SQL Databases SQL Server Object Explorer SQL Static Code Analysis Table Designer SQL Language Services Buffered Declarative Editing Isolated Local Database Runtime Schema Comparison Database Unit Testing SQL/CLR Database Publishing SQL Debugging Data Tier Application Framework (DACFx) Core SQL Server component providing database modeling, reverse engineering, and deployment Package-centric framework (.dacpac/.bacpac) Self contained database entities used by an application Authored alongside your application code in Visual Studio Consistent story for development, migration, and versioning across the SQL Server platform Runtime powering SSDT and other client tools DAC support in SSDT, SSMS 2012, Azure Portals, Import/Export Service Provides command-line tool and Managed API Supports targeting SQL Server and Azure SQL DB Visual Studio DAC FX Database is a project that builds into DACPAC SSDT T-SQL DOM LocalDB Code can be tested locally (F5) T-SQL Compiler Syntax and semantic validation during compilation Connectivity Microsoft Confidential 6/14/2011 Connected Development Project Based Development Schema Deployment SQL Server Object Explorer Source Code Control Schema Comparison T-SQL Editing and Debugging F5 with LocalDB Project Publish Table Designer Multi-Targeting Script Generation View/Edit Data Go To Definition/Find All References Project Snapshot Errors and Validation Refactoring and Intellisense MSBuild Tasks Power Tools MSBuild SqlPackage.exe SSOX SQL Server Object Explorer (SSOX) Modeled after SSMS object explorer Modern Experience Modern T-SQL Coding Experience Buffered Declarative Object Editing Model based with error detection Imperative Script Execution T-SQL Intellisense Modern Design Code-behind Table Designer View/Edit/Script Data (incl. copy/paste) Execute/Debug T-SQL Procedures, Functions Visual Studio IDE Database definition managed in VS project Multi-target to SQL Server {2005-2012} or SQL Azure Advancements Language Services for T-SQL Go To Definition/Find All References/Refactoring F5 debugging with LocalDB Tightly Integrated Visualize schema differences and migrate changes Publish direct to database or via SQL script or DACPAC Integrated database drift detection Point-in-time Snapshot Drag & Drop import from SQL Server Object Explorer MSBuild Tasks Build Publish T-SQL Static Code Analysis MSBuild Utilities Redist SSDTBuildUtiities.msi DB projects in build server environment No need to install full copy of VS Standard Integration SSDT integrates with all standard VS SCCS providers DACFX v3 Schema compare Publish Text/Icon/Pic Target Version Aware SQL Server 2005 SQL Server 2008 SQL Server 2008 R2 SQL Server 2012 SQL Azure Publish Direct via SQL script DACPAC snapshots SQL Server Management Studio Windows Azure SQL Database Reverse Engineer SQL Server Data Tools Azure Management Portals SQL DACFx Deploy/Upgrade Script/Report SQL Server 2005, 2008/R2, 2012 Demo Connected or Online Development Project Based Development Comparison & Publishing DAC Framework DAXFX is the core SQL redist providing modeling, reverse engineering, and deployment pipline capabilities V3.o supports the full domain of SQL 2005, 2008/R2 2012, and Azure Managed Public API Exposes verbs for DACPAC and BACPAC operations Command-line Tool Exposes DACPAC verbs, project publish DAC Tooling DACUnpack.exe Windows file handler for unpacking DACPAC to disk DACFX Clients SSMS, SSDT, SAMP, I&E, VS Web and DB Publishing VS 2010 Database Projects SSDT SQL Server Database Projects Visual Studio 2010 with SSDT Visual Studio 2012 Optional conversion to SSDT Project Mandatory upgrade to SSDT Project Project and Assets Roundtrip without conversion Project Comparison & Migration Details http://blogs.msdn.com/b/ssdt/archive/2011/11/21/sql-server-data-tools-ctp4-vsvs2010-database-projects.aspx Toolset to Author, Debug, and Publish Databases Target SQL Server & SQL Azure BIDS tooling installs as part of SQL 2012 when SSDT is selected SQL CLR Development supported Free web updates for SQL Server and SQL Azure releases Works in concert with other SQL Server tooling (SAMP, SSMS) Supports your development environment Used with Visual Studio 2010 SP1 & Visual Studio 11 Easily migrates VS 2010 database projects (*.dbproj) Visit Team System Café Today! The door is open 24/7 at the café! Stop by for a cup of joe and delicious tidbits on AppDev topics! http://www.teamsystemcafe.net SSDT Home Page http://msdn.microsoft.com/data/t ools Downloads SSDT for VS2010/VS2012 http://msdn.microsoft.com/enus/data/hh297027 DACFx Redist http://www.microsoft.com/enus/download/details.aspx?id= 34964 Docs, Forums, and Blog http://msdn.microsoft.com/enus/library/hh272686.aspx http://social.msdn.microsoft.com/For ums/en-US/ssdt http://blogs.msdn.com/b/ssdt Tightly Integrated into VS IDE SQL Database project ype Create New or Import Existing Schema from: - .dacpac - Existing database - .sql script