O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
ALM Summit Brasil 2012 – 27, 28/04/2012O Futuro do Data Dude                      (VS DBPro)
@IgorAbadeblog.lambda3.com.br/L3/IgorAbade
Agenda3    • Introdução    • Desenvolvimento Declarativo      de Banco de Dados    • Desenvolvimento Conectado    • Desenv...
4Introdução
O Problema• Historicamente bancos de  dados têm sido  implementados usando  ferramentas e processos  desconexos do  desenv...
O Problema             • Difícil de integrar o               desenvolvimento de BDs na               Gestão do Ciclo de Vi...
A Solução• Estabelecer e suportar um  Ciclo de Vida de  Desenvolvimento de Bancos  de Dados (Database  Development Lifecyc...
Database Development Lifecycle (DDLC)• Desenvolva bancos de dados usando ferramentas  e processos similares a desenvolvime...
Integrando DDLC com ALM• Implemente as mudanças em cada  camada da aplicação a partir da mesma  Solução do Visual Studio• ...
História do Projeto “DataDude”10     • Projeto fundado em Abril de 2005        – Iniciado em 1º de Julho de 2005     • Vis...
Roadmap                                                                                         •                         ...
Apresentando SQL Server Data Tools12
DESENVOLVIMENTO CONECTADO13                        T-SQL IntelliSense     Drift Detection    Table Designer        SQL Ser...
DESENVOLVIMENTO BASEADO EM14     PROJETO                                                                          Point-in...
IMPLANTAÇÃO DE SCHEMA15      Model Based      SQL Server 2005       DACPAC        Format                       SQL Server ...
SQL Azure                                                    Management Portal                                            ...
18Desenvolvimento Declarativo deBanco de Dados
Exemplo de Versionamento de BD19     -- version 1                  -- version 2     CREATE TABLE dbo.Auction      ALTER TA...
Modelo Imperativo20     • Scripts Imperativos mantém “hard-coded”       conhecimento sobre:       – O estado do sistema-al...
Versionamento Imperativo21     -- version 1 Add table dbo.Auction     IF OBJECT_ID (Ndbo.Auction, NU) IS NULL     BEGIN   ...
Modelo Declarativo22     • Define o que você quer na forma de um modelo     • Preencha o modelo usando uma DSL (domain spe...
Versionamento Declarativo23     -- version 1     CREATE TABLE dbo.Auction         -- version 2     (   CREATE TABLE dbo.Au...
Implantação Declarativa de Schema24     24                  Source                         Target                         ...
Imperativo vs. Declarativo25     • Manual vs. Gerado     • Ponto-no-tempo vs. Atualizado     • Sequencial vs. Diferencial
Implantação e Comparação de Schema26      Script                                                                          ...
Baseado em Modelo27     • Todos os objetos de um    .SQL Source       schema são                                   Process...
ScriptDom28     • SQL Server 2012 Managed Parser         – Suporta SQL Server 2005+     • Class TSqlXXXParser         – XX...
Exemplo de ScriptDom29     static void Main(string[] args)     {         bool initialQuotedIdentifiers = false;         TS...
DesenvolvimentoConectado • Imperativo & Declarativo • Autoria e Implantação de Schemas
Desenvolvimento Conectado31      • SQL Server Object Explorer (SSOX)         –   T-SQL Editor/Debugger/IntelliSense (New Q...
SQL Server Object Explorer (SSOX)•   Ferramenta de Navegação do SQL Server no Visual Studio     –   Baseada no SSMS Object...
SSOX Drift Detection33      • Detecta automaticamente alterações no banco de dados         – Mantém SSOX atualizado      •...
Comparação de Schema34
SQL Server Object Explorer
DesenvolvimentoBaseado em Projeto Autoria e Implantação de Schemas, Offline e Isolado
Desenvolvimento Baseado em Projeto• Projetos de Bancos de Dados• Referências de Bancos de Dados• Publicação de Projetos
Projetos de Bancos de Dados38     • Modelo único de projeto                       NOTA:     • Importar a partir de        ...
Arquivos de Projeto39     • *.sqlproj        – Arquivo de projeto MSBuild     • *.sqlproj.user        – Opções de usuário ...
Serviços de Linguagem40     • O uso de projetos habilita os seguintes serviços de linguagem        – Go To Definition     ...
Sandbox Isolado41     • F5 – “Run”, por padrão, usa a instância do SQL Server       LocalDB associado ao projeto        – ...
SQL Server 2012 Express LocalDB42     •   Simplify embedded usage of SQL Server          –     Simple installation        ...
LocalDB Setup43     • Packaged in a small single MSI        – SqlLocalDB.msi x32 (27.5 MB)        – SqlLocalDB.msi x64 (32...
Projeto de Banco de Dados
45Integração com Ciclo deVida da Aplicação
Integração com Ciclo de Vida da46     Aplicação     • Suporte ao MSBuild     • Integração com Controle de Versão     • Int...
Suporte a MSBuild47     • Tarefas do MSBuild para:        – Build        – Publish        – T-SQL Static Code Analysis    ...
Suporte a controle de versão48     • SQL Server Data Tools       funciona com todos os       provedores de controle       ...
Integração com Servidor de Build49     • Durante o Build       Automatizado        – Use MSBuild     • Implantação / Publi...
Integração com TFS
51Conclusão
SQL Server Data Tools52     •   Ferramentas para desenvolvedores criarem, depurarem         e publicarem bancos de dados S...
Opções de Instalação53     • Web Platform Installer     • DVD do SQL Server 2012 DVD     • Pré-instalado no Visual Studio ...
Para Saber Mais54     • SQL Server Data Tools Online Installation        – msdn.microsoft.com/data/tools Baixe agora!    ...
www.lambda3.com.br
O Futuro do Data Dude (VS DBPro)
Próximos SlideShares
Carregando em…5
×

O Futuro do Data Dude (VS DBPro)

971 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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

×