![]() |
#1 |
Участник
|
So after my manifold "pledge" to go there and start today you might have been playing around with TFS. You did put your code there and started to update it with bug fixes and code enhancements. Great, but then you might have wondered: how does this all relate to the NAV production environment you're working in daily? How does this relate to the DTAP paradigm? Here is where the branch strategy comes in and which I am going to elaborate on in this post. Setup 1: from development to release Let's say you have an add-on version 2.0. It's stored in a centralized database, well tested, thus stable, and as with any product, state of the art ... now. But as we all know, software contains flaws next to restricted functionality, so in the near future you will be updating the code, which will be released as v2.1. ![]() Even without having any source control system, with Dynamics NAV, you will implicitly be ending up branching your code for release by means of a .fob file that is deployed to your customer as the objects in the .fob file contains all your code. ![]() And the same applies for the next version, 2.2. ![]() Translating this setup to TFS schematic, would look like: ![]() Main holds the code you develop and test on and Releases the code that has been put into production at your customer. A structure with the advantage of being simple, but as you might guess, some drawbacks 'cause how to handle parallel development and testing in general; or more specifically: once you approach the release date. In this simple setup you most probably have to set development on hold, apart from bug fixing, to be able to conduct the final tests. Setup 2: development parallel to test (and release) So how do we go about this? By setting up a separate database for Development. That's no rocket science. ![]() Now, parallel to whatever is happening in the Main database, coding can continue in Development. Once the isolated development, relevant to your release, has finished, the code can be (reverse) integrated into Main, where test will be performed to prove the code valid (or not). Of course this reverse integration will be happening various times during your next release project. For every feature being delivered to test, for fixes for bugs found during test, etc. ![]() As said: no rocket science, and TFS will be helpful on this as it
![]() Setup 3: DTAP with multiple developers Clearly we have separate branches for Development, Test, Acceptance and Production and in addition we also have separate branches for (feature) development. ![]() Or schematic in TFS: ![]() You might wonder: what about all those Fi and RI arrows going up and down? I will elaborate on that in my a post, on merging. Notes
Читать дальше
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору. |
|