As you might know, I'm one of the partners of a Belgian Dynamics NAV VAR and ISV: iFacto Business Solutions. My role there is "Development Manager". One of the challenges of a Dynamics NAV Development Manager is "keeping control over your development" or better .. "keeping control over all objects at all customers".
The phenomenon "Source Control" is a well know subject in the Development-world. And still today, it's a pain in the a*** in the NAV-world .. .
In my opinion, Source Control should be part of the "development environment" and shouldn't be part of the application. In my dreams, it shouldn't be necessary to modify anything to the application, to import any .fob, any change in the way you develop today ... you know what I mean.. .
I didn't have a solution, and too bad all things out there actually changed the database. I had to import .fobs in all databases .. and above all .. I had to teach my developers with +15 years of experience that they had to change their way of development .. . I tried to sell the idea, but it was difficult..
Until one day, I hired a bright .NET developer (of which I'm not going to reveal the name just yet ... but all credit goes to him) (and with "bright", I mean "Mark Brummel.NET" ;°) ), who found a way to do it. Together (he being the brains and developer, me being the teaser and tester), we have been working on a Source Control that does all the things above .. and more :-). After about 1108 hours of development, we can say we have a product that's mature enough to be shown to the public .. we have a "beta" .. or how do you kids call it these days.. :-).
In this blog, I would like to show you some "teaser"-movies of what's the tool is probably going to look like (the framework is ready, but the UI is still open for discussion (all feedback is welcome :-))).
What's the idea?
The main idea is being able to manage the changes to all objects in any DEV-environment, with 3 possible systems:
All this from outside NAV, without any object-change, without scanning tables, .. . It has to be easy to setup, easy to configure repositories, easy to add databases, flexible to many repositories (customers, partner, local, on-site, ...) and databases and one environment. Simplicity all the way (like NAV :-)).
First movies are about the Setup of the program. In fact, you see all the setup that is necessary to do sourcecontrol in NAV, and all it lasts is about 3 minutes in total:
Notice that all users that connect to the Repository will benefit from the setup. Once one user sets up a database, all users will see that data and versions.
After this, you're good to go to do your source controlling. In this next movie, some basic source controlling is done: designing an object (therefore automatically checking out the object), saving and checking in the object, comparing two versions of an object ... stuff like that. It also shows how object locking works: by using just the Source Control software. If the object is checked out in Sourcesafe (or TFS, or even file system), the object is locked in NAV for someone else. Here is the movie: http://www.youtube.com/watch?v=8FC89RQ_eFY .
This is not all, folks .. the fun has just started.. :-). More in the next blog(s)...
Please provide me of any kinds of feedback.. . If anyone might wonder, we're not competing with any tool out there, or at least, that's not the intention at all. We just found a way to do this, and we would like to share it ... how we're going to share it, we don't know yet .. but we'll figure that out in the next couple of months .. ;°)
Solution found .. and the beta is online! :-)
Thanks Waldo. Hope you can find solution soon and we can play with it. Or if you have alternative way please let me know.
Well .. it's ready .. but we're struggling with some issue about "legally throwing it online". It's bothering me as well .. really .. I hate this.
Is the Beta available on Mibuso? I am very interesting about this product. But I could not find it on Mibuso.
You are very right to ask that question ... :-). We have been working quite hard on it to have a version where we were 'happy with'.. .
We are finishing up an internal testing-period.
We expect to have a Beta available (which will be published on Mibuso) by Januari 15th.. .
The first release should be about 1 to 1,5 month later (depends on the feedback).
Any update about ReVision release date?
To answer the "when is it available"-question: this is what I posted on the part 2 post:
The going-to-market question is a good one .. we're still trying to find out wether it's a good idea to go into the cloud with this, or just use an old licensing model.
Going into the cloud would mean that everyone should have internet-access at all times, and I don't know if some partners would find this a problem... .
All feedback is helpful there!
We have one date in mind: 1st of Januari 2011... that's when it HAS to be ready to market.
@Nermin Montel: I'm sure that this tool could help you a lot indeed :-). What do you mean with "Found myself in the "Tools/Tricks for developer" .. were you in the US?
@Joe Manthis: glad to see you looked at the tool .. and glad that you're amazed :-). That "briefcase" isn't something that we have included in our scope, but is a good idea. In fact, that briefcase could be a fob, and reading that fob in your local dev-db, would update the repository as well. would that be enough? Or you want really all changsets you did at the customer? Just trying to understand..
I did demo this during my session, yes .. but that was only 5 minutes, by showing the extra link we made to our project management database (which isn't on youtube) :-)
This looks fantastic, and yes it does blow my mind.
We had talked about using the trigger on the Object table like in Mark Brummels' example. I use it to track what changes the end user made to reports and forms. I also could track which end user made the changes and had a function to restore an earlier version.
I suppose what I am asking about is a method for having a "briefcase" file set that I can use when at the client site and don't have VSS available. Maybe having a file structure setup running locally for the client that I can synch up with while at the clients and later to our test system at the office?
You demo'd this during your session?!? You told me not to go! Maybe I should have...
Hope you feel better,
This sound's great. When will be possible to buy it? I on daily basis must control other developer on the various projects, and think this will help me a lot. I have my home made tools, and best practice but sadly it is still not enough good. And I found myself in the “Tools/Tricks for developer.. ” from Mark J. Brummel .
Looks really good, Waldo.
I am really waiting fot the next subject of it. It is possible to know when this come to the market as a solution?
@SNielsen: just checked with our developer .. indeed, that's actually what got us started in this .. so thank you, Soren, for this!!
@Kine: That is good feedback .. we currently only link with TFS source control .. not with the workitems, but we'll look into that.
In fact, we wrote a plugin onto the ReVision(as a side project) for ourselves internally (called "iFactoJobsLink"), which connects through NAV2009 Web Services to our internal Projectmanagement system in NAV2009. That's what I will be demo-ing in my session about Web Services at Directions.. . It's a plugin, so it runs on top of ReVision, but ReVision runs completely independant from the plugin ..
Thanks, guys .. keep the feedback comin':-)
And what about integration with WorkItems in TFS? It will be good to be able to check with info for which workitem was the change done (like when you are doing checkin in VS).
Looking forward it... :-) Looks very good... and the number of hours of development talks itself....
Looks really streamlined for a "beta" version. Looking forward to getting to know more about this. I assume it is using some of ROT integrations with INSObjectDesigner etc.? Are you demoing this at Directions?