I recently spent a few hours with Soren Klemmensen, whom I have known for many years. He was actually the one who introduced me to source code management, at which I swore I’d never be happy using it because it was just “development overhead”. Story for another day, but rest assured, that’s not at all how I feel now. I cannot live without Visual Studio Team Services (VSTS)!
In any case, aside from catching up on things, we decided to put together a series of articles on automating builds using VSTS and AL Extensions.Having been the person who has spent countless hours manually doing “the build”, I cannot express how happy I was to push all of that off to automation so that “it just happens”.
Below is where you can find the articles. They’ll walk you through setting up a simple build to start, and from there we’ll build on it with some more advanced topics, such as having VSTS sign your app during the build!
Part 1: How to setup a build agent in VSTS
Part 2: Prepping your build server for creating Apps from source
Part 3: Creating a build definition
Part 4: Preparing your build server for code signing
Part 5: Updating your build server for code signing
There you have it, the first articles covering automating builds for AL extensions using VSTS.
Also, don’t forget that you can sign up for a VSTS account for free, and with that account you can have up to 5 developers use it, so for some, you just might be able to make use of the free account! There’s really no reason to not use it!
That’s all for now, this is not the end of the articles on this topic, so keep an eye out here and on Soren’s blog for more information in the future.
Alright, thought I’d kick things off here with something that has become a large part of my life over the past 5 years or so; source control. More importantly…Microsoft’s Team Foundation Server.
Yes, I’m sure by now that you’ve seen a number of blogs that are out there touting the power of TFS and what it can do for you, and those blogs would all be correct. What I want to do here though is not talk “how-to” here, but rather dig into what it’s like to move to TFS, and what are some of the benefits that come along with it.
First off, I won’t lie, moving to a TFS system is not necessarily a piece of cake for everyone. For some it’s a complete shift in the way development is done, and to introduce source control to the world of NAV which has had next to no controls in place since day 1…well that can be tricky to say the least.
I was a NAV developer for about 6 years when I was introduced to TFS. Right away, I was in the “I’m not using that” camp. Why would I? I’d been making out “fine” without a source control tool, so of course adding a tool to the process would only make developing harder and the whole process longer. An administrative headache I think I once said. Well, fast-forward over 5 years later and I don’t know how we could live without TFS.
Ok, probably some time for a bit of background. I started at IndustryBuilt Software in 2003. I’d only been a NAV developer for just over a year or so at that point. I, as was common back then for most NAV developers, worked on custom projects where each project was different from the last. Skip ahead a few years and I moved to a still rather new department, the one that was doing things that few others were doing at the time; they were building vertical product! That’s when things got truly exciting!! We could finally concentrate on building out a product platform that we could roll out to a number of customers.
It was a few years into building product that TFS came along as this “cool thing we need to try”. So….reluctantly I tried it. It was weird, cumbersome, and yeah at the start it did add overhead to the way I did things, but the things it opened up for us was amazing! We were able to track our builds from week to week. We could see what was changed in the core NAV product to see what impact it had on our product. We could take our entire development process and empower each developer with their own development database and TFS workspace. No more did we have to check with other developers to ensure we didn’t change the same object as they were working on.
Fast forward to the present. The product development team (now referred to as R&D) has grown by more than 300% and has had anywhere from 4-7 developers amongst the group. Without TFS I don’t know what we’d do. We have .NET developers and NAV developers all working within one development ecosystem, all playing with the same tools. Further to that, all of our product initiatives and features are managed using TFS. We’re also a year into implementing the agile scrum process, all within TFS.
We’re able to implement the Cumulative Updates from Microsoft every month within just a few hours. We’re able to publish our own hot fix rollups each month to our implementation team. Finally, we’re able to upgrade our products without having to stop the normal course of development. All with TFS.
Oh, did I mention as well that our implementation and support teams also use TFS to manage every single customer project? That’s right, every customer that comes on board gets their own branch in TFS, where all changes (custom or not) are tracked in the same manner that we track the R&D work.
So, at the end of what has become a rather wordy post, let’s reflect on the real message here: TFS is by far an invaluable tool for any development team. From the 1-man show to the multi-developer team, everyone should get on the TFS train. Sure, it may be a bit of a culture shock, but the return is definitely worth the effort. The first time you need to roll back a change because something broke in the 11th hour of putting together a product release is when you will “thank the TFS gods” so to speak and wonder how you ever made out without TFS for all those years.