O Futuro do Data Dude (VS DBPro)

932 visualizações

Publicada em

Conheça a evolução do Visual Studio DbPro: SQL Server Data Tools

Publicada em: Tecnologia
0 comentários
1 gostou
  • Seja o primeiro a comentar

Sem downloads
Visualizações totais
No SlideShare
A partir de incorporações
Número de incorporações
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • Developer-focused toolset for building SQL Server & SQL Azure databasesExperiences EnabledDESENVOLVIMENTO CONECTADODESENVOLVIMENTO BASEADO EM PROJETOApplication Lifecycle & ToolsFundamentalsDeclarative, model based database developmentIntegrated tools with modern language services Connected and offline with local testingTarget SQL Server and SQL AzureDetecting and managing database drift
  • SQL Server Object Explorer (SSOX)Modeled after SSMS object explorerModern T-SQL Coding Experience Buffered Declarative Object EditingModel-based with Error DetectionImperative Script ExecutionT-SQL IntelliSenseCode-behind Table DesignerView/Edit/Script Data (incl. copy/paste)Execute/Debug T-SQL Procedures, Functions
  • Database definition managed in a Visual Studio projectMulti-target SQL Server {2005, 2008, 2008R2, 2012, Azure}Advanced Language Services for T-SQLGo To Definition/Find All References/RefactoringF5 debugging with LocalDBVisualize schema differences and migrate changesPublish direct to database or via SQL script or DACPACIntegrated database drift detectionPoint-in-time SnapshotDrag & Drop import from SQL Server Object ExplorerApplication Lifecycle & ToolsMSBuild tasks for:BuildPublishT-SQL Static Code AnalysisMSBuild in a redist (SSDTBuildUtilities.msi)Database projects in build server environment (like Team Build) without installing full VS on build serverSSDT Integrates with all standard VS SCCS providersDACFX v3Schema ComparePublish
  • Publishing your Database ChangesTarget version aware:SQL Server 2005SQL Server 2008 & SQL Server 2008 R2SQL Server 2012SQL AzurePublish Direct, via SQL script, or DACPAC snapshots
  • DAC Framework v3.0 (DACFX)DAC FrameworkDACFX is the core SQL redist providing modeling, reverse engineering and deployment pipeline capabilitiesv3.0 supports the full domain of SQL Server 2005, 2008/R2, 2012, and SQL AzureManaged Public APIExposes verbs for DACPAC and BACPAC operationsCommand-line tool (SqlPackage.exe)Exposes DACPAC verbs, project publishDACUnpack.exeWindows file handler for unpacking DACPAC to diskDACFX ClientsSSMS, SSDT, SAMP, I&E, VS Web and DB Publishing
  • SQL Server Data Tools – SummaryDeveloper-focused toolset to author, debug and publish SQL Server & SQL Azure databasesSupports SQL PlatformFree, web updates for SQL Server and SQL Azure releasesWorks in concert with other SQL Server tooling (SAMP, SSMS)Compatible with your development environmentSupports Visual Studio 2010 & Visual Studio 11Migrates VS2010 database projects (*.dbproj)
  • Schema Compare is an incredibly useful tool, providing a visual head over SSDT’s model differencing and update engine. It can be used to compare any combination of database, project or dacpac, and allows selective update of the target schema (via an update script in the case of a dacpac). We’ve made some significant changes to the tool for the RTW release, improving its look and feel, particularly to make it easier to digest and process comparison results. This post describes many of Schema Compare's key features – some of which surfaced in CTP4 – with a screen shot at the bottom that highlights several of them.First, the visual comparison ‘language’ of the results grid:Differences-Only by Default: By default the grid contains differences only (with empty folders removed) – if there is only one difference you will see just one item. And the grid always contains all the actions resulting from the comparison – while you can hide an action temporarily within a contracted group it is always present in the grid and will apply to the update or script unless you exclude it by unchecking the action.Equal Objects filter:A toolbar button adds equal objects to the grid. Enabling this is useful if you want to review, for example, unchanged columns alongside the changed columns in a table. Unsupported Actions filter: You can also choose to see unsupported actions – these result from differences for which there is no supported action that can be taken on the target. These typically result from differences in server objects or built-in types between schema versions.Action Icons: Actions (Add, Change, and Delete) are visualized using icons, making it easier to absorb a set of changes at a glance. The checkbox alongside an icon indicates if the action will be included in the update or generated script. If there is no icon the item will not be included in an update or script.Grayed Items: Items that do not contribute to the update are grayed – excluded actions, unsupported actions and equal objects are all grayed. Folders are grayed when all their contents are grayed making it easy to see when a group of differences have all been excluded without you needing to drill in.Grouping: By default, items are grouped by action so you can quickly assess what changes will be made on update. You can also group the results by object type or by schema. You can expand or collapse a group to temporarily hide detail, and you can exclude all or include all objects in a group.Refactor Highlighting: Schema Compare processes the refactor log if present when targeting a database. Refactoring is indicated in the grid as a change action with the source name bolded to highlight the new schema and/or name. Refactoring will cause objects to be renamed in the database. Refactoring sometimes also shows up as a second order effect on other objects that SQL Server will modify when applying the rename. These will not be marked as actions in the grid as you cannot exclude them, but you will see the changed script if you select the affected object. Probably the biggest set of changes affects the script difference pane. While the grid provides a great overview, to see all changes to an object in the grid you have to fully expand it, which, can quickly clutter the view if you're reviewing many objects. To address this we’ve focused more attention on the script differencing experience – after all, you are writing and editing object scripts to begin with. Changes include:Expanded Object Scripts: The script difference pane now shows the combined scripts for an object and its hierarchical children. This gives a complete picture of all the changes affecting an object in one easy-to-scan place. To complement this, the Next and Previous buttons step between top-level objects only. Together, these two changes can dramatically simplify scanning through the results of a comparison. Enhanced Script Differencing: The script difference algorithm now treats child objects as discrete entities, more effectively highlighting those that have been added, deleted or changed. The color scheme is now more subtle and better reinforces the direction of changes. And remember that you can expand the script pane or swap it to the top – so you can easily optimize the layout to better focus on reviewing scripts.The screen shot below highlights many of these improvements.
  • O Futuro do Data Dude (VS DBPro)

    1. 1. ALM Summit Brasil 2012 – 27, 28/04/2012O Futuro do Data Dude (VS DBPro)
    2. 2. @IgorAbadeblog.lambda3.com.br/L3/IgorAbade
    3. 3. Agenda3 • Introdução • Desenvolvimento Declarativo de Banco de Dados • Desenvolvimento Conectado • Desenvolvimento baseado em Projeto • Integração com Ciclo de Vida da Aplicação
    4. 4. 4Introdução
    5. 5. O Problema• Historicamente bancos de dados têm sido implementados usando ferramentas e processos desconexos do desenvolvimento de aplicações• Difícil de implementar controle de mudança
    6. 6. O Problema • Difícil de integrar o desenvolvimento de BDs na Gestão do Ciclo de Vida de Aplicações (Application Lifecycle Management - ALM) • Hoje em dia o mesmo desenvolvedor tipicamente implementa a camada de acesso a dados e o próprio banco de dados
    7. 7. A Solução• Estabelecer e suportar um Ciclo de Vida de Desenvolvimento de Bancos de Dados (Database Development Lifecycle - DDLC) – Ferramentas, metodologias e processos para o desenvolvedor de BDs• Integrar o DDLC ao resto do ciclo de ALM
    8. 8. Database Development Lifecycle (DDLC)• Desenvolva bancos de dados usando ferramentas e processos similares a desenvolvimento de aplicações• Escreva código T-SQL direto no Visual Studio – Deixe o desenvolvedor declarar o que ele quer – CREATE TABLE Clientes(…); – A ferramenta que “se vire” para descobrir como criar/modificar o banco de dados• Use as mesmas ferramentas de autoria e gestão de código – Controle de Versão, Refactoring, Análise de Código, Testes de Unidade, Automação de Build
    9. 9. Integrando DDLC com ALM• Implemente as mudanças em cada camada da aplicação a partir da mesma Solução do Visual Studio• Use Controle de Versão (ex. TFS) para acompanhar e gerenciar mudanças feitas a cada camada• Use Testes de Unidade para verificar automaticamente as interações entre aplicação/camada de negócios e o banco de dados
    10. 10. História do Projeto “DataDude”10 • Projeto fundado em Abril de 2005 – Iniciado em 1º de Julho de 2005 • Visual Studio 2005 Team System for Database Professionals • Visual Studio Team System 2008 Database Edition • Visual Studio Team System 2008 Database Edition GDR R2 • Visual Studio 2010 Premium • SQL Server 2012 Data Tools
    11. 11. Roadmap • • • Suporte a SQL Azure Designers Visuais Mecanismo unificado de implantação • Suporte a apps missão crítica • Introdução a projetos Data-tier Application • Suporte completo a objetos SQL • Projetos Data-tier Application (DAC) e • Melhorias no sistema de projetos Database (SQL) operam SxS • Melhorias nas funcionalidades de ALM VS 2005 VS 2008 “GDR” VS 2010 SSDT • Suporte a SQL 2008 R2• Controle offline de mudanças • SQL IntelliSense• SQL 2000/2005 • Suporte a bancos de dados de• ALM para bancos de dados terceiros SQL Server Data Tools (SSDT) • Suporte a SQL 2008 • Separação de Build e Deploy • Remoção do “DesignDB”
    12. 12. Apresentando SQL Server Data Tools12
    13. 13. DESENVOLVIMENTO CONECTADO13 T-SQL IntelliSense Drift Detection Table Designer SQL Server Object Explorer T-SQL Debugging View Code Schema Comparison T-SQL Editor View/Edit Data Error Information
    14. 14. DESENVOLVIMENTO BASEADO EM14 PROJETO Point-in-time Go To Definition Source Code Based Source Code Control Snapshots Visualize Schema Find All References MSBuild Differences F5 Debugging & Testing with LocalDB Headless Command T-SQL Static Code Refactoring Line Tools Analysis
    15. 15. IMPLANTAÇÃO DE SCHEMA15 Model Based SQL Server 2005 DACPAC Format SQL Server 2008 SQL Server 2012 Incremental SQL Azure Connected Engine IMPLANTAÇÃO DE SCHEMA Retargeting Support SQL Script API & REDIST
    16. 16. SQL Azure Management Portal Importar Publicar Exportar Comparar Registrar Sincronizar DACSQL Server Data Tools SQL Server Management Studio
    17. 17. 18Desenvolvimento Declarativo deBanco de Dados
    18. 18. Exemplo de Versionamento de BD19 -- version 1 -- version 2 CREATE TABLE dbo.Auction ALTER TABLE dbo.Auction ( WITH CHECK ADD CONSTRAINT Au_PK id INT NOT NULL, name VARCHAR(25) NOT NULL, -- version 3 start DATETIME NULL, ALTER TABLE dbo.Auction len INT NULL WITH CHECK ) ADD CONSTRAINT Au_SK UNIQUE (name) V1 V2 V3 Revision History
    19. 19. Modelo Imperativo20 • Scripts Imperativos mantém “hard-coded” conhecimento sobre: – O estado do sistema-alvo • Presença de objetos, dependências etc. • Ordem correta das operações – Mudanças cumulativas precisam ser serializadas • v1v2v3v4v5 ao invés de v1v4v5 – Validar o resultado final contra o esperado é difícil
    20. 20. Versionamento Imperativo21 -- version 1 Add table dbo.Auction IF OBJECT_ID (Ndbo.Auction, NU) IS NULL BEGIN CREATE TABLE dbo.Auction (` id INT NOT NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL ) END -- version 2 Add PK Au_PK IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = Au_PK AND type = PK) BEGIN ALTER TABLE Auction WITH CHECK ADD CONSTRAINT Au_PK PRIMARY KEY (id) END -- version 3 Add UC Au_SK IF NOT EXISTS (SELECT * FROM sys.key_constraints WHERE name = Au_SK AND type = ‘UQ) BEGIN ALTER TABLE Auction WITH CHECK ADD CONSTRAINT Au_SK UNIQUE (name) END
    21. 21. Modelo Declarativo22 • Define o que você quer na forma de um modelo • Preencha o modelo usando uma DSL (domain specific language) – T-SQL DDL • Use o modelo como ponto de partida para todas as operações – Implantação/publicação: Começa comparando o estado do alvo com o estado desejado – Usa o conhecimento obtido sobre a diferença entre estados para gerar um plano de implantação – Usa o plano para criar uma sequência de comandos (SQL) necessária para fazer com que o alvo atinja o estado desejado
    22. 22. Versionamento Declarativo23 -- version 1 CREATE TABLE dbo.Auction -- version 2 ( CREATE TABLE dbo.Auction -- version 3 id ( INT NOT NULL, dbo.Auction CREATE TABLE name id ( INT NOT NOT NULL, VARCHAR(25) NULL PRIMARY KEY, start DATETIME INT NOT NOT NULL, name id NULL, VARCHAR(25) NULL PRIMARY KEY, len start NULL VARCHAR(25) NOT NULL UNIQUE, INTname DATETIME NULL, ) len start NULL INT DATETIME NULL, ) len INT NULL ) V1 V2 V3 Revision History
    23. 23. Implantação Declarativa de Schema24 24 Source Target Model Reverse Schema Schema Compare Engineer Model Model Diff List Plan Optimizer Artefatos de schema Deploy Plan adicionais Script Generator Script Target Executor Atualização Incremental DB
    24. 24. Imperativo vs. Declarativo25 • Manual vs. Gerado • Ponto-no-tempo vs. Atualizado • Sequencial vs. Diferencial
    25. 25. Implantação e Comparação de Schema26 Script Script Model Model Builder Builder Fragment Fragment Source Target Reverse Reverse DB Schema Schema DB Engineer Engineer Model Model Model Schema Model Compare Model Schema Package Serializer Serializer Package Diff List Plan Diff Optimizer Visualizer Deploy Plan Script Generator
    26. 26. Baseado em Modelo27 • Todos os objetos de um .SQL Source schema são Processar (parse) representados dentro do modelo SqlScript Dom • Permite implantação em Interpretar diferentes bancos de dados Modelo de Schema
    27. 27. ScriptDom28 • SQL Server 2012 Managed Parser – Suporta SQL Server 2005+ • Class TSqlXXXParser – XXX = [80, 90, 100, 110] • SQLDom.msi (redist x86/x64) • Microsoft.SqlServer.TransactSql.Scr iptDom.dll – C:Program Files (x86)Microsoft SQL Server110SDK AssembliesMicrosoft.SqlServer.Tra nsactSql.ScriptDom.dll – GAC
    28. 28. Exemplo de ScriptDom29 static void Main(string[] args) { bool initialQuotedIdentifiers = false; TSqlParser parser = new TSql110Parser(initialQuotedIdentifiers); StreamReader sr = new StreamReader(@".test.sql"); IList<ParseError> errors; TSqlFragment fragment = parser.Parse(sr, out errors); StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()); Sql110ScriptGenerator scriptGen = new Sql110ScriptGenerator(); scriptGen.GenerateScript(fragment, sw); }
    29. 29. DesenvolvimentoConectado • Imperativo & Declarativo • Autoria e Implantação de Schemas
    30. 30. Desenvolvimento Conectado31 • SQL Server Object Explorer (SSOX) – T-SQL Editor/Debugger/IntelliSense (New Query) – Power-Buffer (New Object/View Code) – Table Designer (View Designer) – Data Editor (View Data) – Execute Procedure/Function • Schema Compare
    31. 31. SQL Server Object Explorer (SSOX)• Ferramenta de Navegação do SQL Server no Visual Studio – Baseada no SSMS Object Explorer – Escopo no Servidor vs. Server Explorer (escopo no banco de dados) – Ponto de partida: T-SQL Editor, Debugger, Object Execution, Designers…• Permite conectar diretamente ao SQL Server – SQL Server {2005, 2008, 2008R2, 2012} and SQL Azure – Constrói um modelo parcial em segundo plano, transparentemente• Suporte a – Cascading Drops / Renames – Drift detection – DSRef drag source
    32. 32. SSOX Drift Detection33 • Detecta automaticamente alterações no banco de dados – Mantém SSOX atualizado • Taxa de atualização do SSOX – Determina a frequencia com que o SSOX verifica por alterações – Padrão: 30 segundos (não pode ser menos) – Para ajustar: • HKEY_CURRENT_USERSoftwareMicrosoftVisualStudio10.0SQLDB DialogPageMicrosoft.VisualStudio.Data.Tools.Package.ToolsOptions. OnlineEditing.OnlineEditingOptionsSettings "PollingDriftCheckSeconds"="30"
    33. 33. Comparação de Schema34
    34. 34. SQL Server Object Explorer
    35. 35. DesenvolvimentoBaseado em Projeto Autoria e Implantação de Schemas, Offline e Isolado
    36. 36. Desenvolvimento Baseado em Projeto• Projetos de Bancos de Dados• Referências de Bancos de Dados• Publicação de Projetos
    37. 37. Projetos de Bancos de Dados38 • Modelo único de projeto NOTA: • Importar a partir de • Não há distinção – Banco de Dados entre projetos de – DACPAC servidor ou – Script SQL (suporta multi-arquivos) banco de dados – Importação seletiva via Schema Compare • Projetos de • “Create New Project” a partir do SSOX servidor são – Herda versão do banco de dados projetos normais, aponta ndo para o banco de dados master
    38. 38. Arquivos de Projeto39 • *.sqlproj – Arquivo de projeto MSBuild • *.sqlproj.user – Opções de usuário para o projeto • *.dbmdl – <projeto>.dbmdl: schema model cache file • É o resultado da compilação do projeto (como assembly para .NET) • Não deve ser colocado no controle de versão
    39. 39. Serviços de Linguagem40 • O uso de projetos habilita os seguintes serviços de linguagem – Go To Definition – Find All References – Refactoring • Rename (propaga renomeação de objetos) • Move to Schema (transfere o objeto de um schema para outro) • Wildcard Expansion (remove os asteriscos do tipo “SELECT *”) • Fully Qualify Name (qualifica os nomes de objeto como <banco>.<schema>.<obj> • Invocado a partir do Editor, Table Designer e SQL Server Object Explorer para todos os objetos do projeto
    40. 40. Sandbox Isolado41 • F5 – “Run”, por padrão, usa a instância do SQL Server LocalDB associado ao projeto – Data Source=(localdb)<project name>;Initial Catalog=<project name>;Integrated Security=True;Pooling=False;Connect Timeout=30 • Para testar em uma outra instância ou versão do SQL Server, altere: – Propriedades do Projeto | Debug | Target Connection String
    41. 41. SQL Server 2012 Express LocalDB42 • Simplify embedded usage of SQL Server – Simple installation – Zero-admin database • Same programming surface as User Instances of SQL Express – The same sqlservr.exe as in service-based SQL Server with the same language and features – Connection through the same client-side APIs, using a new connection string option • SQL Server programming symmetry • Installation similar to .NET Framework model – One set of installed binaries (per major version), no global configuration, no constantly-running service • Activation model similar to RANU (Access, SQL Compact, …) – The application connects to a database file, SQL activates automatically – No service: SQL process starts in the context of current user • Default connection string – (localdb)v11.0 • http://msdn.microsoft.com/en- us/library/hh510202(v=SQL.110).aspx
    42. 42. LocalDB Setup43 • Packaged in a small single MSI – SqlLocalDB.msi x32 (27.5 MB) – SqlLocalDB.msi x64 (32.7 MB) • Single registry key to check if LocalDB Runtime is installed C: [HKLMSOFTWAREMicrosoftMicrosoft SQL Server Local Program Files DBInstalled Versions11.0] Microsoft SQL Server • Silent installation 110 LocalDB sqlservr.exe SQLLocalDB.msi /Quiet /IAcceptLicenseTerms […] • Side-by-side versions 120 LocalDB sqlservr.exe […]
    43. 43. Projeto de Banco de Dados
    44. 44. 45Integração com Ciclo deVida da Aplicação
    45. 45. Integração com Ciclo de Vida da46 Aplicação • Suporte ao MSBuild • Integração com Controle de Versão • Integração com Servidor de Build
    46. 46. Suporte a MSBuild47 • Tarefas do MSBuild para: – Build – Publish – T-SQL Static Code Analysis • SSDTBuildUtilities.msi – Redistribuível para componentes específicos do MSBuild – http://sqlproj.com/index.php/2012/03/headless-msbuild- support-for-ssdt-sqlproj-projects/
    47. 47. Suporte a controle de versão48 • SQL Server Data Tools funciona com todos os provedores de controle de versão do Visual Studio – TFS, Git, Subversion…
    48. 48. Integração com Servidor de Build49 • Durante o Build Automatizado – Use MSBuild • Implantação / Publicação – Use MSBuild; ou – Use SqlPackage.exe
    49. 49. Integração com TFS
    50. 50. 51Conclusão
    51. 51. SQL Server Data Tools52 • Ferramentas para desenvolvedores criarem, depurarem e publicarem bancos de dados SQL Server e SQL Azure • Suporta a Plataforma SQL – Atualizações Gratuitas pela web – Trabalha em conjunto com outras ferramentas SQL (SAMP, SSMS) • Substitui antigo BIDS – Reporting Services, Analysis Services, Integration Services – Agora SQL Server estará sempre alinhado com versão do VS – Integrado no VS 2010; nativo no VS “11” • Compatível com ambiente de desenvolvimento – Suporta Visual Studio 2010 & Visual Studio “11” – Atualiza projetos de banco de dados VS 2010 (dbproj)
    52. 52. Opções de Instalação53 • Web Platform Installer • DVD do SQL Server 2012 DVD • Pré-instalado no Visual Studio “11” GRATUITO!!!
    53. 53. Para Saber Mais54 • SQL Server Data Tools Online Installation – msdn.microsoft.com/data/tools Baixe agora! • Blog do Time de Produto – blogs.msdn.com/b/ssdt/ • Fórum MSDN – http://social.msdn.microsoft.com/Forums/en-US/ssdt/threads • Artigos – Mudanças na ferramenta de BD no VS “11” tinyurl.com/BlogDbPro – MSDN Magazine Set/2011 The "Juneau" Database Project
    54. 54. www.lambda3.com.br