SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Put databases in ALM backgrounds
Alessandro Alpi
@suxstellino

Gian Maria Ricci
@alkampfer

December 13th, 2013

#sqlsat264
Sponsors & Media Partners

December 13th, 2013

#sqlsat264
Organizers

December 13th, 2013

#sqlsat264
About us
 Both MVPs (SQL and VS ALM) 
 Both Microsoft Certified * 
 blogs:
 http://blogs.dotnethell.it/suxstellino
 http://www.codewrecks.com/blog/

 More details on:
 http://www.alessandroalpi.net
 http://www.getlatestversion.it/

December 13th, 2013

#sqlsat264
Agenda










ALM concepts
Source control manager
Database vs Code
Database ALM tools
Development solutions
Testing solutions
Deployment solutions
Conclusions
Q&A

December 13th, 2013

#sqlsat264
ALM definition
ALM is the product lifecycle management
(governance, development, and maintenance) of
application software. It encompasses requirements
management, software architecture, computer
programming, software testing, software
maintenance, change management, project
management, and release management.

(source Wikipedia)
December 13th, 2013

#sqlsat264
Why ALM?








Breaking the team barriers (integration)
Release high quality software
Release software in quickly
Customer satisfaction
Improved work organization
Monitoring and tracking the activities
Improved code (clear and easy to read)

December 13th, 2013

#sqlsat264
Continuous integration





Database integrity check verification
Unit test automation
Code analysis automation
«build» phases

December 13th, 2013

#sqlsat264
Continous delivery/deployment






Database drifts
Data sync
Deploy pipeline
Integration tests
Automated deploy from a «package»

December 13th, 2013

#sqlsat264
Task based work





Modifications vs. «reason»
Agile project  BACKLOG
Traditional project  REQUIREMENTS
Tasks developed on iterations (sprints)

December 13th, 2013

#sqlsat264
ALM and database
 The database needs analysis and development
 The databases must be redistributed
 The databases must be synchronized within the
development environment
 The database will have «changes» associated to
«activities»
 The database should be tested
 And, of course, it’s a good thing to deploy 
December 13th, 2013

#sqlsat264
Source Control Manager






Management of versions
Changes of the code (and not only those)
Shared entity during development stages,
Deploy and team management
Provides an interface (also graphic)

December 13th, 2013

#sqlsat264
SCM – Why?







Versions of our code
Safe storage of our files
Share development lines within the team
Creation of a central point for deploying
Automate build and test processes
The real needs of every team..

December 13th, 2013

#sqlsat264
SCM – Talking about database






DB can be a file «inside the application»
DB is «located on the server»
DB persists user data
DB is not all and only code
However the changes on DB must be reflected
on the whole team

The Source Control seems «uncomfortable»

December 13th, 2013

#sqlsat264
But without a SCM
 How can we easily manage the fix?
 How can we prevent regressions?
 How quickly can we have multiple development
environments?
 How can we easily create a new dev branch?
 How to create different versions of the DB?
 How can we synchronize the DB with the latest
application changes?

December 13th, 2013

#sqlsat264
DB vs. code – so different?
 The database IS code (programmability,
ddl, grant, etc.)
 The «domain» tables are like many enums
(static data).
 The DB should be changed in more
development branches.

December 13th, 2013

#sqlsat264
DB vs. code – so different?
 The pointers to the linked servers are
configurations (as ‘app.config’)
 The login server are environment
configurations
 The database persist the data. It’s not a
*source control* problem

December 13th, 2013

#sqlsat264
Why put the DB under SCM
 Make versions of our objects (DDL) and
our programmability on database
 Make labels including the database, so we
can return to a previous situation
 Team synchronized to the get of the
version (usually the latest)
 To do versioning also of the static data
December 13th, 2013

#sqlsat264
And more..
 Continuous Integration (tests)
 Branch (more development lines)
 Isolated environments for geographically
located teams
 Atomicity between application and DB
 Saving documentation of the DB

December 13th, 2013

#sqlsat264
SCM – Here are some








TFS (on-premises and VSOnline)
Git
Mercurial
Subversion
CVS
Perforce
…

December 13th, 2013

#sqlsat264
Possible actions with SCM
 Some actions are:
 Get
 Commit/Checkin
 Undo
 Save (working folder)
 Delete (working folder)
 Edit (working folder)

December 13th, 2013

#sqlsat264
Management Tool for SCM - DB
 Visual Studio
 Database projects
 Red-Gate Source Control
 SQL Test (for CI)
 ApexSQL Versions
…

December 13th, 2013

#sqlsat264
The Team Explorer
Regardless of the tool we use, Team Exploder
allows us to:
 Improve management of the changesets
 Improve association of changesets to tasks
 Improve control on commit and checkin phases
 Centralize management of checkin policy
 Single point for management of the team project

December 13th, 2013

#sqlsat264
Solutions and tools – development/change
 Management Studio – not enough
 Visual Studio + database projects
 Third party add-ons with SSMS (i.e. Red-Gate
SQL Source Control)
 Third party stand-alone tools

December 13th, 2013

#sqlsat264
Visual Studio + Database projects
 Connected database development

December 13th, 2013

#sqlsat264
Visual Studio + Database projects
 Project based development

December 13th, 2013

#sqlsat264
DEMO
VSOnline connection
Visual Studio Database Project intro
 Project template
 Connections
 Development
 Refactor
 Checkin/Checkout
 Changeset management

December 13th, 2013

#sqlsat264
Red-Gate SQL Source Control
 Integration with SQL Server Management Studio

December 13th, 2013

#sqlsat264
Red-Gate SQL Source Control
 Integration with Visual Studio (SQLConnect)

December 13th, 2013

#sqlsat264
Red-Gate SQL Source Control
 Shared development model

 Dedicated development model (recommended)

December 13th, 2013

#sqlsat264
DEMO
VSOnline connection
Intro to Red-Gate SQL Source Control
 SSMS Integration
 Development type
 SCM
 Working folder
 SCM direct connection

 Static data
 Checkin/Save
 Changeset management
December 13th, 2013

#sqlsat264
Soluzioni e tool – Unit testing
 Visual Studio
 Database sandbox
 Database unit testing
 Backdoor manipulation

 Red-Gate SQL Source Control
 Framework tSQLt
 SQLTest plugin
 Integrated with SSMS
 Builtin test classes
 Naming conventions
December 13th, 2013

#sqlsat264
DEMO
Unit testing:
 Visual Studio
 Red-Gate SQL Source Control

December 13th, 2013

#sqlsat264
Soluzioni e tool – Deployment
 Visual Studio Data compare
Live database
Snapshot
Database project

 Deploy da:
Data compare
Publish
F5
Data with post build script
December 13th, 2013

#sqlsat264
Soluzioni e tool – Deployment
 Red-Gate SQL Compare and Data Compare








Live database
Working folder
Backup
Integrated with SSMS
Migration scripts
Compare Projects customization
Two kind of projects for Data and Structures (DDL)

 Deploy from:





Compare project (DDL)
Compare project (Data)
Script folder
Nuget

December 13th, 2013

#sqlsat264
DEMO
Deployment:
 Visual Studio
 Red-Gate SQL Source Control

December 13th, 2013

#sqlsat264
Conclusions




Which tools to use?
 Every tool has its own peculiarity
 SQL Source Control allows us to manage data in the easiest way
 Visual Studio ensures the same structure of the database project
 Visual Studio is more simple for the developers (or SQL Connect)
Which parameters should we consider?
 How is our team structured?
 Which are the minimum requirements?
 How much can I afford to spend?
 Can I afford the learning curve if I change IDE?

Last but not least, I should use the Source Control 

December 13th, 2013

#sqlsat264
Resources



http://www.getlatestversion.it/ (ALM italian community)
http://www.getlatestversion.it/2013/11/28/la-difficile-arte-della-stima/



http://www.codewrecks.com/blog/ (Gian Maria Ricci’s blog on ALM)







http://mattvsts.blogspot.it/ (Matteo Emili’s blog on ALM)
http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html
http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx
http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx
http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-changescripts.aspx
http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-storedprocedures-and-the-like.aspx
http://odetocode.com/blogs/scott/archive/2008/02/03/versioning-databases-branching-andmerging.aspx
http://www.red-gate.com/products/sql-development/sql-source-control/
http://vsaralmassessment.codeplex.com
http://it.wikipedia.org/wiki/Application_lifecycle_management







December 13th, 2013

#sqlsat264
Q&A
 Questions?

December 13th, 2013

#sqlsat264
#sqlsat264

THANKS!

December 13th, 2013

#sqlsat264

Weitere ähnliche Inhalte

Andere mochten auch

Cwit interview
Cwit interviewCwit interview
Cwit interview
akhtarsaad
 
2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full
Kier Francisco
 
Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)
CastilloAguilera
 
Educational managment task_2
Educational managment task_2Educational managment task_2
Educational managment task_2
alexandersaa2013
 

Andere mochten auch (16)

Lista 2 - geografia
Lista 2 - geografiaLista 2 - geografia
Lista 2 - geografia
 
Cwit interview
Cwit interviewCwit interview
Cwit interview
 
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases#DOAW16 - DevOps@work Roma 2016 - Testing your databases
#DOAW16 - DevOps@work Roma 2016 - Testing your databases
 
PASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous DeploymentPASS Virtual Chapter - SQL Server Continuous Deployment
PASS Virtual Chapter - SQL Server Continuous Deployment
 
PASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL ServerPASS Virtual Chapter - Unit Testing su SQL Server
PASS Virtual Chapter - Unit Testing su SQL Server
 
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
 
2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full2 67-1379416025-9. automation nad virtual.full
2 67-1379416025-9. automation nad virtual.full
 
Gordonas sausio
Gordonas sausioGordonas sausio
Gordonas sausio
 
Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)Oraciones simples con solucionario (ppt)
Oraciones simples con solucionario (ppt)
 
Educational managment task_2
Educational managment task_2Educational managment task_2
Educational managment task_2
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control[ITA] SQL Saturday 257 - Put databases under source control
[ITA] SQL Saturday 257 - Put databases under source control
 
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
[Ita] Sql Saturday 462 Parma - Sql Server 2016 JSON support
 
Quick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL ServerQuick intro sul Source Control su SQL Server
Quick intro sul Source Control su SQL Server
 
Lista 5
Lista 5Lista 5
Lista 5
 
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
[ENG] Sql Saturday 355 in Parma - New "SQL Server databases under source cont...
 

Mehr von Alessandro Alpi

Mehr von Alessandro Alpi (13)

Mvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops worldMvp4 croatia - Being a dba in a devops world
Mvp4 croatia - Being a dba in a devops world
 
Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?Digital warriors 2020 - Smart?
Digital warriors 2020 - Smart?
 
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
Sql Wars - SQL the attack of the Clones and the rebellion of the Containers
 
Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers Sql Wars - SQL Clone vs Docker Containers
Sql Wars - SQL Clone vs Docker Containers
 
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL ServerDoaw2020 - Dalla produzione alla QA, provisioning su SQL Server
Doaw2020 - Dalla produzione alla QA, provisioning su SQL Server
 
Wpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero teamWpc2019 - Distruggere DevOps, la storia di un vero team
Wpc2019 - Distruggere DevOps, la storia di un vero team
 
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL ServerSql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
Sql start!2019 Migliorare la produttività per lo sviluppo su SQL Server
 
Configuration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile FrameworkConfiguration e change management con Disciplined Agile Framework
Configuration e change management con Disciplined Agile Framework
 
Basta poco per distruggere DevOps
Basta poco per distruggere DevOpsBasta poco per distruggere DevOps
Basta poco per distruggere DevOps
 
Automatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source controlAutomatizzare il processo di link dei database con redgate source control
Automatizzare il processo di link dei database con redgate source control
 
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DBSql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
Sql saturday parma 2017 (#sqlsat675) - Deep space Cosmos DB
 
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a opsSql Saturday a Pordenone - Sql Server journey, da dev a ops
Sql Saturday a Pordenone - Sql Server journey, da dev a ops
 
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
[Eng] Sql Saturday TorinoExpo - Sql Server 2016 JSON support
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

[ENG] SQL Saturday 264 - Put databases in ALM backgrounds

  • 1. Put databases in ALM backgrounds Alessandro Alpi @suxstellino Gian Maria Ricci @alkampfer December 13th, 2013 #sqlsat264
  • 2. Sponsors & Media Partners December 13th, 2013 #sqlsat264
  • 4. About us  Both MVPs (SQL and VS ALM)   Both Microsoft Certified *   blogs:  http://blogs.dotnethell.it/suxstellino  http://www.codewrecks.com/blog/  More details on:  http://www.alessandroalpi.net  http://www.getlatestversion.it/ December 13th, 2013 #sqlsat264
  • 5. Agenda          ALM concepts Source control manager Database vs Code Database ALM tools Development solutions Testing solutions Deployment solutions Conclusions Q&A December 13th, 2013 #sqlsat264
  • 6. ALM definition ALM is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management, and release management. (source Wikipedia) December 13th, 2013 #sqlsat264
  • 7. Why ALM?        Breaking the team barriers (integration) Release high quality software Release software in quickly Customer satisfaction Improved work organization Monitoring and tracking the activities Improved code (clear and easy to read) December 13th, 2013 #sqlsat264
  • 8. Continuous integration     Database integrity check verification Unit test automation Code analysis automation «build» phases December 13th, 2013 #sqlsat264
  • 9. Continous delivery/deployment      Database drifts Data sync Deploy pipeline Integration tests Automated deploy from a «package» December 13th, 2013 #sqlsat264
  • 10. Task based work     Modifications vs. «reason» Agile project  BACKLOG Traditional project  REQUIREMENTS Tasks developed on iterations (sprints) December 13th, 2013 #sqlsat264
  • 11. ALM and database  The database needs analysis and development  The databases must be redistributed  The databases must be synchronized within the development environment  The database will have «changes» associated to «activities»  The database should be tested  And, of course, it’s a good thing to deploy  December 13th, 2013 #sqlsat264
  • 12. Source Control Manager      Management of versions Changes of the code (and not only those) Shared entity during development stages, Deploy and team management Provides an interface (also graphic) December 13th, 2013 #sqlsat264
  • 13. SCM – Why?       Versions of our code Safe storage of our files Share development lines within the team Creation of a central point for deploying Automate build and test processes The real needs of every team.. December 13th, 2013 #sqlsat264
  • 14. SCM – Talking about database      DB can be a file «inside the application» DB is «located on the server» DB persists user data DB is not all and only code However the changes on DB must be reflected on the whole team The Source Control seems «uncomfortable» December 13th, 2013 #sqlsat264
  • 15. But without a SCM  How can we easily manage the fix?  How can we prevent regressions?  How quickly can we have multiple development environments?  How can we easily create a new dev branch?  How to create different versions of the DB?  How can we synchronize the DB with the latest application changes? December 13th, 2013 #sqlsat264
  • 16. DB vs. code – so different?  The database IS code (programmability, ddl, grant, etc.)  The «domain» tables are like many enums (static data).  The DB should be changed in more development branches. December 13th, 2013 #sqlsat264
  • 17. DB vs. code – so different?  The pointers to the linked servers are configurations (as ‘app.config’)  The login server are environment configurations  The database persist the data. It’s not a *source control* problem December 13th, 2013 #sqlsat264
  • 18. Why put the DB under SCM  Make versions of our objects (DDL) and our programmability on database  Make labels including the database, so we can return to a previous situation  Team synchronized to the get of the version (usually the latest)  To do versioning also of the static data December 13th, 2013 #sqlsat264
  • 19. And more..  Continuous Integration (tests)  Branch (more development lines)  Isolated environments for geographically located teams  Atomicity between application and DB  Saving documentation of the DB December 13th, 2013 #sqlsat264
  • 20. SCM – Here are some        TFS (on-premises and VSOnline) Git Mercurial Subversion CVS Perforce … December 13th, 2013 #sqlsat264
  • 21. Possible actions with SCM  Some actions are:  Get  Commit/Checkin  Undo  Save (working folder)  Delete (working folder)  Edit (working folder) December 13th, 2013 #sqlsat264
  • 22. Management Tool for SCM - DB  Visual Studio  Database projects  Red-Gate Source Control  SQL Test (for CI)  ApexSQL Versions … December 13th, 2013 #sqlsat264
  • 23. The Team Explorer Regardless of the tool we use, Team Exploder allows us to:  Improve management of the changesets  Improve association of changesets to tasks  Improve control on commit and checkin phases  Centralize management of checkin policy  Single point for management of the team project December 13th, 2013 #sqlsat264
  • 24. Solutions and tools – development/change  Management Studio – not enough  Visual Studio + database projects  Third party add-ons with SSMS (i.e. Red-Gate SQL Source Control)  Third party stand-alone tools December 13th, 2013 #sqlsat264
  • 25. Visual Studio + Database projects  Connected database development December 13th, 2013 #sqlsat264
  • 26. Visual Studio + Database projects  Project based development December 13th, 2013 #sqlsat264
  • 27. DEMO VSOnline connection Visual Studio Database Project intro  Project template  Connections  Development  Refactor  Checkin/Checkout  Changeset management December 13th, 2013 #sqlsat264
  • 28. Red-Gate SQL Source Control  Integration with SQL Server Management Studio December 13th, 2013 #sqlsat264
  • 29. Red-Gate SQL Source Control  Integration with Visual Studio (SQLConnect) December 13th, 2013 #sqlsat264
  • 30. Red-Gate SQL Source Control  Shared development model  Dedicated development model (recommended) December 13th, 2013 #sqlsat264
  • 31. DEMO VSOnline connection Intro to Red-Gate SQL Source Control  SSMS Integration  Development type  SCM  Working folder  SCM direct connection  Static data  Checkin/Save  Changeset management December 13th, 2013 #sqlsat264
  • 32. Soluzioni e tool – Unit testing  Visual Studio  Database sandbox  Database unit testing  Backdoor manipulation  Red-Gate SQL Source Control  Framework tSQLt  SQLTest plugin  Integrated with SSMS  Builtin test classes  Naming conventions December 13th, 2013 #sqlsat264
  • 33. DEMO Unit testing:  Visual Studio  Red-Gate SQL Source Control December 13th, 2013 #sqlsat264
  • 34. Soluzioni e tool – Deployment  Visual Studio Data compare Live database Snapshot Database project  Deploy da: Data compare Publish F5 Data with post build script December 13th, 2013 #sqlsat264
  • 35. Soluzioni e tool – Deployment  Red-Gate SQL Compare and Data Compare        Live database Working folder Backup Integrated with SSMS Migration scripts Compare Projects customization Two kind of projects for Data and Structures (DDL)  Deploy from:     Compare project (DDL) Compare project (Data) Script folder Nuget December 13th, 2013 #sqlsat264
  • 36. DEMO Deployment:  Visual Studio  Red-Gate SQL Source Control December 13th, 2013 #sqlsat264
  • 37. Conclusions   Which tools to use?  Every tool has its own peculiarity  SQL Source Control allows us to manage data in the easiest way  Visual Studio ensures the same structure of the database project  Visual Studio is more simple for the developers (or SQL Connect) Which parameters should we consider?  How is our team structured?  Which are the minimum requirements?  How much can I afford to spend?  Can I afford the learning curve if I change IDE? Last but not least, I should use the Source Control  December 13th, 2013 #sqlsat264
  • 38. Resources   http://www.getlatestversion.it/ (ALM italian community) http://www.getlatestversion.it/2013/11/28/la-difficile-arte-della-stima/  http://www.codewrecks.com/blog/ (Gian Maria Ricci’s blog on ALM)      http://mattvsts.blogspot.it/ (Matteo Emili’s blog on ALM) http://www.codinghorror.com/blog/2006/12/is-your-database-under-version-control.html http://odetocode.com/blogs/scott/archive/2008/01/30/three-rules-for-database-work.aspx http://odetocode.com/blogs/scott/archive/2008/01/31/versioning-databases-the-baseline.aspx http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-changescripts.aspx http://odetocode.com/blogs/scott/archive/2008/02/02/versioning-databases-views-storedprocedures-and-the-like.aspx http://odetocode.com/blogs/scott/archive/2008/02/03/versioning-databases-branching-andmerging.aspx http://www.red-gate.com/products/sql-development/sql-source-control/ http://vsaralmassessment.codeplex.com http://it.wikipedia.org/wiki/Application_lifecycle_management      December 13th, 2013 #sqlsat264