SlideShare ist ein Scribd-Unternehmen logo
1 von 56
Microsoft Most Valuable Professional (MVP)
www.aymanelhattab.com
Twitter: @AymanElHattab
class AuctionApplication
           class AuctionApplication
                  class AuctionApplication
     (     (      (                                       App
            int id;
      int id;      int    id;
      void MethodA();
            void MethodA();
                   string cacheTitle;
     )      void MethodB();
                   void MethodA();
           )       void MethodB();
                  )

V1    V2     V3                                 Revision History

     CREATE ALTER TABLE dbo.Auction
             TABLE ALTER TABLE dbo.Auction
                   dbo.Auction                          Database
     (       WITH CHECK ADD CONSTRAINT
                    WITH CHECK ADD CONSTRAINT
      id     INT NOT PRIMARY KEY (id)
              Au_PK Au_SK UNIQUE (name)
                      NULL,
      name VARCHAR(25) NOT NULL,
      start DATETIME NULL,
      len    INT NULL
     )
-- 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
class AuctionApplication
           class AuctionApplication
                  class AuctionApplication
     (     (      (                                                             App
            int id;
      int id;      int    id;
      void MethodA();
            void MethodA();
                   string cacheTitle;
     )      void MethodB();
                   void MethodA();
           )       void MethodB();
                  )                          Source-controlled and
                                                deployed scripts
V1    V2     V3                              do not need to match!   Revision History

     CREATE CREATE CREATE dbo.Auction
             TABLE dbo.Auction dbo.Auction
                    TABLE TABLE                                              Logical In-
     (      (      (                                                          Memory
      id     INT NOTid NOT NULL PRIMARY KEY, KEY,
             id     INT
                      NULL,INT NOT NULL PRIMARY                              Database
      name VARCHAR(25) NOT NULL, NULL, NULL UNIQUE,
             name VARCHAR(25) NOT
                    name VARCHAR(25) NOT
      start DATETIME NULL, NULL, NULL,
             start DATETIME
                    start DATETIME
      len    INT NULL NULL NULL
             len    INT
                    len    INT
     )      )      )
CREATE CREATE CREATE dbo.Auction
               TABLE dbo.Auction dbo.Auction
                      TABLE TABLE                                 Logical In-
       (      (      (                                             Memory
        id     INT NOTid NOT NULL PRIMARY KEY, KEY,
               id     INT
                        NULL,INT NOT NULL PRIMARY                 Database
        name VARCHAR(25) NOT NULL, NULL, NULL UNIQUE,
               name VARCHAR(25) NOT
                      name VARCHAR(25) NOT
        start DATETIME NULL, NULL, NULL,
               start DATETIME
                      start DATETIME
        len    INT NULL NULL NULL
               len    INT
                      len    INT
       )      )      )

V1       V2       V3                                        Revision History

        New                                                        Incremental
     Deployment        CREATE TABLE dbo.Auction                    Deployment
                            ALTER TABLE dbo.Auction
                       (
                             WITH CHECK ADD CONSTRAINT
                        id     INT NOT NULL PRIMARY KEY,
                              Au_SK UNIQUE (name)
                        name VARCHAR(25) NOT NULL UNIQUE,
                        start DATETIME NULL,                               V2
                        len    INT NULL
                       )
Source                                       Interpret,
       Database                                     analyze and
                                                      validate
                Reverse engineer                   Schema Model
                schema into DDL artifacts



Database Project
                                                                  Build   .dbschema
                                                   Schema Model               file
DDL SQL Artifacts




                    Compose model representation
                    from source code fragments!
Target
.dbschema                                                                         Database
    file




                              Schema Model                 Schema Model



                                             Model Diff                             Plan Executors

                                                                                           .SQL



                                              Deployment
Additional schema artifacts                     Engine         Incremental Target Update
Creating New Database Projects

  Offline Schema Development

    New Deployment

    Schema Refactoring

  Incremental Deployment

Schema & Data Comparison
Dependency Validation

  TSQL Static Code Analysis

   Test Data Generation

  Database Unit Testing

TSQL Debugging
TFS




                Source Control
                 Check in to
DBDev
DBA

                                                   Staging
                                                  Database

        Database                 Import schema   Production
         Project
                                                  Database
•Sync
                                   Dev           •Check-out
                                   Env           •Edit/Refactor
                                                 •Generate Test Data
                                                 •Database Unit Test
                Dev                              •Check-in
                Env    TFS
                                         •Work is being driven
                             Dev          and tracked via work items
                             Env         •Other team members can pick up
                                          changes
DBDev
DBA

                                                              Staging
                                                             Database
 TFS Shelving
 allows DBA            Dev
 to provide guidance   Env                                  Production
 and evaluate work                                           Database
Daily
                                                         Test
                                            Build      Database
                                           Output

 Can also be         TFS
 used in a
 “Continuous”              Get Latest
 build environment

DBDev                                   Daily Build      Test Lab

DBA

                                                        Staging
                                                       Database


                                                      Production
                                                       Database
TFS




                                 Sync from Label
DBDev
DBA
                                                                    Deploy
                                                                                        Staging
                                                                                       Database

                                                            SQL
                         Database
                                                           Deploy                     Production
                          Project                  Build   Script                      Database
                                                                             Verify
  Refine deploy script
Schema
  DATABASE SCHEMA
        Tables
         Views
      Constraints
        Sprocs
         UDFs
         Users
        Logins
      Filegroups



PROPERTIES & METADATA
      Requirements
   Management Policies
     Failover Policies
Database Project                                       Data-tier Application Project V1
         (Mission Critical, Business Critical)                               (Departmental Apps)

             Visual Studio                                                  Visual Studio




                                                    Build       Build




                       Generate scripts          .dbschema   .dacpac




Deploy                                                           Deploy



                   SQL Server 2005, 2008, 2008                                          SQL Server 2008 R2 & 2008
                               R2                                                                   R2
DEVELOP                                                 DEPLOY                                           MANAGE

                                                                                                       SQL Server Management Studio
                         FinApp
       1                 Dev DB




    Deploy /           Reverse
  Upgrade DAC        Engineer DAC   2
                                                         SQL Server Management Studio
                                                                                                       DBA
                                                                                                                                               9
                                                                                                                      8
Visual Studio 2010                                                                                            Manage, Register, Uninstall,
                                                                                                                Extract, Upgrade DAC               Control
                                                                                                                                                    Point

                                              Create
                                              policies      DBA
                                                                                            7
                                                  3
                                                                                           Deploy /
                                                                                         Upgrade DAC




                                                                                                                                               HR
Developer

                     Compile                                           Hand-off to DBA
                      + Build                                                                                         FinApp
                                                                                                                     Prod DB
                                                                               6
                     5                  .dacpac




                                                                                                                                   SALES
                                                                                                                           Managed Instances
SQL Server Version
DAC Feature    2000            2005   2008     2008 R2   Azure

Extract DAC    Yes             Yes    Yes      Yes       Yes

Deploy DAC     No              No     In SP2   Yes       Yes

Delete DAC     No              No     In SP2   Yes       Yes

Register DAC   No              No     In SP2   Yes       Yes

Upgrade DAC    No              No     In SP2   Yes       No

SSMS Support   No              No     No       Yes       Yes (2008 R2)
http://s3.amazonaws.com/dnrtv/dnrtv_0176.wmv

http://blogs.msdn.com/b/bahill/archive/2009/03/02/offline-schema-
development.aspx

http://msdn.microsoft.com/en-us/library/dd172133.aspx

http://www.youtube.com/watch?v=JI7uiAQZHCg
http://msdn.microsoft.com/en-us/library/ms165034.aspx
http://msdn.microsoft.com/en-us/data/gg427686
http://msdn.microsoft.com/en-us/magazine/hh394146.aspx
http://msdn.microsoft.com/en-us/library/ee210554(SQL.105).aspx

  http://msdn.microsoft.com/en-us/library/ff381683.aspx


  http://msdn.microsoft.com/en-us/library/dd193245(VS.100).aspx

      http://msdn.microsoft.com/en-us/library/ee210580(SQL.105).aspx

http://www.youtube.com/watch?v=jmFQrBp6D0g
http://channel9.msdn.com/Events/TechEd/Europe/2010/DAT311

http://technet.microsoft.com/en-us/sqlserver/Video/ee795823
SQL Server Development Tools & Processes Using Visual Studio 2010
SQL Server Development Tools & Processes Using Visual Studio 2010

Weitere ähnliche Inhalte

Was ist angesagt?

CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...
CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...
CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...Ontico
 
Alternatives of JPA/Hibernate
Alternatives of JPA/HibernateAlternatives of JPA/Hibernate
Alternatives of JPA/HibernateSunghyouk Bae
 
Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...
Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...
Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...InSync2011
 
ShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)SqlShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)SqlChema Alonso
 

Was ist angesagt? (8)

Php forum2015 tomas_final
Php forum2015 tomas_finalPhp forum2015 tomas_final
Php forum2015 tomas_final
 
CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...
CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...
CREATE INDEX … USING VODKA. VODKA CONNECTING INDEXES, Олег Бартунов, Александ...
 
Alternatives of JPA/Hibernate
Alternatives of JPA/HibernateAlternatives of JPA/Hibernate
Alternatives of JPA/Hibernate
 
Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...
Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...
Database & Technology 1 _ Clancy Bufton _ Flashback Query - oracle total reca...
 
ShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)SqlShmooCon 2009 - (Re)Playing(Blind)Sql
ShmooCon 2009 - (Re)Playing(Blind)Sql
 
The CoFX Data Model
The CoFX Data ModelThe CoFX Data Model
The CoFX Data Model
 
Schemadoc
SchemadocSchemadoc
Schemadoc
 
Slickdemo
SlickdemoSlickdemo
Slickdemo
 

Andere mochten auch

2009/11 Database Architechs Presentation
2009/11   Database Architechs Presentation2009/11   Database Architechs Presentation
2009/11 Database Architechs PresentationDatabase Architechs
 
.NET Development for SQL Server Developer
.NET Development for SQL Server Developer.NET Development for SQL Server Developer
.NET Development for SQL Server DeveloperMarco Parenzan
 
Declarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsDeclarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsGert Drapers
 
SQL Server Reporting Services 2008
SQL Server Reporting Services 2008SQL Server Reporting Services 2008
SQL Server Reporting Services 2008VishalJharwade
 
Microsoft sql server architecture
Microsoft sql server architectureMicrosoft sql server architecture
Microsoft sql server architectureNaveen Boda
 
Physical architecture of sql server
Physical architecture of sql serverPhysical architecture of sql server
Physical architecture of sql serverDivya Sharma
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architectureAjeet Singh
 

Andere mochten auch (9)

2009/11 Database Architechs Presentation
2009/11   Database Architechs Presentation2009/11   Database Architechs Presentation
2009/11 Database Architechs Presentation
 
.NET Development for SQL Server Developer
.NET Development for SQL Server Developer.NET Development for SQL Server Developer
.NET Development for SQL Server Developer
 
Declarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data ToolsDeclarative Database Development with SQL Server Data Tools
Declarative Database Development with SQL Server Data Tools
 
SQL Server Reporting Services 2008
SQL Server Reporting Services 2008SQL Server Reporting Services 2008
SQL Server Reporting Services 2008
 
Microsoft sql server architecture
Microsoft sql server architectureMicrosoft sql server architecture
Microsoft sql server architecture
 
Physical architecture of sql server
Physical architecture of sql serverPhysical architecture of sql server
Physical architecture of sql server
 
Sql server basics
Sql server basicsSql server basics
Sql server basics
 
MS-SQL SERVER ARCHITECTURE
MS-SQL SERVER ARCHITECTUREMS-SQL SERVER ARCHITECTURE
MS-SQL SERVER ARCHITECTURE
 
Ms sql server architecture
Ms sql server architectureMs sql server architecture
Ms sql server architecture
 

Ähnlich wie SQL Server Development Tools & Processes Using Visual Studio 2010

PHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in DevelopmentPHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in DevelopmentSteve Lange
 
Introduction to SQL Antipatterns
Introduction to SQL AntipatternsIntroduction to SQL Antipatterns
Introduction to SQL AntipatternsKrishnakumar S
 
Generating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data ModelerGenerating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data ModelerRob van den Berg
 
Data Warehouse and Business Intelligence - Recipe 3
Data Warehouse and Business Intelligence - Recipe 3Data Warehouse and Business Intelligence - Recipe 3
Data Warehouse and Business Intelligence - Recipe 3Massimo Cenci
 
M.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMS
M.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMSM.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMS
M.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMSSupriya Radhakrishna
 
Apache Spark, the Next Generation Cluster Computing
Apache Spark, the Next Generation Cluster ComputingApache Spark, the Next Generation Cluster Computing
Apache Spark, the Next Generation Cluster ComputingGerger
 
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Michael Rys
 
Obevo Javasig.pptx
Obevo Javasig.pptxObevo Javasig.pptx
Obevo Javasig.pptxLadduAnanu
 
Gaelyk - Web Apps In Practically No Time
Gaelyk - Web Apps In Practically No TimeGaelyk - Web Apps In Practically No Time
Gaelyk - Web Apps In Practically No TimeSaltmarch Media
 
Interactive Kafka Streams
Interactive Kafka StreamsInteractive Kafka Streams
Interactive Kafka Streamsconfluent
 
MDI Training DB2 Course
MDI Training DB2 CourseMDI Training DB2 Course
MDI Training DB2 CourseMarcus Davage
 
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB Rakuten Group, Inc.
 
Autogenerate Awesome GraphQL Documentation with SpectaQL
Autogenerate Awesome GraphQL Documentation with SpectaQLAutogenerate Awesome GraphQL Documentation with SpectaQL
Autogenerate Awesome GraphQL Documentation with SpectaQLNordic APIs
 
SQL Saturday 28 - .NET Fundamentals
SQL Saturday 28 - .NET FundamentalsSQL Saturday 28 - .NET Fundamentals
SQL Saturday 28 - .NET Fundamentalsmikehuguet
 

Ähnlich wie SQL Server Development Tools & Processes Using Visual Studio 2010 (20)

PHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in DevelopmentPHX - Session #4 Treating Databases as First-Class Citizens in Development
PHX - Session #4 Treating Databases as First-Class Citizens in Development
 
Access 04
Access 04Access 04
Access 04
 
Introduction to SQL Antipatterns
Introduction to SQL AntipatternsIntroduction to SQL Antipatterns
Introduction to SQL Antipatterns
 
Triggers and Stored Procedures
Triggers and Stored ProceduresTriggers and Stored Procedures
Triggers and Stored Procedures
 
Generating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data ModelerGenerating Code with Oracle SQL Developer Data Modeler
Generating Code with Oracle SQL Developer Data Modeler
 
Data Warehouse and Business Intelligence - Recipe 3
Data Warehouse and Business Intelligence - Recipe 3Data Warehouse and Business Intelligence - Recipe 3
Data Warehouse and Business Intelligence - Recipe 3
 
M.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMS
M.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMSM.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMS
M.TECH 1ST SEM COMPUTER SCIENCE ADBMS LAB PROGRAMS
 
Apache Spark, the Next Generation Cluster Computing
Apache Spark, the Next Generation Cluster ComputingApache Spark, the Next Generation Cluster Computing
Apache Spark, the Next Generation Cluster Computing
 
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
Bring your code to explore the Azure Data Lake: Execute your .NET/Python/R co...
 
Linq
LinqLinq
Linq
 
Obevo Javasig.pptx
Obevo Javasig.pptxObevo Javasig.pptx
Obevo Javasig.pptx
 
Gaelyk - Web Apps In Practically No Time
Gaelyk - Web Apps In Practically No TimeGaelyk - Web Apps In Practically No Time
Gaelyk - Web Apps In Practically No Time
 
Interactive Kafka Streams
Interactive Kafka StreamsInteractive Kafka Streams
Interactive Kafka Streams
 
MDI Training DB2 Course
MDI Training DB2 CourseMDI Training DB2 Course
MDI Training DB2 Course
 
Python database access
Python database accessPython database access
Python database access
 
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
KVSの性能、RDBMSのインデックス、更にMapReduceを併せ持つAll-in-One NoSQL: MongoDB
 
Autogenerate Awesome GraphQL Documentation with SpectaQL
Autogenerate Awesome GraphQL Documentation with SpectaQLAutogenerate Awesome GraphQL Documentation with SpectaQL
Autogenerate Awesome GraphQL Documentation with SpectaQL
 
Couchbas for dummies
Couchbas for dummiesCouchbas for dummies
Couchbas for dummies
 
SQL Saturday 28 - .NET Fundamentals
SQL Saturday 28 - .NET FundamentalsSQL Saturday 28 - .NET Fundamentals
SQL Saturday 28 - .NET Fundamentals
 
Android Database
Android DatabaseAndroid Database
Android Database
 

Mehr von Ayman El-Hattab

Application Lifecycle Management for Nintex Solutions
Application Lifecycle Management for Nintex SolutionsApplication Lifecycle Management for Nintex Solutions
Application Lifecycle Management for Nintex SolutionsAyman El-Hattab
 
Boost O365 User Adoption with 10 Cool Add-ins!
Boost O365 User Adoption with 10 Cool Add-ins!Boost O365 User Adoption with 10 Cool Add-ins!
Boost O365 User Adoption with 10 Cool Add-ins!Ayman El-Hattab
 
Light Up Your Intranet with 10 Cools Apps
Light Up Your Intranet with 10 Cools AppsLight Up Your Intranet with 10 Cools Apps
Light Up Your Intranet with 10 Cools AppsAyman El-Hattab
 
Web Content Management in SharePoint Server 2013 & Office 365
Web Content Management in SharePoint Server 2013 & Office 365Web Content Management in SharePoint Server 2013 & Office 365
Web Content Management in SharePoint Server 2013 & Office 365Ayman El-Hattab
 
Visual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in Egypt
Visual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in EgyptVisual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in Egypt
Visual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in EgyptAyman El-Hattab
 
Using Virtual Test Labs for SharePoint
Using Virtual Test Labs for SharePoint Using Virtual Test Labs for SharePoint
Using Virtual Test Labs for SharePoint Ayman El-Hattab
 
Visual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management ToolsVisual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management ToolsAyman El-Hattab
 
Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview Ayman El-Hattab
 
SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)Ayman El-Hattab
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformAyman El-Hattab
 
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle EastSharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle EastAyman El-Hattab
 
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle EastData-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle EastAyman El-Hattab
 
Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...
Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...
Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...Ayman El-Hattab
 
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVPConnecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVPAyman El-Hattab
 
Feature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVP
Feature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVPFeature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVP
Feature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVPAyman El-Hattab
 
SharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVPSharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVPAyman El-Hattab
 
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPSharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPAyman El-Hattab
 
SharePoint 2010 as a Development Platform, Ayman El-Hattab MVP
SharePoint 2010 as a Development Platform, Ayman El-Hattab MVPSharePoint 2010 as a Development Platform, Ayman El-Hattab MVP
SharePoint 2010 as a Development Platform, Ayman El-Hattab MVPAyman El-Hattab
 
Introducing SharePoint 2010 to Computer Science Students
Introducing SharePoint 2010 to Computer Science StudentsIntroducing SharePoint 2010 to Computer Science Students
Introducing SharePoint 2010 to Computer Science StudentsAyman El-Hattab
 
SharePoint 2010 Workflows - Ayman El Hattab
SharePoint 2010 Workflows -  Ayman El HattabSharePoint 2010 Workflows -  Ayman El Hattab
SharePoint 2010 Workflows - Ayman El HattabAyman El-Hattab
 

Mehr von Ayman El-Hattab (20)

Application Lifecycle Management for Nintex Solutions
Application Lifecycle Management for Nintex SolutionsApplication Lifecycle Management for Nintex Solutions
Application Lifecycle Management for Nintex Solutions
 
Boost O365 User Adoption with 10 Cool Add-ins!
Boost O365 User Adoption with 10 Cool Add-ins!Boost O365 User Adoption with 10 Cool Add-ins!
Boost O365 User Adoption with 10 Cool Add-ins!
 
Light Up Your Intranet with 10 Cools Apps
Light Up Your Intranet with 10 Cools AppsLight Up Your Intranet with 10 Cools Apps
Light Up Your Intranet with 10 Cools Apps
 
Web Content Management in SharePoint Server 2013 & Office 365
Web Content Management in SharePoint Server 2013 & Office 365Web Content Management in SharePoint Server 2013 & Office 365
Web Content Management in SharePoint Server 2013 & Office 365
 
Visual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in Egypt
Visual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in EgyptVisual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in Egypt
Visual Studio 2012 Tools for Team Work - From Visual Studio 2012 Launch in Egypt
 
Using Virtual Test Labs for SharePoint
Using Virtual Test Labs for SharePoint Using Virtual Test Labs for SharePoint
Using Virtual Test Labs for SharePoint
 
Visual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management ToolsVisual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management Tools
 
Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview Visual Studio 2010 ALM Tools Overview
Visual Studio 2010 ALM Tools Overview
 
SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)SharePoint Application Lifecycle Management (ALM)
SharePoint Application Lifecycle Management (ALM)
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development Platform
 
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle EastSharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
SharePoint Sandboxed Solutions and InfoPath - TechEd Middle East
 
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle EastData-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
Data-Centric Composites and Mashups in SharePoint 2010 - TechEd Middle East
 
Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...
Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...
Creating No-Code BCS Solutions in SharePoint 2010 and Office 2010–From TechEd...
 
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVPConnecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
Connecting to LOB Systems Using BCS, Ayman El-Hattab, MVP
 
Feature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVP
Feature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVPFeature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVP
Feature and Solution Framework in SharePoint 2010, Ayman El-Hattab MVP
 
SharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVPSharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Web Application Architecture_ Ayman El-Hattab,MVP
 
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVPSharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
SharePoint 2010 Service Application Architecture_ Ayman El-Hattab,MVP
 
SharePoint 2010 as a Development Platform, Ayman El-Hattab MVP
SharePoint 2010 as a Development Platform, Ayman El-Hattab MVPSharePoint 2010 as a Development Platform, Ayman El-Hattab MVP
SharePoint 2010 as a Development Platform, Ayman El-Hattab MVP
 
Introducing SharePoint 2010 to Computer Science Students
Introducing SharePoint 2010 to Computer Science StudentsIntroducing SharePoint 2010 to Computer Science Students
Introducing SharePoint 2010 to Computer Science Students
 
SharePoint 2010 Workflows - Ayman El Hattab
SharePoint 2010 Workflows -  Ayman El HattabSharePoint 2010 Workflows -  Ayman El Hattab
SharePoint 2010 Workflows - Ayman El Hattab
 

Kürzlich hochgeladen

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

SQL Server Development Tools & Processes Using Visual Studio 2010

  • 1. Microsoft Most Valuable Professional (MVP) www.aymanelhattab.com Twitter: @AymanElHattab
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16. class AuctionApplication class AuctionApplication class AuctionApplication ( ( ( App int id; int id; int id; void MethodA(); void MethodA(); string cacheTitle; ) void MethodB(); void MethodA(); ) void MethodB(); ) V1 V2 V3 Revision History CREATE ALTER TABLE dbo.Auction TABLE ALTER TABLE dbo.Auction dbo.Auction Database ( WITH CHECK ADD CONSTRAINT WITH CHECK ADD CONSTRAINT id INT NOT PRIMARY KEY (id) Au_PK Au_SK UNIQUE (name) NULL, name VARCHAR(25) NOT NULL, start DATETIME NULL, len INT NULL )
  • 17. -- 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
  • 18. class AuctionApplication class AuctionApplication class AuctionApplication ( ( ( App int id; int id; int id; void MethodA(); void MethodA(); string cacheTitle; ) void MethodB(); void MethodA(); ) void MethodB(); ) Source-controlled and deployed scripts V1 V2 V3 do not need to match! Revision History CREATE CREATE CREATE dbo.Auction TABLE dbo.Auction dbo.Auction TABLE TABLE Logical In- ( ( ( Memory id INT NOTid NOT NULL PRIMARY KEY, KEY, id INT NULL,INT NOT NULL PRIMARY Database name VARCHAR(25) NOT NULL, NULL, NULL UNIQUE, name VARCHAR(25) NOT name VARCHAR(25) NOT start DATETIME NULL, NULL, NULL, start DATETIME start DATETIME len INT NULL NULL NULL len INT len INT ) ) )
  • 19. CREATE CREATE CREATE dbo.Auction TABLE dbo.Auction dbo.Auction TABLE TABLE Logical In- ( ( ( Memory id INT NOTid NOT NULL PRIMARY KEY, KEY, id INT NULL,INT NOT NULL PRIMARY Database name VARCHAR(25) NOT NULL, NULL, NULL UNIQUE, name VARCHAR(25) NOT name VARCHAR(25) NOT start DATETIME NULL, NULL, NULL, start DATETIME start DATETIME len INT NULL NULL NULL len INT len INT ) ) ) V1 V2 V3 Revision History New Incremental Deployment CREATE TABLE dbo.Auction Deployment ALTER TABLE dbo.Auction ( WITH CHECK ADD CONSTRAINT id INT NOT NULL PRIMARY KEY, Au_SK UNIQUE (name) name VARCHAR(25) NOT NULL UNIQUE, start DATETIME NULL, V2 len INT NULL )
  • 20. Source Interpret, Database analyze and validate Reverse engineer Schema Model schema into DDL artifacts Database Project Build .dbschema Schema Model file DDL SQL Artifacts Compose model representation from source code fragments!
  • 21. Target .dbschema Database file Schema Model Schema Model Model Diff Plan Executors .SQL Deployment Additional schema artifacts Engine Incremental Target Update
  • 22.
  • 23.
  • 24.
  • 25.
  • 26. Creating New Database Projects Offline Schema Development New Deployment Schema Refactoring Incremental Deployment Schema & Data Comparison
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33. Dependency Validation TSQL Static Code Analysis Test Data Generation Database Unit Testing TSQL Debugging
  • 34.
  • 35. TFS Source Control Check in to DBDev DBA Staging Database Database Import schema Production Project Database
  • 36. •Sync Dev •Check-out Env •Edit/Refactor •Generate Test Data •Database Unit Test Dev •Check-in Env TFS •Work is being driven Dev and tracked via work items Env •Other team members can pick up changes DBDev DBA Staging Database TFS Shelving allows DBA Dev to provide guidance Env Production and evaluate work Database
  • 37. Daily Test Build Database Output Can also be TFS used in a “Continuous” Get Latest build environment DBDev Daily Build Test Lab DBA Staging Database Production Database
  • 38. TFS Sync from Label DBDev DBA Deploy Staging Database SQL Database Deploy Production Project Build Script Database Verify Refine deploy script
  • 39.
  • 40.
  • 41. Schema DATABASE SCHEMA Tables Views Constraints Sprocs UDFs Users Logins Filegroups PROPERTIES & METADATA Requirements Management Policies Failover Policies
  • 42. Database Project Data-tier Application Project V1 (Mission Critical, Business Critical) (Departmental Apps) Visual Studio Visual Studio Build Build Generate scripts .dbschema .dacpac Deploy Deploy SQL Server 2005, 2008, 2008 SQL Server 2008 R2 & 2008 R2 R2
  • 43. DEVELOP DEPLOY MANAGE SQL Server Management Studio FinApp 1 Dev DB Deploy / Reverse Upgrade DAC Engineer DAC 2 SQL Server Management Studio DBA 9 8 Visual Studio 2010 Manage, Register, Uninstall, Extract, Upgrade DAC Control Point Create policies DBA 7 3 Deploy / Upgrade DAC HR Developer Compile Hand-off to DBA + Build FinApp Prod DB 6 5 .dacpac SALES Managed Instances
  • 44.
  • 45. SQL Server Version DAC Feature 2000 2005 2008 2008 R2 Azure Extract DAC Yes Yes Yes Yes Yes Deploy DAC No No In SP2 Yes Yes Delete DAC No No In SP2 Yes Yes Register DAC No No In SP2 Yes Yes Upgrade DAC No No In SP2 Yes No SSMS Support No No No Yes Yes (2008 R2)
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 54. http://msdn.microsoft.com/en-us/library/ee210554(SQL.105).aspx http://msdn.microsoft.com/en-us/library/ff381683.aspx http://msdn.microsoft.com/en-us/library/dd193245(VS.100).aspx http://msdn.microsoft.com/en-us/library/ee210580(SQL.105).aspx http://www.youtube.com/watch?v=jmFQrBp6D0g http://channel9.msdn.com/Events/TechEd/Europe/2010/DAT311 http://technet.microsoft.com/en-us/sqlserver/Video/ee795823

Hinweis der Redaktion

  1. Databases are a critical component utilized by many (if not most) software applications. And yet, they are traditionally underserved by tools that can facilitate development, testing & deployment. Database developers are usually left to cobble together disconnected tools for developing & deploying database changes. Furthermore, database developers usually follow a process that is disconnected from the process followed by the application development team, resulting in an error-prone and labor-intensive system of collaboration. With VS2010, you can finally bring the process of managing changes to your database into the same toolset and process framework used by the other members of your software development team.
  2. Databases are a critical component utilized by many (if not most) software applications. And yet, they are traditionally underserved by tools that can facilitate development, testing & deployment. Database developers are usually left to cobble together disconnected tools for developing & deploying database changes. Furthermore, database developers usually follow a process that is disconnected from the process followed by the application development team, resulting in an error-prone and labor-intensive system of collaboration. With VS2010, you can finally bring the process of managing changes to your database into the same toolset and process framework used by the other members of your software development team.
  3. For those new to Visual Studio Database Projects, Database Projects provide 3 main pillars of functionality:1.) Managing ChangeVersioning of your database schema – Full fidelity offline schema development of your database within the project systemIncremental Deployment - Deploy your database schema against multiple versions of a database schemaSchema Compare – Database Tooling to compare schemas between databases, database projects, and dbschema (dbschema files which are the primary output artifact of building a database project) Schema Refactoring –Database Tooling to support common iterative changes to your database schema within the development cycle (Refactoring operations include: Expand Wildcards, Rename, Move Schema, Fully Expand Names 2.) Managing QualityDependency validation and visualization –Validation during design and build ensuring consistency and integrity of your database schema Static Code Analysis – Analogous to FxCop, but for SQL. The product has 14 rules that it ships with. The inbox rules cover naming, design, and performance issue categories. Unit Testing and Data Generation – A Unit Testing Framework similar to what is available to the app developer, but with T-SQL and Data Generation capabilities to test your instantiated schema with data.
  4. 3.) DDLC Integration into ALMTeam Developer brings the database development lifecycle into the Visual Studio Developer experience in a consistent and familiar manner. Many of the same idiom or metaphors now exist for database development that c#/vb.net developers are accustomed to. Database projects bring the data tier developer into the team based development lifecycle. (Define, Design, Develop, Test, Deploy, Manage) Lather, rinse, repeatBuild integration with MSBuild and TeamBuild4.) Database Development Platform ExtensibilityDatabase projects offer extensibility to add features to the project system or to expand features that ship with the productFeature extensibility includes: Custom Static Code Analysis Rules, Custom Unit Test Conditions, Custom Data Generators and Data Distributions, Custom Refactoring Types and Targets
  5. Can you use a Diff Utility of any Version Control System to get the changes between V2 & V3 for the database ? No
  6. Not performantError-prone because it’s difficult to get the dependency tracking correctLabor-IntensiveRequire extensive additional logic to account for customizations or versioning differences between different instances of production databases.Database changes must be made in a precise order to preserve the integrity of the schema & prevent data loss.Can introduce additional bugs
  7. Visual Studio eliminates the need to ever hand-code database deployment scripts.
  8. Schema Model = In-memory model of the database.Creating database objects & editing TSQL cause visual studio to perform background analysis of your changes & make the appropriate changes to the schema model, it may also detect syntax errors, dependency errors & thus protect the integrity of your database schema.As mentioned we persist our database schema as separate .sql scripts within a Visual Studio project system. Which is a physical container for grouping all of the .sql files that make up a database schemaBecause we are completely offline, and there is no database in place within the Database project system, we also need to understand the database from a logical perspective, namely how each of the object relate, depend on each other.We do that via a Schema Model, which is basically an in memory representation of that database schema as it would exist in a live database.To populate our schema model, we can take an existing database, reverse engineer the definition of that database (no data) and create .sql files for each schema objects(.sql file for each table, .sql file for each primary key, stored procedures etc.).We can then version control those .sql files just like you version control any of your .Net coding filesWith the .sql files, we then load the content of the file through our intrepret component to interpret the schema definition (is this a stored procedure we’re dealing with, or is this a table etc.) and then analyze the content(do we already have an object defined using this name, does this object depend on another object, namely for Primary Keys which table does this pk belong to etc.) and then we validate(is the object defined correctly, for Primary keys is the table defined and in an non error state). Once each of our objects pass this process, we then populate it into our schema model, which provides a true picture of a database which is fully validated and could be deployed to a live database without any semantic errors.The persistent model of the schema model is a .dbschema file
  9. This is a simplified diagram of how the incremental deployment engine works. In a nutshell, it uses in memory models of the source and target databases to compare schemas to create a deployment plan. The deployment plan produced is dependency and data aware. Examples: Trying to DROP objects that have dependencies not in comprehended in the project will often fail the deployment.Modifying the schema of the database that may introduce data loss is optionally blocked in deployment. Test OK to lose data. Production, not so much. The deployment engine produces a list of differences and a deployment contributor acts on those differences to produce the least invasive approach to modify the target database to match that of the source. The deployment contributor combines this deployment plan with additional project artifacts and generates a SQL deployment script. Additional deployment contributors also act on the database target by emitting additional SQL or supporting artifacts LIKE a change list or data dictionary. We will see more of this later.
  10. Now you can defer the comparison of the source & target database so that an appropriate script is generated based on the state of the target database.
  11. The new SQL Server Utility provides an overall understanding of your organization’s SQL Server health as well as resource monitoring. The ideas originally came from consolidation projects and makes applications easier to move around.
  12. Do Data-tier Application (DAC) projects replace Database projects? A lot of people are currently using database projects—initially, the adoption rate was slow, but it is definitely picking up. This table shows the strengths of each project type. Larger applications are best completed through Database projects. DAC projects add deployment intent and have been optimized for 1000 objects per project in V1. The aim of the DAC project type is to automate the process completely for departmental applications.
  13. SSDT is the latest investment Microsoft is making in integrated tools for relational database developers targeting Microsoft SQL Server.  SSDT is the evolution of Database Projects for Visual Studio, and contains new capabilities and improvements, all accessible within the Visual Studio 2010 Integrated Development Environment (IDE).