Visual Studio Team Edition for Database Professionals

Slides:



Advertisements
Podobné prezentace
Software Development Conference 2007 Vztah dodavatele a odběratele Zdeněk Borůvka.
Advertisements

Advanced Technologies 05 Využití MOM 2005 pro správu Exchange 2003 Petr Šetka, MCSE, MCT, MVP konzultant & lektor.
ŘEŠENÍ PRO TÝMOVOU INFRASTRUKTURU
Ing. David Pejčoch Tutorial
Mainstream Technologies, s.r.o.
AJAX fenomén současného internetu Dalibor Kačmář Academic Developer Evangelist Microsoft ČR host Vítek Karas Senior Software Development Engineer Microsoft.
Základy jazyka SQL Jan Tichava
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
Kompozitní aplikace (Office Business Applications) Michael Juřek, Software Architect Tomáš Kutěj, TSP – Office Platform Microsoft s.r.o.
SQL: DDL v ORACLE CREATE TABLE jméno_tabulky (atribut datový_typ [DEFAULT][attribut_constraint] [, atribut datový_typ [DEFAULT] [attribut_constraint]],...
Aplikační a programové vybavení
Jazyk SQL Ing. Zdena DOBEŠOVÁ. SQL Structured Query Language 1974 SEQUEL (Structured English Query Language) neprocedurální relační dotazovací jazyk norma.
LOV, Listbox, Poplist a Combobox v Oracle Forms LOV – seznam hodnot, které se zobrazí po stisku klávesy Enter v textovém poli. LOV – seznam hodnot, které.
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Přednáška č. 5 Proces návrhu databáze
ISV Community Days. Čtvrtletně Technologická část zaměřená na jednu technologii.NET Connected Apps, Windows Server 2003 Enhanced, SQL VS 2005,
Modelování procesů pomocí workflow
Informatika pro ekonomy II přednáška 11
Databázové systémy 1 Cvičení č. 2 Fakulta elektrotechniky a informatiky Univerzita Pardubice.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Radek Špinka Přepínače MSSQL výběr.
Visual Studio Team System: Individuální nástroje pro architekty, vývojáře, testery Michael Juřek Software Architect Microsoft s.r.o.
MySQL - Vytvoření nové tabulky  create table jméno_tabulky (jméno_položky typ_položky,... ) Přehled nejběžnějších datových typů Přehled nejběžnějších.
Databáze výhody a nevýhody Ing. Emilie Šeptáková
Školení správců II. Petr Pinkas RNDr. Vít Ochozka.
Vývoj aplikací pro SharePoint
Michael Juřek Software Architect Microsoft s.r.o.
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Databázové systémy teorie a návrh relačních databázových systémů část II.
Relační databáze.
Tomáš Urych, ESO9 Intranet a.s.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
4. Lekce Dílčí procesy funkčního testování
Reporting Ing. Jan Přichystal, Ph.D.. Úvod Uživatelé obvykle přistupují k DW pomocí BI aplikace Většina využívá předdefinované reporty Poskytují standardizovaný.
LiveContent Univerzální Formulářové Řešení Michal Petrtýl, Marek Beneš.
B. Miniberger, BIVŠ Praha 2009
Transparentní modelování a provádění procesů Michael Juřek Software Architect Microsoft s.r.o.
Dalibor Kačmář Developer & Platform Evangelist Group
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Architektury a techniky DS Cvičení č. 9 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Microsoft Office InfoPath 2003 Tomáš Kutěj Account Technology Specialist
Transakční zpracování v SQL P. Částek. Transakce Transakce = logická jednotka práce Podaří-li se všechny části transakce, potvrdíme je. COMMIT Jestliže.
Dokumentace informačního systému
Vize Visual Studia 2005 Podpora živého partnerského ekosystému Podpora živého partnerského ekosystému Jednoduché vytváření propojených systémů Jednoduché.
Jiří Burian DPE PM Nový typ aplikací a požadvků Visual Studio 2008 Silverlight Expression Web 2.0 Připravujeme lokalizaci komunitních.
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
Visual Studio Team System: Kvalita software a Test- Driven Development Michael Juřek Software Architect Microsoft s.r.o.
Novinky pro webovou platformu Jiří Burian, Tomáš Kutěj,
Česko a Slovensko, výhledy do budoucnosti Michal Tomek – InterSystems BV.
Michael Juřek Software Architect Microsoft s.r.o.
SERVICESSERVER CLIENT Operating System Relational Database Application ServicesSystems Management Developer Tools Programming Model Applications.
Windows 7 & Internet Explorer 8 vývoj aplikací a kompatibilita Štěpán Bechynský, Ondřej Štrba Developer Evangelists
Studentská PARDUBICE Implementace MIIS na Univerzitě Pardubice Petr Švec, Univerzita Pardubice.
Advanced Technologies 05 Migrace a instalace klientských stanic Pavel Cach, Praha
Aktuální bezpečnostní výzvy … a jak na ně ….. v praxi Dalibor Lukeš Platform and Security Manager Microsoft Czech and Slovak Michal Pechan Production Stream.
Kam se ubírá jazyk C#? Dr. Ing. Dalibor Kačmář Academic Developer Evangelist Developer & Platform Evangelist Group Microsoft Czech & Slovakia Anders Hejlsberg.
Projekt LISp-Miner Milan Šimůnek. Milan Šimůnek – Projekt LISp-Miner2 Obsah Význam databází a uchovávaných informací Proces dobývání znalostí z databází.
Testování s TestComplete
Visual Studio Team Edition for Database Professionals Michael Juřek Software Architect Microsoft s.r.o.
Struktura a Koncept portálu ČVUT, © 2013 IBA CZ, s. r. o. Agenda Teoretický průřez strukturou a konceptem Liferay portálu Company Sites Pages (stránky)
YOUR LOGO C# Entity Framework. YOUR LOGO  Entity framework nám poskytuje: -Vytváří objektový model na základě databázového schématu -Mapuje tabulky,
BEZPEČNOSTNÍ TECHNOLOGIE I Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg. č.: CZ.1.01/2.2.00/ )
GaP a správa úvazků.
Přednáška 9 Triggery.
Windows Server 2003 Service Pack 1 z pohledu bezpečnosti
Databázové jazyky Jaroslav Pokorný FI BVŠP Bratislava
Databázové systémy a SQL
Transkript prezentace:

Visual Studio Team Edition for Database Professionals Michael Juřek Software Architect Microsoft s.r.o.

Agenda Proč nová edice VS? Změnový proces – principy Databázový projekt Testování databází Nasazení změn Integrace – týmový vývoj

Co jsme slyšeli ... Správa změn v databázi je obtížná... Vývojové týmy často pracují s neaktuální verzí databáze Nalezení chyb na konci vývojového cyklu je nákladné (vs. jejich nalezení včas) Vysoké náklady na podporu, pokud databázová změna vnese chybu do aplikace Nouzový návrat k předchozí verzi trvá dlooooooouho Problémy v komunikaci mezi vývojáři a správcem databáze Nutnost lepší komunikace a integrace

Typická situace Více rolí, více lidí Architekt databáze DB Developer Definuje strukturu dat DB Developer Píše kód používající databázi Často vytváří též uložené procedury apod. DB Administrator Kontroluje produkční databázi Provádí finální revizi všech změn

Typická situace Vytvoření Vývoj Nasazení Vytváří kód v databázi Vytváří testy Provádí refactoring Spouští testy Ukládá změny Provádí revizi změn Porovnává s produkční verzí Vytváří skripty pro nasazení Nasazuje do produkce Vytvoření nového DB projektu Import existující DB do projektu Plán vygenerování testovacích dat For our scenario we use two primary personas: Monica: the DB Admin has full security privileges to the production database. In our scenario she is also creating the team project. A more extended scenario would chain this into the existing Team System Scenarios with a project manager creating new projects, assigning work items etc. Dave: a database developer who will create the SQL code necessary to the project. In a more extended scenario he would interact with other application developer who would create data access code, user interfaces, and web services. The overall flow is the Monica will create the project and reverse engineer the existing database to the project. She will also collect the database histogram information (not enabled in CTP2) that will enable creation of pseudo data to match patterns discovered in the current database instance. Under version control this will represent the database baseline. Dave will then perform a number of operations to complete his work items including adding new tables, creating unit tests, required adjustments and validation. All of Dave’s work is off-line except any testing which will be carried out on a development server. Once the development work is done a change script is created which Monica can now review and edit before running a deployment. Vytvoření Vývoj Nasazení Architekt Vývojář Správce 5

Visual Studio Team System Business Analyst PMO Operations CIO Application Support Architect Project Manager Tester Designer Developer Team Edition for Database Professionals Rozšíření o databázový tým Změnové řízení pro databáze Rozšíření týmového vývoje a spolupráce Integrovaný vývoj zvyšuje kvalitu DB Pro © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 6 6 © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Visual Studio Team System Process and Architecture Guidance Visual Studio Industry Partners Visual Studio Team Edition Software Architects Visual Studio Team Edition Software Developers Visual Studio Team Edition Software Testers Visual Studio Team Edition Database Professionals Application Designer Dynamic Code Analyzer Load Testing Offline Database Project System Designer Static Code Analyzer Manual Testing DB Rename Refactoring Logical Datacenter Designer Code Profiler Test Case Management Data Generator Deployment Designer Unit Testing (C#, VB.NET) Unit Testing (T-SQL) Code Coverage Schema Compare Data Compare Class Designer (in Visual Studio Standard Edition and higher) Announcing Of course, a big part of MSS is the integrated tools We’ve designed our tools from the ground up to… Reduce the complexity of delivering modern solutions by constructing intuitive user interfaces and baking the process guidance directly into the product Facilitate communication and collaboration among members of a software delivery team through deep integration of features Enable a vibrant partner ecosystem through a set of Web service-based APIs for ISVs and businesses to plug into We don’t have Test Case Management --- that is up-sell item to Test SKU We have to be careful about showing DB Reverse Engineer as a functionality – I would read that as we have modeling Visio for Enterprise Architects (in MSDN Premium Subscription) Team Explorer (includes Team Foundation Server CAL) Visual Studio Professional Edition Visual Studio Team Foundation Server Change Management Reporting Integration Services Team Build Work Item Tracking Project Portal Project Management 7

Agenda Proč nová edice VS? Změnový proces – principy Databázový projekt Testování databází Nasazení změn Integrace – týmový vývoj

Současný přístup Obtížná zpráva změn Produkční databáze Management Studio Obtížná zpráva změn Produkční databáze je „master“ pro data i pro schéma Správce nemá průběžný přístup k připravovaným změnám Změny prováděné v produkci často nejsou přeneseny zpět do vývoje Ladění Monitorování Schéma Změny schématu “Master“ pro data i pro schéma 9

Nový přístup Produkční databáze Management Studio Změny schématu spravovány ve VSTS – je „master“ pro schéma Produkční databáze je „master“ pouze pro data Správce může průběžně dostávat plánované změny k revizi Ladění Monitorování “Master“ pro data Změny jsou nasazovány plánovaně, s dobrou spravovatelností Komunikace pomocí vygenerovaných skriptů Master“ pro schéma Off-line Pod systémem pro správu zdroj. kódu Adjust colors Schéma Změny schématu 10

Výhody nového přístupu Databázové schéma je pod evoluční projektovou kontrolou Aplikace a databázové schéma jsou spravovány a verzovány společně Vývoj (i jednotlivý vývojář) pracuje v izolaci, do produkce se nasazují pouze celkové změny ověřené testováním Využití VSTS/TFS pro podporu týmové infrastruktury: Správa kódu, work items, automatický build, testování, reportování, ...

Vytvoření projektového prostředí SCM Check-in do systému správy kódu Vývoj Produkce Testovací databáze Produkční databáze Database Project Import schématu

Izolovaný iterativní vývoj Sand box Sand box Synchronizace Check-out Edit/Refactor Test Check-in SCM Sand box Sand box Práce je prováděna, kontrolována a auditovatelně zaznamenána pomocí Work Items Vývoj Produkce

Build Vývoj Produkce Testovací databáze SCM Denní build Test Výstup denního buildu Může být použito rovněž při průběžném systému buildů SCM Get Latest Denní build Test Vývoj Produkce

Synchronizace podle Label Nasazení SCM Synchronizace podle Label Vývoj Produkce Testovací databáze Testování, ověření SQL skript Database Project Build Nasazení Doladění skriptu, porovnání změn

Vytvoření prostředí Import schématu produkční DB Začlenění do správy zdrojového kódu Build/Deploy

Agenda Proč nová edice VS? Změnový proces – principy Databázový projekt Testování databází Nasazení změn Integrace – týmový vývoj

Role databázového projektu Množina .SQL souborů s DDL fragmenty Deploy SQL Script SQL Server Database Build Deploy SQL Server Database Import schématu databáze Database Project Template Database Project Nový projekt SQL Script Import existujících SQL skript souborů

Databázový projekt „Master“ pro schéma databáze v projektu Volitelně může být pod kontrolou zdrojového kódu (TFS, VSS, ...) V řešení spolu s kódem – společný životní cyklus Kolekce .SQL souborů (skriptů a objektů schématu) v hierarchii složek: Soubor = jednotka změny

SQL skripty V principu libovolné T-SQL ve složce Scripts nebo jejích podsložkách Pre-Deployment / Post-Deployment: Dvě speciální složky Obsahují skripty prováděné před/po nasazení změn T-SQL Editor – v podstatě identický s editorem v SQL Management Studiu: Validate vs. Execute, SQLCMD režim, Client Statistics, Results as Grid/Text/File, color-coding, ...

Objekty schématu Zvláštní případ T-SQL skriptů: Jeden CREATE/ALTER ... příkaz v dávce Projekt obsahuje všechny uživatelské objekty v SQL databázi Jiná množina typů pro SQL 2000 a 2005 Způsoby vytvoření: Import schématu z existující databáze („reverse engineer“) Import existujících SQL skriptů „Ručně“ pomocí připravených šablon

Vlastnosti projektu Project Settings Database Properties Build Verze databáze (2000/2005) Výchozí schéma a collation Povolení full-textu a SQLCLR Database Properties Řada různých nastavení databáze (Auto-shrink, Recovery model, ANSI nastavení a mnoho dalších) Build Spojení do databáze pro nasazení Jméno databáze Cesta, kde budou generovány skripty Možnosti nasazení

Databázový projekt Struktura projektu Solution Explorer vs. Schema View Detekce chyb v projektu

Struktura projektu – SQL 2000 Data Generation Plans Schema Objects Functions Stored Procedures Tables Views Security Roles Users Application Roles Database Roles Storage File Groups Full Text Catalogs Types User-defined Data Types Scripts Post-Deployment Pre-Deployment

Struktura projektu – SQL 2005 Data Generation Plans Schema Objects Aggregates Assemblies Database Triggers Functions Security Asymmetric Keys Certificates Endpoints Roles Application Roles Database Roles Schemas Symmetric Keys Users Service Broker Contracts Event Notifications Message Types Queues Remote Service Binding Routes Services Schema Objects… Storage File Groups Full Text Catalogs Partition Functions Partition Schemes Stored Procedures Synonyms Tables Types User-defined Data Types User-defined Types (CLR) XML Schema Collections Views Scripts Post-Deployment Pre-Deployment

Šablony (templates) Pro každý typ objektu v projektovém systému je k dispozici šablona Specifická pro SQL 2000 nebo 2005 Pokud je to možné, šablony se snaží obsahovat platný T-SQL skript Samozřejmě je obvykle nutné ho upravit Slouží jako dobrý výchozí bod

Chybové stavy Chyby/varování se objevují v okně Error List Každá položka v projektu může být v jednom ze tří stavů: Clean Ikona bez jakékoliv dekorace Dirty Ikona objektu s červeným vykřičníkem Skript/DDL nebyl rozpoznán nebo má špatnou syntaxi Nasazení (Deploy) projektu není možné Warning Ikona objektu se žlutým varovným trojúhelníkem Skript/DDL není interpretován/implementován Ve finální verzi by se tento stav neměl vyskytovat Nasazení (Deploy) je možné Show the error list?

Vnořené objekty Tabulky, pohledy, funkce, procedury, ... Obsahují „logické“ vnořené objekty, které jsou často formálně nezávislé, i když bez svého „rodiče“ nemají smysl Dva typy vnořených objektů: S vlastním příkazem CREATE ... Indexy, triggery, ... V okně Solution Explorer samostatně, v okně Schema View vnořené Bez vlastního příkazu CREATE ... Sloupce, parametry, ... V okně Solution Explorer nejsou, v okně Schema View vnořené

Vytvořené SQL fragmenty Během importu schématu nebo SQL skriptu se vždy vytvářejí nejmenší možné fragmenty, např.: CREATE TABLE [dbo].[Territories] ( [TerritoryID] [nvarchar] (20) NOT NULL, [TerritoryDescription] [nchar] (50) NOT NULL, [RegionID] [int] NOT NULL ) ON [PRIMARY] ALTER TABLE [dbo].[Territories] ADD CONSTRAINT [PK_Territories] PRIMARY KEY NONCLUSTERED ([TerritoryID]) ON [PRIMARY] ALTER TABLE [dbo].[Territories] ADD CONSTRAINT [FK_Territories_Region] FOREIGN KEY ([RegionID]) REFERENCES [dbo].[Region] ([RegionID])

Analýza SQL skriptu Dvě hlavní fáze: Udržované paměťové struktury Phase-1 Parsing Získání identifikátoru objektu a jeho typu Phase-1 Interpretation Získání dodatečných informací (schemabinding apod.) Phase-1 SQL Server Compile Validation Validace DDL fragmentu oproti lokální instanci SQL databázePhase-2 Parsing Vytvoření AST (Abstract Syntax Tree) pro DDL fragment Phase-2 Interpretation Získání detailních informací z AST Udržované paměťové struktury Seznam objektových symbolů Strom vzájemné závislosti objektů

Analýza SQL skriptu Design DB Schema P1 Parsing P1 Interpre-tation Manager P1 Interpre-tation Design DB Success Success Success Failed Failed Failed Success Error List Add to Schema Context Schema Manager P2 Interpre-tation P2 Parsing Update Schema Context Success Success Failed Failed Failed Warning List

Pojmenování souborů Vše je .SQL soubor Základní jmenná konvence: Asociovaný s T-SQL editorem Základní jmenná konvence: JmenoObjektu.TypObjektu.SQL TypObjektu není vhodné měnit Je to možné, ale způsobuje to problémy JmenoObjektu lze změnit standardní operací Rename v okně Solution Explorer Např. Schema.JmenoObjektu.TypObjektu.SQL Předdefinovaná strukturu složek: Maximálně shodná s SQL Management Studio Lze ji libovolně měnit !!!

Refactoring schématu “Refactoring databáze je provedení malé změny v databázovém schématu, která zlepší design databáze, ale nezmění její sémantiku.” Agile Database Development, Scott Ambler Příklad: Změna jména objektu ve schématu pro lepší konzistenci, standardizaci, udržovatelnost, srozumitelnost, ...

Rename refactoring Změna jména tabulky, sloupce, ... Všechny typy objektů ve schématu Změna provedena ve všech závislých objektech a místech Schema objects, Data generation, Unit Tests, SQL Scripts Změny jsou atomické Preview před provedením změn

Rename – záchranné sítě Preview Prevence je vždy nejlepší Refactoring Log Záznam o provedených změnách Unit Testing Mějte připravené unit testy, které po přejmenování spustíte pro kontrolu Version Control Všechny předchozí verze schématu jsou v systému správy kódu pro možnost návratu změn Schema Compare Analýza a schválení změn před přesunem do „ostřejší“ databáze

Rename refactoring Přejmenování tabulky Přejmenování sloupce

Agenda Proč nová edice VS? Změnový proces – principy Databázový projekt Testování databází Nasazení změn Integrace – týmový vývoj

Testovací data Vygenerování realistické datové základny pro testovací (funkční i výkonnostní) scénáře Deterministické – se stejnými parametry vygeneruje vždy stejnou sadu dat Respektuje schéma databáze a při generování se jím řídí Rozšiřitelné – můžete vytvořit vlastní generátory a/nebo distribuce hodnot

Kroky pro generování dat Základní kroky: Vybrat vhodný generátor Vybrat vhodnou distribuci hodnot Nastavit parametry generátoru Zvolit počet generovaných řádků Volitelně nastavit poměr řádků mezi tabulkami spojenými relací Výchozí nastavení: Každý sloupec má nastavený jednoduchý generátor odpovídajícího typu Foreign Key generátor pro klíče do jiných tabulek Unikátnost hodnot odvozena ze schématu Typ distribuce Uniform

Spuštění generování dat Ověření Bezpečnostních požadavků Pokud nejsou splněny, dojde k chybě Schéma cílové databáze proti DGEN schématu Není-li shoda, dojde k chybě Volitelně vymazání tabulek Vyžadováno pro opakovatelnost generování Paralelní sekvence INSERT příkazů Respektuje relace v tabulkách Počet spojení závisí na počtu nezávislých tabulek Konfigurovatelné chování při chybě

Dostupné generátory dat Jednoduché náhodné generátory typů: Řetězcové typy - (n)(var)char, (n)text Číselné typy – tinyint, smallint, int, bigint, real, float, decimal, numeric, money Binární typy – (var)binary, image Datum a čas UniqueIdentifier (GUID) Bit Složitější generátory SQL Computed Value – např. identita Foreign Key – podle ID v jiné tabulce Regular Expression – podle výrazu Data Bound – podle výsledku dotazu

Dostupné distribuce dat

Úprava generování Jednoduchá parametrizace Pokročilá parametrizace Rozsah hodnot, podíl prázdných hodnot apod. Pokročilá parametrizace RegEx – nastavení regulárního výrazu Data Bound Generator – T-SQL vracející přípustné hodnoty Rozšiřitelnost – vývoj vlastních tříd Vlastní generátor (IGenerator) Vlastní distribuce (IDistribution)

Nasazení vlastních rozšíření Podepište párem klíčů (strong name) Nakopírujte do: %ProgramFiles%\Microsoft Visual Studio 8\DBPro\Extensions Zaregistrujte v: %ProgramFiles%\Microsoft Visual Studio 8\DBPro\Microsoft.VisualStudio.TeamSystem.Data.Extensions.xml <?xml version="1.0" encoding="us-ascii"?> <types version="1"> <type>Microsoft.VisualStudio.TeamSystem.Data.Generators.Exponential, Microsoft.VisualStudio.TeamSystem.Data.Generators, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a </type> </types>

Generování dat Vytvoření plánu generování Spuštění plánu Kontrola výsledku

Databázové unit testy Chyba a nutnost navrácení do předchozího stavu znamenají dlouhou noc pro administrátora Staví na funkci unit testů v týmových edicích Visual Studia 2005 Společný framework pro testování aplikační i datové vrstvy Je možné využít deterministicky vygenerovaná data Integrované nasazení a generování dat

Vytváření unit testů Testy jsou vytvářeny v designéru pomocí T-SQL: Podobný princip jako WinForms designer Na pozadí generován VB.NET / C# kód Standardní metody, atributy, ... v kódu Standardní ADO.NET přístup Je možné testovat: Uložené procedury, funkce, triggery Automatické generování T-SQL kódu z okna Schema View Jakýkoliv vlastní T-SQL

Možnosti vytváření testů Speciální skripty: Test initialize / cleanup – pro testovací třídu Pre-Test / Post-Test – pro každou metodu Validace testů (assertions) Serverová Použití příkazu RAISERROR Klientská – nastavení podmínek (Non) Empty ResultSet Row Count Scalar Value Execution Time Inconclusive Vlastní validační třída

Možnosti spuštění testů Přístupné přes Test / Database Test Configuration... Spojení do databáze Možnost různých spojení pro validaci a pro spouštění testů (např. kvůli bezpečnosti) Automatické nasazení Možnost automatického nasazení před provedením testů Automatické generování dat Možnost vygenerování testovacích dat podle generovacího plánu

Rozšiřitelnost testů Vygenerovaný C# / VB.NET kód lze upravovat, např. Přidat vlastní validační logiku Nad rámec výchozí sady pravidel Podpora parametrizace Např. z datového zdroje (data driven) Správa transakcí Např. vytvoření transakčního rozsahu před testy a rollback změn po dokončení testů Extra kroky před/po testu/testech

Databázový unit test Vygenerování testu Nastavení podmínek Spuštění testu

Agenda Proč nová edice VS? Změnový proces – principy Databázový projekt Testování databází Nasazení změn Integrace – týmový vývoj

Nasazení změn Různé kroky procesu pro přenos změn: Projekt -> Vývojová databáze Vývojová databáze -> Testovací databáze Testovací databáze -> Produkční databáze Různé možnosti přenosu změn: Schema Compare / Data Compare Generování změnových skriptů a jejich kontrolované spuštění proti cílové databázi Deploy z Visual Studia Deploy při automatickém buildu (MSBuild)

Schema Compare Porovnání a eventuální přenos změn schématu: Mezi projektem a databází Mezi dvěma databázemi Vizuální rozhraní: Návrh Create / Update / Drop / Skip akce Porovnání definičních skriptů po řádcích Výstup: Řada detailních možností nastavení Možnost provedení změn v cílové databázi SQL DDL skript v novém okně SQL DDL skript do souboru

Data Compare Porovnání a eventuální přenos změn dat: Mezi dvěma databázemi (výběr tabulek a pohledů) Vizuální rozhraní: Identical Records / Different Records / Only in Source / Only in Target pro každý objekt Možnost výběru objektů pro generování skriptů Výstup: Řada možností nastavení Možnost provedení změn v cílové databázi SQL DML skript v novém okně SQL DML skript do souboru

Nasazení změn Schema Compare Data Compare

K dispozici pro MSBuild Task: SqlBuildTask SqlDeployTask SqlCleanTask DataGeneratorTask SqlDocumentationTask SqlXmlDocumentationTask Target: Build – generuje SQL skript Deploy – spuštění proti cílové databázi K dispozici Pre-/Post-Deployment skripty Clean – vymazání adresáře s SQL skriptem All – Build+Deploy

Sestavení Převzetí nastavení z definice projektu msbuild NorthwindOnline.dbproj /t:build Specifikace cílového serveru msbuild NorthwindOnline.dbproj /t:build /p:TargetConnectionString="Data Source=(local)\sql80;Integrated Security=True;Pooling=False;" /p:TargetDatabase="NorthwindOnlineTestRun"

Nasazení Převzetí nastavení z definice projektu msbuild NorthwindOnline.dbproj /t:deploy Specifikace cílového serveru msbuild NorthwindOnline.dbproj /t:deploy /p:Configuration="Update Deployment" /p:TargetConnectionString="Data Source=(local)\sql80;Integrated Security=True;Pooling=False;"

Další cíle All (Build + Deploy) Clean msbuild NorthwindOnline.dbproj /t:all Clean msbuild NorthwindOnline.dbproj /t:clean

Agenda Proč nová edice VS? Změnový proces – principy Databázový projekt Testování databází Nasazení změn Integrace – týmový vývoj

Co je Team Foundation Server? Integrovaná platforma pro spolupráci při projektech vývoje software. Work Item Tracking Source Code Control Reporting Build Automation Team Communications

Týmový vývoj Databázový projekt je v principu stejný jako C# / VB.NET projekt a může využívat stejných služeb: Řízení projektu pomocí Work Items Verzované úložiště skriptů Automatický build (+nasazení) Testování Reportování o průběhu projektu Sdílení informací na portále

Integrace s TFS Automatický build Využití work items Správa verzí schématu Unit testy

Závěrem Řízení změnového procesu pro schéma databáze Testování databází Nasazení změn mezi prostředími Integrovaný týmový vývoj

© 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.