traga seu banco de dados para o alm (lightning talk - trilha alm)
DESCRIPTION
Palestra "Traga seu banco de dados para o ALM (Lightning Talk - Trilha ALM)"Evento: TDC 2011 (06a 10/07/2011)TRANSCRIPT
Traga seu banco de dados para o ALM
TDC 2011 – Trilha ALM
Igor Abade V. Leite@igorabade
Microsoft MVP – Visual Studio ALM
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
Roadmap
• Controle offline de mudanças• SQL 2000/2005• ALM para bancos de dados
VS 2005 VS 2008 “GDR” VS 2010 vNext
• Suporte a SQL 2008• Separação de Build e Deploy• Remoção do “DesignDB”
• Suporte a SQL 2008 R2• SQL IntelliSense• Suporte a bancos de
dados de terceiros
• Introdução a projetos Data-tier Application
• Projetos Data-tier Application (DAC) e Database (SQL) operam SxS
• Suporte a SQL Azure• Designers Visuais• Mecanismo unificado de implantação• Suporte a apps missão crítica• Suporte completo a objetos SQL• Melhorias no sistema de projetos• Melhorias nas funcionalidades de ALM
Visão para vNextCombinar o melhor dos
projetos SQL e DAC
SQL Server Development Tools (SSDT) Codename “Juneau”
Projetos de Bancos de DadosProjeto de Banco de Dados (SQL)
Modelos para projetos de bancos de dados estão disponíveis para SQL Server 2005 e SQL Server 2008. eles podem ser usados para definir um banco de dados de usuários (“catálogo”). Todos os objetos implementados em suas respectivas versões de SQL Server são suportados em projetos de banco de dados.
Projeto de Servidor (SQL)
Modelos para projetos de servidor estão disponíveis para SQL Server 2005 e SQL Server 2008. Eles podem ser usados para definir objetos em nível de servidor tal como para controlar alterações no banco de dados Master. Exemplos de objetos em nível de servidor são Logins e Mensagens de Erro Personalizadas.
Data-tier Application (DAC)
Projetos Data-tier application (DAC) podem ser usados para definir bancos que serão implantados em SQL Server Utilities. Um DAC é uma unidade de gerenciamente auto-contida que define e incorpora objetos de banco de dados, objetos de instância do SQL Server que estão associados ao banco de dados e requisitos de implantação.
SQL Server Utility
Projetos de Banco de Dados vs.Projetos de Camada de Dados de Aplicação
Projetos de Banco de Dados (SQL) Projetos DAC (V1)
Aplicações-alvo Missão Crítica, Grandes Aplicativos Departmental
Suporte a banco de dados SQL 2005, 2008, 2010 e bancos de terceiros (ex. Oracle)
SQL 2008 R2, SQL 2008 SP2, SQL Azure
Intenção da Implantação N/AUnidade singular de implantação; captura db + intenção (pré-requisitos) da implantação.
Complexidade de esquema Missão Crítica, Grandes Aplicativos Departamental: 1000 objetos/projeto
Upgrade(esquema + dados)
Compilação gera scripts .sql para atualizar o esquema. Dados permanecem no lugar, a menos que “data motion” seja necessário
Sem scripts .sql.Esquema + dados gerados automaticamente na implantação
SQL Server object types Completo ParcialIntelliSense, Debugging,T-SQL Editor Igual para ambos
Os dois tipos de projeto podem operar lado-a-lado
Que projeto devo usar?
Use DAC se
• Você está criando um banco de dados que será implantando numa estrutura “SQL Server Utility”
• Seu banco de dados é do tipo “Tier 1”
Use SQL se
• Você está desenhando um banco de dados que requer objetos SQL não suportados pelo DAC
• O banco de dados será implantado em uma instância SQL que não é parte de uma SQL Server Utility
Matriz de FuncionalidadesFuncionalidade Projeto DAC Projeto SQL
IntelliSense
Validação Semântica e Sintática
Compilação do projeto gera artefato de implantação
Controle de Versão
Núm. de Versão do Banco de Daoos
Cria novo banco de dados
Atualiza banco existente
Mapeamento de requisitos do banco para recursos do SQL ×
Suporte para objetos SQL 2008 R2 Parcial Completo
Matriz de Funcionalidades de ALMFuncionalidade VS Professional VS Premium & Ultimate
DAC SQL DAC SQL
Schema Compare × ×
Data Compare × ×
Unit Test Execução Execução
Refactoring × ×
Static Code Analysis Execução Execução
Data Generation Execução Execução
TFS Build Integration
Command line deploy
14
Projetos de Aplicações de Camada de Dados (DAC)
Projeto DAC
• Subconjunto de objetos SQL– Logins, Database Roles, Users– Tables, Views, User Defined Types,
Stored Procedures, Triggers & Functions
Conceitos Básicos de DAC• Projeto de Aplicação de Camada de Dados
– Novo tipo de projeto de banco de dados no VS 2010. Baseado no modelo de projetos pré-existente (SQL)
– Experiência de primeira classe para desenvolvimento T-SQL/DAC
– Desenvolvedores podem declarar intenção
– Resultado da compilação = .dacpac
• Componente para Aplicação de Camada de Dados– Melhora colaboração entre Dev e DBA– Move desenvolvedores de um modelo
procedural para um declarativo – Fim do “ALTER TABLE”
• Foco da V1 é aplicativo departamental
Data-tier Application Component
Schema
LOGICALTables, Views,
Constraints, SProcs, UDFs,
PHYSICALUsers, Logins,
Indexes
DAC Deployment ProfileDeployment Requirements, Management
Policies, Failover Policies
Unit of D
eployment
Bancos de Dados Alvos do DAC
• 100 - 1000s de pequenas aplicações
• Grandes LOBs não são o alvo
App Sophistication
Num
ber o
f App
s
CRM ERP
Focus of DAC v1
Objetos Programáveis Suportados
Define as políticas que a instância do SQL deve suportar para receber o DAC
Objetos de Segurança Suportados
Estrutura de Projetos DAC
19
Projeto Banco de Dados (SQL)
Projeto de Banco de Dados (SQL)
• Desenvolvimento declarativo de bancos de dados para SQL Server 2005 e 2008 (Oracle com plugin Toad)
• Suporta referências para projetos do tipo– SQL CLR– XSDs– Outros projetos de banco de dados
• Design de grandes bancos de dados podem ser fatorados em projetos menores– Suporta reuso de código– Simplifica gerenciamento de projetos multi-time e multi-local
Estrutura de Projetos SQL
Projetos de banco de dados representam a definição de um banco de dados de usuário
Variáveis SQLCMD permitem que você compile seu projeto de banco de dados uma única vez e o implante em servidores/bases diferentes
Projetos de Servidor representam a definição do banco de dados Master, bem como objetos de servidor como logins e mensagens de erro
Configurações SQL permitem ajustar as propriedades do banco de dados quando da sua implantação
Configurações de implantação permitem controlar o processo de implantação das alterações de um banco de dados no servidor de destino
O que houve com os projetos DBP?
• Os projetos DBP (ou “projetos de banco de dados”) não estão mais disponíveis no VS 2010– Foram substituídos pelos projetos SQL– Projetos DBP não são migrados
automaticamente para projetos SQL
• Para migrar, é possível criar um novo projeto SQL e depois importar os scripts do projeto DBP. Outra alternativa é importar o esquema do banco de dados
• Para mais informações, consulte a documentação no site MSDN.
www.lambda3.com.br