Category Archives: Thinking NAV

Dynamics NAV SCM in Visual Studio Code

Ever since last year I have wanted to do something inside Visual Studio Code for Source Code Management of Standard Dynamics NAV development.

Why? (You might ask.)

Well Microsoft has introduced Visual Studio Code as the next generation editor at several conferences in 2016. Creating tools in Visual Studio Code that can help manage your Source Code for the existing version might help migrate developers to Visual Studio Code and get use to it before the next version is released.

That said I have also been looking at how to make the entry in to Source Code Management as easy as possible. Many developers are still not using any kind of SCM, something I really have wanted to change for several years, and I think the main reason is the knowledge and time to get started and get setup is just too high. Developers simply give up before they get started.

So what to do about it?

In the last months I got talking to a few developers at Elbek & Vejrup in Denmark that were looking to explore SCM and get their teams up to speed. We discussed the options and we agreed on VS Code as the way forward.

This project has been underway for a while now and we are almost ready to release version 1.

If you are interested in reading about it, contributing or following please feel free to follow the project hosted by my friends at Cloud Ready Software on GitHub

https://github.com/CloudReadySoftware/DynamicsNAVSCM

You can also install and play with what is already there by installing the following extension for Visual Studio Code.

https://marketplace.visualstudio.com/items?itemName=cloudreadysoftware.dynamics-nav-scm

When done we hope you just need to install VS Code and the extension and with minimal knowledge of Source Code Management you are up and running with your Code in place in a Git Repository.

We look forward to every ones contributions.

Happy Code. Safe Code.

 

 

Get Currency Exchange from Bank of Canada

Did you get your Currency Exchange Rates from Bank of Canada? The format just changed as of June 1, 2017 and you now need to set it up via the new format.

Go to the Currencies page.

2017-07-02_14-09-28

Click on Exchange Rate Services

Select New and create one with the following settings2017-07-02_18-56-18

Once you have populated the correct URL as seen above you can use the assist button in the Source Field to populate the nodes from the XML file in the lines.

For the Starting date you need to use the “US_DATE_FORMAT” Transformation Rule. If you don’t already have it you can look in a Cronus Database. It is already defined in the demo data.

To get the currency code you need to pick the 3rd to the 6th character from the FXUSDCAD text string. You can see the string when click the Assist button to pick the Node.

2017-07-02_19-05-50

You can do this by creating your own transformation rule looking like this.

2017-07-02_19-08-46

As you can see you can test your transformation rule in the bottom of the page by inserting your text and hitting the update on your right. The result will show in the result field.

The bad thing here is that I did not find a way to import multiple currencies with the new format from the Bank of Canada. It doesn’t look like the functionality supports this new format very well or the format is just a little strange.

If you need to find the exchange rates that works for you, Bank of Canada has a website explaining how their service works.

http://www.bankofcanada.ca/rates/exchange/

Hope this is use full to you all.

 

Running PowerShell from VS Code

Did you know you can run PowerShell from Visual Studio Code?

One of the biggest strength of VS Code is its diversity and the fact it is very light weight. I have already been using VS Code to do a lot of things with Git for a while because it natively integrates nicely with Git which is a huge plus.

Now a while back I tried to use PowerShell with VS Code but it was just not working well at the time, but recently I tried again and things have changed a lot. If you install the PowerShell extension from Microsoft you can now edit and run PowerShell scripts natively inside VS Code just like you can from PowerShell or PowerShell ISE.

You can find the extension here:

https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell

VS Code – One tool to rule them all.

Transform or …

Looking at the vast majority of partners today they still sell one off project in east, west, north and south. Partners have gotten so comfortable doing what they have always done that they continue to do it because it seems like the sure thing to do.

However the world is rapidly changing and customer increasingly see through the cost of maintaining custom software. Customers typically sign off on traditional project, so they now own the bugs that are left in the custom software including the burden of fixing them. The software is also not improving with an ever changing industry requiring better and smarter ways of getting things done including new regulations and opportunities.

Customer get stuck back on older versions with costly upgrades or reimplementation’s as a consequence. This means the customer typically every 7 years or so will consider an upgrade, reimplementation or a new product. Any one of them require training, lots of time to consider the options, dedicated staff to manage or be part of managing the project, new hardware, roll out, many rounds of testing, headaches and money.

So why do customers and partners allow it?

Increasingly customers say no. That is not where we need to be. Customers wants to focus on their business just like partners should focus on delivering value to customers. In other words partners need to transform their business model and delivery or …

Today we are heading to the cloud. We are heading agile.

Partners should focus on their industry knowledge and create small or big apps to resolve customer issues so customers than can pick and select to add together one way or another. We are heading to a world that works like the great Danish and world famous toy called LEGO which is a acronym for the Danish words “Leg Godt” which means “Play Well”.

So what does this mean for the channel.

Partners that don’t have industry knowledge have an issue. My advise is get it or partner with someone who has it but no product knowledge.

Secondly change the way you deliver software. Look in to SCRUM or some Agile form of delivery. It is proven to work, but there is no half way of doing it. You either transform your entire organization to work with SCRUM or you don’t. Doing it half and than saying it doesn’t work is not an option. SCRUM only works if you practice it through out your company.

Things are changing. Are you?

PLAY WELL my friends.

 

 

Source Code Management: Evil, a waste of time, too much work or something much better?

A great chalk talk (CT103 – Useful Tools for Getting the Most Out of NAV) with Waldo at Directions in Phoenix was my inspiration for this. I ended up high jacking part of Waldo’s session (so sorry Eric. I will try to restrain myself next time), because I could see so many possibilities for our community. After the session I had a great hall chat with Eric (Waldo) Wauters, Mark Brummel and Gary Winter (all 3 of them behind the Partner Ready Software initiative), sharing some of the things I have learned over the years of using source control.

The inspiration for this blog post came from this discussion.

So what is source code control and what benefits among others does it bring us:
· Source Code Control
· Product Management
· Code Review
· Branching strategies and Code Management

Let me go through each one and talk about the benefits.

Source Code Control is the obvious one. This is what everybody is thinking about when they think Source Code Control. We know what code was change, who did the change and when it was done. If this is all you are considering Source Code Control to be you need to keep reading. While it is all nice things they really don’t bring much value to the table. We are missing the most important information. Why was it changed? The “why” is the “Work Item” that caused this development to be done. The “Work Item” can be a Bug, a Task, an Issue, and so on. You properly have some kind of naming in your organization. If your Source Code Control system doesn’t track the reasons why we are making the changes it is only half implemented.

That brings me to Produce Management. Source Code Control is about securing your intellectual property, but if you only secure the code and not the understanding and reasoning of the code all you have is code and not intellectual property. Product management is about securing that you are doing the right things for your product for the right reasons.

Code Review. Sounds borrowing and might sound like you want to hit your developers with all the mistakes they make, but if that is what you are thinking of, you have the complete wrong approach. Code Review and Source Code Control makes it possible not only for the individual developer to review his/hers code before check-in, making sure that it is only the intended code that gets into the system. It also makes it possible for peer review causing the developers to learn tips and tricks from each other creating better and more error free code. This mentor process creates a better and stronger team with the highest class of developers.

Branching strategies: You might think I have gone completely off the deep end now and you will not be the first to think so, but in reality, this is one of the greatest benefits with source control that often is totally over looked. I did not hear anybody even mention it and this is an essential part of why everybody needs source code control. If you are creating releases or hotfixes the right setup is going to help you manage it all and with very little work. It is about being able to manage your code in a total transparent way.

So we have established that Source Code Control has more to offer then just “Source Code Control”. It should be part of every partners approach to development. I know we are all different and some of us develop verticals, others add-on’s and again others are doing purely horizontal project after project.

It doesn’t really matter who you are and what you do. If you are serious about NAV development, Source Code Control should be part of your planning.