Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Oracle ADF Architecture TV - Development - Version Control

703 views

Published on

Slides from Oracle's ADF Architecture TV series covering the Development phase of ADF projects, discussing SVN version control for your ADF projects.

Like to know more? Check out:

- Subscribe to the YouTube channel - http://bit.ly/adftvsub
- Development Playlist - http://www.youtube.com/playlist?list=PLJz3HAsCPVaQfFop-QTJUE6LtjkyP_SOp
- Read the episode index on the ADF Architecture Square - http://bit.ly/adfarchsquare

Published in: Technology
  • Be the first to comment

Oracle ADF Architecture TV - Development - Version Control

  1. 1. 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  2. 2. 2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Real World ADF Design & Architecture Principles Version Control 15th Feb 2013 v1.0
  3. 3. 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Learning Objectives •  At the end of this module you should be able to: –  Have a basic understanding of SVN and JDev features –  Identify different SVN installation types –  Consider different SVN repository layouts suitable for ADF projects –  Acknowledge that you must devise a SVN branching strategy Image: imagerymajestic/ FreeDigitalPhotos.net
  4. 4. 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Subversion Introduction •  Subversion Architecture •  Subversion Repository Layout •  Subversion vs ADF Architecture –  Single Workspace Layout –  Multiple Workspace Layout •  Subversion Best Practices •  Git
  5. 5. 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Subversion Introduction •  Free open-source version control system (VCS) •  Java EE enterprise defacto VCS •  Allow teams to version files, directories, source code •  Not a collaboration tool •  Single shared enterprise repository •  Uses efficient delta solution for tracking file changes •  Accessed via file:// svn:// http:// https://
  6. 6. 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Subversion Introduction •  Subversion Architecture •  Subversion Repository Layout •  Subversion vs ADF Architecture –  Single Workspace Layout –  Multiple Workspace Layout •  Subversion Best Practices •  Git
  7. 7. 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Subversion Architecture Image: SVN Book Image Attributed under CC2.0 to Subversion Redbean: http://svnbook.red-bean.com/
  8. 8. 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. SVN JDeveloper Features •  SVN Client (SVNKit) •  Create repositories (local only) •  Versioning Navigator (repository browser) •  Pending changes window •  SVN commands: check-out, commit, merge etc •  IDE features: visual file diff, history, visual merge
  9. 9. 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Subversion Introduction •  Subversion Architecture •  Subversion Repository Layout •  Subversion vs ADF Architecture –  Single Workspace Layout –  Multiple Workspace Layout •  Subversion Best Practices •  Git
  10. 10. 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Subversion Repository Layout •  SVN repository mimics a file system: directories and files •  What can you store in a file system?: SVN is flexible by design •  However there is a set of conventions: <RootDirectory> /trunk Current development code /tags Snapshots of code /branches Use is variable (& debatable!)
  11. 11. 11 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Subversion Introduction •  Subversion Architecture •  Subversion Repository Layout •  Subversion vs ADF Architecture –  Single Workspace Layout –  Multiple Workspace Layout •  Subversion Best Practices •  Git
  12. 12. 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Subversion vs ADF Architecture •  ADF allows applications to be: –  Self contained in one workspace –  Separated across multiple workspaces •  How to layout the SVN repository? Single Workspace Multiple Workspaces #1 SVN First #2 Domain First
  13. 13. 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Single Workspace SVN Layout One directory maps to JDev workspace name Standard SVN directories JDev workspace code Branches/ tags also contain workspace code
  14. 14. 14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.14 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Branches/tags reflect same structure Each JDev workspace Further logical directories if needed Each JDev workspace code Standard SVN directories at root level Multiple Workspace SVN Layout #1
  15. 15. 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Multiple Workspace SVN Layout #1 •  Advantages –  Checkout at trunk (or unique tag/branch) results in all source code checked out (though you can still check out individual workspaces) –  All versioned together, little library dependency management needed, less requirement on clear team communications –  No cross version dependencies / all or nothing build and release –  Suitable for single uber apps where all parts roll out as 1 release •  Disadvantages –  No separate versioning –  With multiple applications, all must roll out in an update/release even though only one may have changed
  16. 16. 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Each JDev workspace code Standard SVN directories at workspace level Each JDev workspace Logical directories at root level Multiple Workspace SVN Layout #2 Branches/ tags only contain workspace code
  17. 17. 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Multiple Workspace SVN Layout #2 •  Advantages –  Can version each workspace separately –  Suitable for multiple applications requiring separate release cycles •  Disadvantages –  Have to track version dependencies across applications –  Build and dependency management tools required –  Team communications need to be clear –  Messy release cycles
  18. 18. 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Subversion Introduction •  Subversion Architecture •  Subversion Repository Layout •  Subversion vs ADF Architecture –  Single Workspace Layout –  Multiple Workspace Layout •  Subversion Best Practices •  Git
  19. 19. 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Subversion Best Practices •  Define a standard checkout location for developer PCs •  SVN working copy directory structures should match SVN directory structures exactly –  Easier for build scripts –  Easier for developers –  Easier to document •  Developers who check out multiple copies of an application need to handle the unique directory names themselves
  20. 20. 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Subversion Branching Strategies •  Allows multiple teams or application versions to be developed consecutively •  You need to define your own branching strategy – one size doesn't fit all •  Start with a simple branching strategy then evolve it when required •  Attempting to mimic dev/test/prod as branches doesn’t work –  Overtime you will have many different dev/test/prod releases •  Some known branching strategies –  Branch per feature –  Branch per iteration/release –  Branch per team
  21. 21. 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Subversion Branch/Release Strategies •  Use a formal numbering scheme (e.g. 1.2, 1.3, 2.0 etc) –  Perpendicular to existing software dev/test/prod rollouts –  What designates a release is at your discretion –  You may need a "development" and "user/customer" release numbering scheme ... do users need to know you're at release 4.2.3.54.1234? •  Guidelines for release/branching naming schemes –  Each name must be unique –  Devise a naming scheme that shows progression –  Don’t try and invent the perfect naming scheme •  If Oracle, Microsoft and Apple can't get it perfect, neither will you!
  22. 22. 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Program Agenda •  Subversion Introduction •  Subversion Architecture •  Subversion Repository Layout •  Subversion vs ADF Architecture –  Single Workspace Layout –  Multiple Workspace Layout •  Subversion Best Practices •  Git
  23. 23. 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Git •  Popular contemporary VCS •  Seen as replacement for SVN •  Not widely adopted in enterprises (yet) •  Decentralized repository model –  1 or more central repositories –  Developers can create 1 or more local repositories (~branch) –  Developers responsible for merging repositories •  Required for Oracle’s Developer Cloud Services
  24. 24. 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Image Attributed under CC2.0 to http://programmers.stackexchange.com/questions/96915/using-git-in-enterprise-environment /
  25. 25. 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. What do you think the pros and cons of a decentralized repository model would be? Image: imagerymajestic/ FreeDigitalPhotos.net
  26. 26. 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Is Git Suitable for the Enterprise? •  Or more accurately, is the Enterprise ready for Git? •  10 things I hate about Git http://bit.ly/PQfT3e •  Using Git in the Enterprise http://bit.ly/P6PH8Q •  Git based source control in the Enterprise http://bit.ly/MVskur •  Subversion 1.8 Released But Will You Still Use Git? http://bit.ly/12YWcmo •  Can you trust your developers to merge code? •  Can you trust your developers to backup their repository? •  But do all of your developers have access to the central SVN repository?
  27. 27. 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Conclusion •  Version control is not a nice to have, it is critical to a well oiled software development effort •  Your goal is to create an "ADF factory" where version control rolls many different releases off the factory floor repeatedly & efficiently •  The more effort you put in the more transparent & automatic it becomes •  Your SVN branching strategy needs careful consideration –  Don't trust your developers –  Version control is tedious to them –  They'll devise an ad hoc mechanism with no thought to the future
  28. 28. 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Further Reading •  Versioning applications in JDeveloper http://bit.ly/Slnf7i •  Branching and merging primer http://bit.ly/Vj6p8d •  Branching strategies #1 http://bit.ly/13iv6Vk •  Branching strategies #2 http://bit.ly/UNxrpU
  29. 29. 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

×