* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Source Code Management for Dynamics NAV in
Microsoft Access wikipedia , lookup
Oracle Database wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Relational model wikipedia , lookup
Ingres (database) wikipedia , lookup
Concurrency control wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Database model wikipedia , lookup
Clusterpoint wikipedia , lookup
Directions EMEA Community for Dynamics NAV partners Source Code Management for Dynamics NAV in 4 Examples Soren Klemmensen, Kamil Sacek, Luc van Vugt & Eric Wauters Introduction Connected InNAVation! Mannheim, Germany, October 5-7, 2015. 4 Shades of Gray Soren Klemmensen (CA) Kamil Sacek (CZ) Luc van Vugt (NL) Eric Wauters (BE) Agenda Why Source Code Management (SCM)? How SCM? • 4 Shades of Gray (4 examples) Why SCM? Connected InNAVation! Mannheim, Germany, October 5-7, 2015. Why SCM? Why was change done? Requirement What does change contain? Code change Who did change? Author Where did change 'go'? Change Flow What changes have been applied? History Why SCM? - Benefits Secured code History at hand Code Review • code improvement TFS/GIT • used by many • lots of built-in and plug-in tooling • API How SCM? 4 Shades of Gray 4 Shades of Gray Luc van Vugt Connected InNAVation! Mannheim, Germany, October 5-7, 2015. Keep It Simple Team Foundation Server holds all source, the truth • including requirements Manual ex-/import of .txt objects from/to databases Environment & Tools End User • #1 School Book Reseller in The Netherlands DTAP setup • Development, Test, Acceptance, Production • Branch & Merge Strategy to propagate approved code changes Team Foundation Server 2012 Visual Studio 2012/2013/2015 NAV 2009 R2 Environment - Developer Local or Virtual Machine Check in Code Workspace Managed by Visual Studio Developer Database Update/Sync Database with Workspace Developer Isolation Update Workspace Team Foundation Server Update Workspace Environment - Test Local or Virtual Machine Check in Code Update Workspace Workspace Managed by Visual Studio Test Database Update/Sync Database with Workspace Team Foundation Server Update Workspace Environment - Acceptance Local or Virtual Machine Workspace Managed by Visual Studio Acceptance Database Update/Sync Database with Workspace Team Foundation Server Update Workspace Environment - Production Local or Virtual Machine Build Database .fob Workspace Managed by Visual Studio Production Database Team Foundation Server .fob Update Workspace DTAP with Multiple Developers/Projects RI DEV 2 RELEASE 2.1 (PRODUCTION) RI Branch RI Branch FI Branch RI TEST (BETA) MAIN (ACCEPTANCE) FI FI Branch RI DEV 1 Hotfix RELEASE 2.2 (PRODUCTION DTAP with Multiple Developers/Projects $ - Dev - Test (Beta) RI DEV 2 DEV 1 RELEASE 2.1 (PRODUCTION) RI - Main (Acceptance) Branch RI Branch MAIN (ACCEPTANCE) FI Branch RI TEST (BETA) + Dev-1 + Dev-2 FI FI Branch RI + Source - Hotfix RELEASE 2.2 (PRODUCTION + Source Releases + Release2.1 (Production) + Release2.2 (Production) DTAP with Multiple Developers/Projects $ - Dev - Test (Beta) + Source + Dev-1 + Dev-2 - Main (Acceptance) + Source - Releases + Release2.1 (Production) + Release2.2 (Production) My Benefits Release per changeset possible • 1 changeset per requirement • Rollback per changeset Developer isolation DTAP at hand 4 Shades of Gray Eric Wauters Connected InNAVation! Mannheim, Germany, October 5-7, 2015. Keep It Simple Team Foundation Server holds all: • Source • Source versions (object versions) ReVision is going to manage text import and export (in background) Minimum change in DEV Experience, with the power of Source Code Management. Environment & Tools Microsoft Dynamics NAV iFacto ReVision Team Foundation Server Mantis Environment - DEV DEV Server Terminal Server TFS Server Team Foundation Server DEV Database DEV Database DEV Database DEV Database DEV Database Mantis Dynamics NAV Classic Client iFacto ReVision Check Out/In Objects Rollback DB Build Mgt Compare / Edit / Compile Object History … Link Changesets to Issues in Mantis Check Out Press Ctrl+Alt+O Check In Press Ctrl+Alt+I Object History Press Ctrl+Alt+H Object History / Compare Select 2 changesets and right mouse click / Compare Object History / Compare Mantis Changesets become automagically visible in Mantis Example: http://issuetracker.ifacto.be/view.php?id=14824 Environment - DEV DEV Server Terminal Server TFS Server Team Foundation Server DEV Database DEV Database DEV Database DEV Database DEV Database Mantis Dynamics NAV Classic Client iFacto ReVision Check Out/In Objects Rollback DB Build Mgt Compare / Edit / Compile Object History … Link Changesets to Issues in Mantis Environment - Build DEV Server Terminal Server TFS Server Team Foundation Server DEV Database Dynamics NAV Classic Client iFacto ReVision Build Server Compile all objects Fetch changes Report to developer Mantis Environment - Test DEV Server Terminal Server TFS Server Team Foundation Server DEV Database Dynamics NAV Classic Client iFacto ReVision Build Server Test Server Run all tests Fetch changes Report to developer Mantis My Benefits History REALLY at hand (in the DEV Client) Not necessary to maintain multiple isolated environments No need to merge on every check-in Possible to enforce the methodology • Central Development DB • Object Table Triggers – you need to check out before development • Managed by ReVision Handicaps No Branches In our environment, our Branches are different databases with its own repository. ReVision makes it easy for us to compare these different databases. Though, there is no defined relationship between any of the “branches” Not possible to work with more then one developer on 1 object at the same time Which has got a big advantage as well: not necessary to merge on every check in Mantis We should move to workitems 4 Shades of Gray Kamil Sacek Connected InNAVation! Mannheim, Germany, October 5-7, 2015. Keep It Simple GIT holds all source, the truth Most things ‘on click’ Automatization through TFS Build Environment & Tools GIT + GITExtension Home-brewed Version Control in NAV NAVERTICA Helpdesk PowerShell TFS 2013/2015 NAV 2013/2015/2016 How it works? Build Update repo & Commit Local GIT repository Update/Sync Database with repo Isolated development Developer Isolation Developer Database Push Build Database (tests) Test/Build results GIT server repository (TFS, GITHub …) Pull Build (Update DB) Check-in (Update repo) Central Development Database Central development Demo GITExtensions + PowerShell My Benefits Easy to use system Flexible system • Both development isolation and centralized development Release per commit possible Easy rollback 4 Shades of Gray Soren Klemmensen Connected InNAVation! Mannheim, Germany, October 5-7, 2015. Keep It Simple All developers use their own workspace PowerShell Scripts to export and put individual objects into their own workspace Check-in is manual Scripts to build new application Import and compiling a new version can be automated with the VS Build Engine Environment & Tools Custom and Vertical development Visual Studio Online Visual Studio 2013/2015 NAV 2009 R2, 2013, 2013 R2, 2015 & 2016 PowerShell (and vb script for old versions) Environment - Developer Local or Virtual Machine Workspace Managed by Visual Studio Developer Database Update/Sync Database with Workspace Check in Code Code Review Developer Isolation Update Workspace Visual Studio Online Update Workspace Environment - Build Local or Virtual Machine Clean Standard DB Workspace Managed by Visual Studio Developer Database Update/Sync Database with Workspace Developer Isolation Build FOB Visual Studio Online Update Workspace My Benefits ChangeSet with multiple objects Strong tools to improve the Dev team Developer isolation No dependencies on NAV databases The Source Code is the ONLY TRUTH Branching and merging Works for all development (not just NAV) My Benefits Nothing in NAV. Generic. 4 Shades of Gray Benefits and Handicaps Connected InNAVation! Mannheim, Germany, October 5-7, 2015. Benefits and Handicaps Licensing Shade of Gray Luc waldo Kine Soren SCM Build Automated Automated Integration Build Branching Developer No Isolation/ Centralized Conflicts in Suspend Concurrency Development Id's WIP Join Us ! www.directionsemea.com