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

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
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]],...
Přednáška č. 3 Normalizace dat, Datová a funkční analýza
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
Modelování procesů pomocí workflow
Informatika pro ekonomy II přednáška 11
Visual Studio Team Edition for Database Professionals
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.
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š.
Excelent v EKOSu Ing. Daniela Dufková. Excelent v EKOSu Ing. Daniela Dufková.
B. Miniberger, BIVŠ Praha 2009
Dalibor Kačmář Developer & Platform Evangelist Group
Databázové systémy II Přednáška V Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
Microsoft Office InfoPath 2003 Tomáš Kutěj Account Technology Specialist
Databázové systémy II Přednáška č. 9. Transakce je logická jednotka práce sestávající z jednoho nebo více SQL příkazů, které jsou atomické z hlediska.
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.
Microsoft Office Project 2007 Představení aplikace.
uložené procedury (stored procedures) triggery, sekvence, pohledy, funkce, parametrické dotazy (prepared statements) komplexní agregace a SQL dotazy jiné.
Visual Studio Team System: Kvalita software a Test- Driven Development Michael Juřek Software Architect Microsoft s.r.o.
Databázové modelování
Česko a Slovensko, výhledy do budoucnosti Michal Tomek – InterSystems BV.
Příležitost pro partnery s Windows 7 Lukáš Křovák Produktový manažer divize Windows
Michael Juřek Software Architect Microsoft s.r.o.
SERVICESSERVER CLIENT Operating System Relational Database Application ServicesSystems Management Developer Tools Programming Model Applications.
Information Worker v období 2006/2007 People – ready business Drahoslav Dvořák Solution Specialist Microsoft.
Windows 7 & Internet Explorer 8 vývoj aplikací a kompatibilita Štěpán Bechynský, Ondřej Štrba Developer Evangelists
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.
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 System: Práce v týmech s pomocí Team Foundation Serveru 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/ )
TDD - Test Driven Development
Team Foundation Server 2015
GaP a správa úvazků.
Přednáška 9 Triggery.
Windows Server 2003 Service Pack 1 z pohledu bezpečnosti
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 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

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 Vytvoření Vývoj Nasazení ArchitektVývojářSprávce Typická situace

Visual Studio Team System Business Analyst PMO Operations CIO Application Support Architect Project Manager Tester Designer Developer DB Pro Team Edition for Database Professionals Rozšíření o databázový týmRozšíření o databázový tým Změnové řízení pro databázeZměnové řízení pro databáze Rozšíření týmového vývoje a spolupráceRozšíření týmového vývoje a spolupráce Integrovaný vývoj zvyšuje kvalituIntegrovaný vývoj zvyšuje kvalitu

Visual Studio Team System 2008 Change Management Work Item Tracking Reporting Project Portal Visual Studio Team Foundation Server Integration Services Project Management Process and Architecture Guidance Dynamic Code Analyzer Visual Studio Team System Architecture Edition Static Code Analyzer Code Profiler Application Designer System Designer Logical Datacenter Designer Visual Studio Team System Development Edition Visual Studio Industry Partners Team Build Deployment Designer Unit Testing (C#, VB.NET) Code Coverage Team Explorer (includes Team Foundation Server CAL) Visual Studio Professional Edition Load Testing Web Testing Visual Studio Team System Test Edtiion Class Designer (in Visual Studio Standard Edition and higher) Visio for Enterprise Architects (in MSDN Premium Subscription) Visual Studio Team System Database Edition Offline Database Project Schema Compare DB Rename Refactoring Data Generator Data Compare Unit Testing (T-SQL) Code Metrics Manual Testing Test Case Management

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 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 Produkční databáze Management Studio Ladění Monitorování “Master“ pro data i pro schéma Schéma Změny schématu

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 Master“ pro schéma Off-lineOff-line Pod systémem pro správu zdroj. kóduPod systémem pro správu zdroj. kódu Schéma Změny schématu Změny jsou nasazovány plánovaně, s dobrou spravovatelností Komunikace pomocí vygenerovaných skriptů Produkční databáze Management Studio Ladění Monitorování “Master“ pro data Nový přístup

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í DatabaseProject Import schématu Produkce Check-in do systému správy kódu Vývoj Produkční databáze Testovací databáze SCM

Izolovaný iterativní vývoj Sand box SCM SynchronizaceSynchronizace Check-outCheck-out Edit/RefactorEdit/Refactor TestTest Check-inCheck-in Práce je prováděna, kontrolována a auditovatelně zaznamenána pomocí Work ItemsPráce je prováděna, kontrolována a auditovatelně zaznamenána pomocí Work ItemsProdukce Vývoj

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

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

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

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

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 Vždy jeden skript má Build Action nastavenou na Predeploy/Postdeploy 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 Verze databáze (2000/2005) Výchozí schéma a collation Povolení full-textu a SQLCLR Build Spojení do databáze pro nasazení, jméno databáze Cesta, kde budou generovány skripty Možnosti nasazení Database Properties Řada různých nastavení databáze (Auto-shrink, Recovery model, ANSI nastavení a mnoho dalších) Filegroups (od SR1) Nastavení souborů a skupin souborů Variables (od SR1) Proměnné ve stylu SETVAR pro sqlcmd.exe pro použití v Pre/Post- deployment skriptu References (od SR1) Možnost používat proměnné zastupující jméno serveru/databáze pro referencovaný databázový projekt v řešení anebo databázový metafile nakopírovaný z jiného řešení

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

Data Generation Plans Schema Objects Functions Stored Procedures TablesViewsSecurityRolesUsersRoles Application Roles Database Roles Storage File Groups Full Text Catalogs Types User-defined Data Types ScriptsPost-DeploymentPre-Deployment Struktura projektu – SQL 2000

Data Generation Plans Schema Objects AggregatesAssemblies Database Triggers FunctionsSecurity Asymmetric Keys CertificatesEndpointsRoles Application Roles Database Roles Schemas Symmetric Keys Users Service Broker Contracts Event Notifications Message Types Queues Remote Service Binding RoutesServices Schema Objects… Storage File Groups Full Text Catalogs Partition Functions Partition Schemes Stored Procedures SynonymsTablesTypes User-defined Data Types User-defined Types (CLR) XML Schema Collections ViewsScriptsPost-DeploymentPre-Deployment Struktura projektu – SQL 2005

Š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é

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é

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]) Vytvořené SQL fragmenty

Analýza SQL skriptu Dvě hlavní fáze: 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áze Phase-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ů

P1 Parsing P1 Interpre- tation SchemaManager DesignDB P2 Parsing P2 Interpre- tation SchemaManager ErrorList WarningList Failed Failed Failed FailedFailed Failed Success SuccessSuccess Success Success UpdateSchemaContext Add to SchemaContext Success Analýza SQL skriptu

Pojmenování souborů Vše je.SQL soubor 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 Speciální varianta pro změnu referencovaného serveru anebo databáze 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

Vylepšení v Power Tools 1.0 Dependency Viewer: Pomůcka pro sledování závislostí Nové operace: Move Schema, Expand Wildcard, Fully Qualify Name Přejmenování se promítne i do definic typových DataSetů Refactor Command Generator Projde záznamy o refactoringu a vytvoří T-SQL skript s sp_rename, ten pak lze pustit pred Schema Compare

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 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 (Generator) Vlastní distribuce (Distribution)

Podepište párem klíčů (strong name) Nakopírujte na jedno z těchto míst: Global Assembly Cache %ProgramFiles%\Microsoft Visual Studio 8\DBPro\Extensions %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies Zaregistrujte v: %ProgramFiles%\Microsoft Visual Studio 8\DBPro\VaseJmeno.Extensions.xml </extensions> Nasazení vlastních rozšíření

Vylepšení v Power Tools 1.0 Sequential Data Bound Generator – bere řádky postupně (ne náhodně) Pohodlné editory pro nastavení Data Bound a Regex generátorů Editor RegEx generátoru umožňuje interaktivně testovat výsledek Editor RegEx generátoru se snaží interpretovat CHECK CONSTRAINT sloupečku a navrhnout odpovídající regulární výraz

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

Statická analýza T-SQL Obsažena v Power Tools 1.0 Odhalí nejčastější nedostatky v kódu Vhodné před zahájením vytváření vlastních testů

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 Rozsah generování skriptu: Výběr objektů Výběr jednotlivých řádků 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:SqlBuildTaskSqlDeployTaskDataGeneratorTask SqlSchemaCompareTask (Power Tools 1.0) SqlDataCompareTask (Power Tools 1.0) Target: Build – generuje SQL skript Deploy – spuštění proti cílové databázi K dispozici Pre-/Post-Deployment skripty

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="NorthwindOnline TestRun" Sestavení

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;"

Deploy v MSBuild Příklad Nezapomenout definovat v souboru.dbproj: TargetDatabaseTargetConnectionString

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. Source Code Control Work Item Tracking Build Automation Team Communications Reporting

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.