With this BaIS sequel I am going to create a collection of findings and thoughts on the various things we are coming across within Imtech ICT during our quest in building international solutions. Findings and thoughts not always logically ordered, but worth sharing with and getting comments on from the Dynamics community. So be invited to comment on them.
Possibly this might lead to some sort of white paper on BaIS and Dynamics NAV, who knows.
BaIS #1: Source Control, Branching and Merging
Building international solutions with multiple developers for multiple countries places us for the challenge how to manage/control our code. This is not only about how we secure the code and the change history, but also about how to propagate changes from the international code to local code, i.e. from our w1 to, let’s say, to a UK version. Or even from our horizontal solution into various vertical solutions. Altogether we need a source control system that:
- secures our code
- enables us to
- branch code
- merge changes from one branch to the other
- revert to a previous version
- allows parallel development
- and maybe even let us automatically create builds
Code in .txt Format
As Dynamics NAV does not have an on-board source control system and no NAV-aware source control system seems to exist that can cover our need, we had to do it with existing systems. First of all this forces us to store our code (objects) in .txt format. Not a big problem as such, but of course no standard tool now that can check the syntax of my code. But OK, I can live with that. I have done it at MS for many years already. [H]
No Captions
No captions should be stored in the code objects. For a number of reasons:
- Developers should only focus on the code and not on language matters, so they will only be occupied with naming objects and defining ENU texts (for messages, etc.)
- Object captions can automatically be created during the translation process (see one of the following posts on BaIS), so no need for developers to spend time on that. OK some exceptions:
- ENU caption of Text Constant
- ENU caption of unbounded controls (on Forms/Reports/Pages)
- Captions (and especially local captions) pollute the .txt code objects in the sense that comparing w1 code objects with localized objects for code development purposes will show many irrelevant differences (see screen shot)
Source Control System
As might have concluded from a number of my other posts we decided to take Visual Studio Team Foundation Server as our source control system. We are working with it and the same time still investigating. Too early to share things on that so one of the upcoming BaIS posts will probably be dedicated to that.