SlideShare ist ein Scribd-Unternehmen logo
1 von 55
ALM Summit Brasil 2012 – 27, 28/04/2012


O Futuro do Data Dude
                      (VS DBPro)
@IgorAbade
blog.lambda3.com.br/L3/IgorAbade
Agenda
3

    • Introdução
    • Desenvolvimento Declarativo
      de Banco de Dados
    • Desenvolvimento Conectado
    • Desenvolvimento baseado
      em Projeto
    • Integração com Ciclo de Vida
      da Aplicação
4

Introdução
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
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
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
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
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
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
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”
Apresentando SQL Server Data Tools
12
DESENVOLVIMENTO CONECTADO
13




                        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
DESENVOLVIMENTO BASEADO EM
14
     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
IMPLANTAÇÃO DE SCHEMA
15




      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
SQL Azure
                                                    Management Portal



                                            Importar
                        Publicar
                                             Exportar
                        Comparar
                                            Registrar
                        Sincronizar
                                      DAC


SQL Server Data Tools                                      SQL Server
                                                        Management Studio
18
Desenvolvimento Declarativo de
Banco de Dados
Exemplo de Versionamento de BD
19




     -- 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
Modelo Imperativo
20


     • 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
Versionamento Imperativo
21
     -- version 1 Add table dbo.Auction
     IF OBJECT_ID (N'dbo.Auction', N'U') 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
Modelo Declarativo
22

     • 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
Versionamento Declarativo
23



     -- 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
Implantação Declarativa de Schema
24
     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
Imperativo vs. Declarativo
25


     • Manual vs. Gerado
     • Ponto-no-tempo vs. Atualizado
     • Sequencial vs. Diferencial
Implantação e Comparação de Schema
26


      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
Baseado em Modelo
27


     • 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
ScriptDom
28

     • 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
Exemplo de ScriptDom
29
     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);
     }
Desenvolvimento
Conectado
 • Imperativo & Declarativo
 • Autoria e Implantação de Schemas
Desenvolvimento Conectado
31




      • 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
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
SSOX Drift Detection
33



      • 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"
Comparação de Schema
34
SQL Server Object Explorer
Desenvolvimento
Baseado 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 Dados
38

     • 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
Arquivos de Projeto
39


     • *.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
Serviços de Linguagem
40

     • 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
Sandbox Isolado
41


     • 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
SQL Server 2012 Express LocalDB
42
     •   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
LocalDB Setup
43

     • 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
                                                                            […]
Projeto de Banco de Dados
45
Integração com Ciclo de
Vida da Aplicação
Integração com Ciclo de Vida da
46
     Aplicação
     • Suporte ao MSBuild
     • Integração com Controle de Versão
     • Integração com Servidor de Build
Suporte a MSBuild
47


     • 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/
Suporte a controle de versão
48


     • SQL Server Data Tools
       funciona com todos os
       provedores de controle
       de versão do Visual
       Studio
       – TFS, Git, Subversion…
Integração com Servidor de Build
49


     • Durante o Build
       Automatizado
        – Use MSBuild
     • Implantação / Publicação
        – Use MSBuild; ou
        – Use SqlPackage.exe
Integração com TFS
51

Conclusão
SQL Server Data Tools
52

     •   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)
Opções de Instalação
53


     • Web Platform Installer
     • DVD do SQL Server 2012 DVD
     • Pré-instalado no Visual Studio “11”


              GRATUITO!!!
Para Saber Mais
54

     • 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
www.lambda3.com.br

Weitere ähnliche Inhalte

Was ist angesagt?

REST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC GoiâniaREST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC GoiâniaAlexandre Gaigalas
 
ODI Series - Treinamento
ODI Series - TreinamentoODI Series - Treinamento
ODI Series - TreinamentoCaio Lima
 
Apresentando ferramentas CASE
Apresentando ferramentas CASEApresentando ferramentas CASE
Apresentando ferramentas CASEAline Ferreira
 
ODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaCaio Lima
 
Odi tutorial glossário e termos técnicos
Odi tutorial   glossário e termos técnicosOdi tutorial   glossário e termos técnicos
Odi tutorial glossário e termos técnicosCaio Lima
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaAna Albert
 

Was ist angesagt? (8)

REST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC GoiâniaREST: Faça o Serviço Direito - TDC Goiânia
REST: Faça o Serviço Direito - TDC Goiânia
 
ODI Series - Treinamento
ODI Series - TreinamentoODI Series - Treinamento
ODI Series - Treinamento
 
Apresentando ferramentas CASE
Apresentando ferramentas CASEApresentando ferramentas CASE
Apresentando ferramentas CASE
 
ODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração TopologiaODI Tutorial - Configuração Topologia
ODI Tutorial - Configuração Topologia
 
Odi tutorial glossário e termos técnicos
Odi tutorial   glossário e termos técnicosOdi tutorial   glossário e termos técnicos
Odi tutorial glossário e termos técnicos
 
Boa apostila sql
Boa  apostila sqlBoa  apostila sql
Boa apostila sql
 
QlikView Publisher
QlikView PublisherQlikView Publisher
QlikView Publisher
 
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E JpaDominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
Dominando Jsf E Facelets Utilizando Spring 2.5, Hibernate E Jpa
 

Ähnlich wie ALM Summit Brasil 2012 - O Futuro do Data Dude

SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012Hcode
 
Boas práticas para migração do sql server para o windows azure
Boas práticas para migração do sql server para o windows azureBoas práticas para migração do sql server para o windows azure
Boas práticas para migração do sql server para o windows azureMarcondes Alexandre
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric Gallardo
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMauricio Fernandes de Castro
 
Migrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseMigrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseRoberto Fonseca
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Fernando Henrique
 
Apresentação SQL Server 2008 R2
Apresentação SQL Server 2008 R2Apresentação SQL Server 2008 R2
Apresentação SQL Server 2008 R2Rafael De Lima
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Rodrigo Kono
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = ProdutividadeAdriano Bertucci
 
Sap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDISap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDImarlosimon
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET CoreJaqueline Ramos
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...Fabrízio Mello
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olapFlavia Martins Bispo
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olapFernando Palma
 

Ähnlich wie ALM Summit Brasil 2012 - O Futuro do Data Dude (20)

Code authority
Code authority  Code authority
Code authority
 
SQL Server 2012
SQL Server 2012SQL Server 2012
SQL Server 2012
 
Boas práticas para migração do sql server para o windows azure
Boas práticas para migração do sql server para o windows azureBoas práticas para migração do sql server para o windows azure
Boas práticas para migração do sql server para o windows azure
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte IIMeetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
Meetup ScalaCamp Curitiba, Fevereiro de 2017, Parte II
 
Migrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure DatabaseMigrando Aplicações para o SQL Azure Database
Migrando Aplicações para o SQL Azure Database
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
Plsql
PlsqlPlsql
Plsql
 
Netbeans
NetbeansNetbeans
Netbeans
 
Apresentação SQL Server 2008 R2
Apresentação SQL Server 2008 R2Apresentação SQL Server 2008 R2
Apresentação SQL Server 2008 R2
 
Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4Desenvolvimento RIA com Silverlight 4
Desenvolvimento RIA com Silverlight 4
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
AX4B - Dynamics AX
AX4B - Dynamics AX AX4B - Dynamics AX
AX4B - Dynamics AX
 
Sap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDISap Comunity Day Brasil 2009 - SAP NWDI
Sap Comunity Day Brasil 2009 - SAP NWDI
 
[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core[Natal Nerd] IT Talks - NET Core
[Natal Nerd] IT Talks - NET Core
 
Ms & sap
Ms & sapMs & sap
Ms & sap
 
jCompany for SAP NetWeaver
jCompany for SAP NetWeaverjCompany for SAP NetWeaver
jCompany for SAP NetWeaver
 
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
DBA Brasil 2.0: Como o papel e atividades de DBA ficam no contexto da cultura...
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 
Introdução a data warehouse e olap
Introdução a data warehouse e olapIntrodução a data warehouse e olap
Introdução a data warehouse e olap
 

Mehr von Igor Abade

Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)Igor Abade
 
DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?Igor Abade
 
Serverless Computing no Microsoft Azure
Serverless Computing no Microsoft AzureServerless Computing no Microsoft Azure
Serverless Computing no Microsoft AzureIgor Abade
 
Chega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como códigoChega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como códigoIgor Abade
 
Microsserviços .NET no Azure
Microsserviços .NET no AzureMicrosserviços .NET no Azure
Microsserviços .NET no AzureIgor Abade
 
Introdução ao Habitat
Introdução ao HabitatIntrodução ao Habitat
Introdução ao HabitatIgor Abade
 
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abadeAcelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abadeIgor Abade
 
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSProvisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSIgor Abade
 
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Igor Abade
 
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Igor Abade
 
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreDesktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreIgor Abade
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosIgor Abade
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Igor Abade
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellIgor Abade
 
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)Igor Abade
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Igor Abade
 
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)Igor Abade
 
Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...Igor Abade
 
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Igor Abade
 
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Igor Abade
 

Mehr von Igor Abade (20)

Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
Introdução à SRE (.Net Vale Tech Saturday - DevSecOps)
 
DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?DevOps em grandes empresas - Mito ou Realidade?
DevOps em grandes empresas - Mito ou Realidade?
 
Serverless Computing no Microsoft Azure
Serverless Computing no Microsoft AzureServerless Computing no Microsoft Azure
Serverless Computing no Microsoft Azure
 
Chega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como códigoChega de receita de bolo: gerenciando infraestrutura como código
Chega de receita de bolo: gerenciando infraestrutura como código
 
Microsserviços .NET no Azure
Microsserviços .NET no AzureMicrosserviços .NET no Azure
Microsserviços .NET no Azure
 
Introdução ao Habitat
Introdução ao HabitatIntrodução ao Habitat
Introdução ao Habitat
 
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abadeAcelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
Acelere - e melhore! - o feedback com testes automatizados rápidos - igor abade
 
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTSProvisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
Provisionando ambientes de Dev e Teste com Azure DevTest Labs e VSTS
 
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
 
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
Gestão de ciclo de vida de Banco de Dados: Já passou da hora! (TDC POA 2016)
 
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows StoreDesktop App Converter: Trazendo Apps Win32 para a Windows Store
Desktop App Converter: Trazendo Apps Win32 para a Windows Store
 
Acelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidosAcelere - e melhore! - o feedback com testes automatizados rápidos
Acelere - e melhore! - o feedback com testes automatizados rápidos
 
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
Testes exploratórios não são sinônimo de bagunça! (TDC 2016 SP)
 
Suporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShellSuporte a macros na sua aplicação com PowerShell
Suporte a macros na sua aplicação com PowerShell
 
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
Smoke tests, deployment e rollback automatizados (Mobile & Cloud Hack Days 2016)
 
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
Smoke tests, deployment e rollback automatizados (DevOps Summit Brasil 2016)
 
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
Keynote - Trilha Negócios (DevOps Summit Brasil 2016)
 
Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...Além do pen-drive: empacotando seu software para distribuição e implantação (...
Além do pen-drive: empacotando seu software para distribuição e implantação (...
 
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
Aprenda mais sobre sua aplicação e seus usuários com Application Insights (DN...
 
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
Acelerando a criação de testes usando IntelliTest (Visual Studio Summit 2015)
 

ALM Summit Brasil 2012 - O Futuro do Data Dude

  • 1. ALM Summit Brasil 2012 – 27, 28/04/2012 O Futuro do Data Dude (VS DBPro)
  • 3. Agenda 3 • Introdução • Desenvolvimento Declarativo de Banco de Dados • Desenvolvimento Conectado • Desenvolvimento baseado em Projeto • Integração com Ciclo de Vida da Aplicação
  • 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. 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. 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. 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. 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. 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. 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. Apresentando SQL Server Data Tools 12
  • 13. DESENVOLVIMENTO CONECTADO 13 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. DESENVOLVIMENTO BASEADO EM 14 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. IMPLANTAÇÃO DE SCHEMA 15 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. SQL Azure Management Portal Importar Publicar Exportar Comparar Registrar Sincronizar DAC SQL Server Data Tools SQL Server Management Studio
  • 17.
  • 19. Exemplo de Versionamento de BD 19 -- 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
  • 20. Modelo Imperativo 20 • 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
  • 21. Versionamento Imperativo 21 -- version 1 Add table dbo.Auction IF OBJECT_ID (N'dbo.Auction', N'U') 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
  • 22. Modelo Declarativo 22 • 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
  • 23. Versionamento Declarativo 23 -- 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
  • 24. Implantação Declarativa de Schema 24 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
  • 25. Imperativo vs. Declarativo 25 • Manual vs. Gerado • Ponto-no-tempo vs. Atualizado • Sequencial vs. Diferencial
  • 26. Implantação e Comparação de Schema 26 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
  • 27. Baseado em Modelo 27 • 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
  • 28. ScriptDom 28 • 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
  • 29. Exemplo de ScriptDom 29 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); }
  • 30. Desenvolvimento Conectado • Imperativo & Declarativo • Autoria e Implantação de Schemas
  • 31. Desenvolvimento Conectado 31 • 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
  • 32. 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
  • 33. SSOX Drift Detection 33 • 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"
  • 35. SQL Server Object Explorer
  • 36. Desenvolvimento Baseado em Projeto Autoria e Implantação de Schemas, Offline e Isolado
  • 37. Desenvolvimento Baseado em Projeto • Projetos de Bancos de Dados • Referências de Bancos de Dados • Publicação de Projetos
  • 38. Projetos de Bancos de Dados 38 • 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
  • 39. Arquivos de Projeto 39 • *.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
  • 40. Serviços de Linguagem 40 • 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
  • 41. Sandbox Isolado 41 • 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
  • 42. SQL Server 2012 Express LocalDB 42 • 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
  • 43. LocalDB Setup 43 • 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 […]
  • 44. Projeto de Banco de Dados
  • 45. 45 Integração com Ciclo de Vida da Aplicação
  • 46. Integração com Ciclo de Vida da 46 Aplicação • Suporte ao MSBuild • Integração com Controle de Versão • Integração com Servidor de Build
  • 47. Suporte a MSBuild 47 • 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/
  • 48. Suporte a controle de versão 48 • SQL Server Data Tools funciona com todos os provedores de controle de versão do Visual Studio – TFS, Git, Subversion…
  • 49. Integração com Servidor de Build 49 • Durante o Build Automatizado – Use MSBuild • Implantação / Publicação – Use MSBuild; ou – Use SqlPackage.exe
  • 52. SQL Server Data Tools 52 • 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)
  • 53. Opções de Instalação 53 • Web Platform Installer • DVD do SQL Server 2012 DVD • Pré-instalado no Visual Studio “11” GRATUITO!!!
  • 54. Para Saber Mais 54 • 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

Hinweis der Redaktion

  1. Developer-focused toolset for building SQL Server &amp; SQL Azure databasesExperiences EnabledDESENVOLVIMENTO CONECTADODESENVOLVIMENTO BASEADO EM PROJETOApplication Lifecycle &amp; 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
  2. 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
  3. 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 &amp; Drop import from SQL Server Object ExplorerApplication Lifecycle &amp; 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
  4. Publishing your Database ChangesTarget version aware:SQL Server 2005SQL Server 2008 &amp; SQL Server 2008 R2SQL Server 2012SQL AzurePublish Direct, via SQL script, or DACPAC snapshots
  5. 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&amp;E, VS Web and DB Publishing
  6. SQL Server Data Tools – SummaryDeveloper-focused toolset to author, debug and publish SQL Server &amp; 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 &amp; Visual Studio 11Migrates VS2010 database projects (*.dbproj)
  7. 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&apos;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&apos;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.