Debugging the NAV 2009 RTC

Not too long ago, one of my customers had an issue with the RTC that we needed to debug. Instead of using the Visual Studio debugger, this customer was used to reproducing the problem in the Classic client, and debug the process there. The perception was that running the Visual Studio debugger was very difficult, and they would not be able to read the C# code. I showed them how easy it is to enable the debugger, and how the C/AL code is always part of the C# code in the form of comments. As I was talking to folks at NAVUG Forum and Convergence, I was very surprised to hear that even seasoned NAV professionals are still not using the Visual Studio tools.

The information about how to use the debugger is available here in MSDN online, and it has been discussed many times in the online forums. Since I’m a visual learner, I decided to make a YouTube clip that shows you how to enable the Service Tier for debugging, and how to attach the Visual Studio debugger to the server process.

First published April 27, 2012

Installing NAV 2013 Beta

Finally, NDA has been lifted, and I can FINALLY start sharing what I know about the new version of the product that we all know and love. Well most of us actually DON’T know it, which is why I love sharing this with you :). I’ve been very fortunate to have the opportunity to attend some TAP events in Copenhagen, and get access to early CTP versions of the new version of Dynamics NAV. As I was attending these events, I was getting VERY excited about the new technologies. The reason is that the NAV team has worked incredibly hard to address all of the painpoints that we feel in the current version of the product.

Not only that, they have also completed development for the new Sharepoint client, which provides almost all of the standard functionality to Sharepoint. Not only that, they have also completed development for the new Web Client, in which almost all standard NAV functionality is now available through a regular web browser. Not only that, NAV is the first Microsoft ERP system that can be deployed in the cloud on Windows Azure and SQL Azure. Not only that, we now also have a way to expose regular SOAP webservices as well as OData webservices. Not only that, we now have a host of new technological capabilities, such as a solid RTC debugger that we can actually modify ourselves, such as a new Query object that will allow us to define SQL queries as an NAV object type. Not to mention the new testability feature, which gives us the ability to completely automate testing. Not to mention a completely redeveloped data stack. I could go on, but hopefully you are getting my point :). It’s been a long time coming, but personally I think it is absolutely worth the wait. I am absolutely convinced that NAV 2013 has taken a HUGE step forward in maturity for our product, and I think it will provide a LOT of benefits for existing customers as well as new customers.

My plan is to create many YouTube clips to show you as many features as I can, and the first one is where I recorded the installion of the NAV 2013 Beta version into a Virtual Machine. In this video I talk about some of the prerequisites, the various components of a regular RTC installation, and I show you some of the features. It covers the RTC, the development environment, and I quickly go into the server management console. Enjoy and please leave your feedback in a comment.

First published May 17, 2012

Performance on NAV 2013

The first performance impressions are in and it looks like NAV 2013 is the first version on SQL Server that is going to outperform the native database server.

When talking about whether to upgrade to NAV 2013, one of the things that my customers are interested in most is whether it will perform at acceptable levels. I’ve been wanting to do something elaborate and use the new testability capabilities in NAV 2013 to do a benchmark test for performance specifically. As often happens, plans don’t always come together, and by the time I started forming some ideas, other people have gone and done a much better job than I could have. So, what I thought I’d do is compile a number of links to performance related content that I’ve found so far.

First off, my fellow MVP Jörg Stryk wrote a very technical article about his impressions of NAV 2013 from a SQL Server point of view. He shares his sources, he’s done some comparisons between his own T-SQL and the queries that are generated by NAV 2013. Very interesting to read his train of thought, and, if you can keep up with him, you will learn a thing or two about SQL Server. Some of the key things that I picked up on are the modified locking mechanism, the promise of the query object, and the annoying fact that individual users cannot be identified from the SQL Profiler anymore.

Next, my coworker Faithie writes about some changes that were made to how Dimensions are handled in NAV 2013. This one has a huge potential to help improve performance. I work with customers that have millions of ledger entries, with hundreds of millions of ledger entry dimensions, and the prospect of eliminating pretty much all of those is a very compelling one.

Next up, another fellow MVP, Vjekoslav Babić, who lists his top 5 SQL Server improvements. With NAV 2013 being the first version on SQL Server only, we can finally start letting go of certain “SQL improvements” from previous versions, which were really just things to make NAV on SQL behave the same way as the native database server. If I were to list what I take away from this article, I would list all 5, so I’ll spare you and just refer you to the article itself.

Where it gets interesting is when mergetool.com‘s Per Mogensen puts together a couple of videos (here and here) to demonstrate how NAV 2013 stacks up against NAV 2009. These videos then inspired Vjeko to take it a couple of steps further, and put together his own test, and he even shares his test objects. This is turning into a real community effort!

With NAV 2013, it looks at though the potential is definitely there to get performance up to native database server expectations, which was always the argument against using SQL Server. What I am very much excited about is that finally the NAV team can let go of artificially making NAV on SQL Server behave the same way as the native database server and let SQL Server do what it is good at. I personally think that they have only just scratched the surface, and a ton of further improvements are possible. I think the query object will prove one of the most potent weapons against performance problems, and, hopefully, we’ll see a tighter integration of SQL Server capabilities from C/SIDE.

First published June 25, 2012

Essential SQL Maintenance for NAV

Lack of proper maintenance on SQL Server can lead to severe performance problems. When I am called in to troubleshoot a client’s performance issues, one of the first things that I look at is whether there are any maintenance tasks on their SQL Server for the NAV database. Many times I find that there is no maintenance at all. Putting the right maintenance in place is the easiest thing you can do to help fight performance issues. In this YouTube clip I cover the essential maintenance that should be present for every single NAV database on SQL Server.

Sorry for the bad audio, I didn’t realize that it was set to my computer’s mic instead of my headset.

First published April 18, 2012

NAV on SQL – SQL Backup and Restore

Creating a NAV database on SQL Server is very easy to do when you have a SQL Server backup, and it is much faster then restoring a NAV backup. In this YouTube clip I show you how to use SQL Server Management Studio to create a full database backup, and how to create a new NAV database with that backup file.

First published April 22, 2012

NAV on SQL – NAV Backup and Restore

It is very easy to create a new NAV database on SQL Server, using the proprietary NAV backup Mechanism. While it is preferred to use SQL Server to back up and restore your databases, the NAV backup can also be used. n additional benefit of the NAV backup is that you can back up individual companies. I’ve created a YouTube clip that shows you how to create a NAV backup and how to use that backup to create a new NAV database on SQL Server.

First published April 22, 2012

Adding a Service Tier for NAV 2013

With the new Server Administration Tool for NAV 2013, adding a Service Tier is ridiculously easy.

In the good old Navision days, setting up multiple databases was a piece of cake. Every developer, tech support person, consultant, CFO, or resident ‘computer guy’ with just a little bit of technical skills wouldn’t break a sweat to create a new database for testing purposes, for training, or development. When NAV 2009 came out, things became a heck of a lot more difficult as the new RTC setup required you to also set up a Service Tier. Although there is a large number of blogs, forum posts and other online content available to help and guide you through this process, it remained painfully difficult and complex. In a 75 step process you better not skip crucial step number 32, which you didn’t realize until after irreversible step 58, and you had to uninstall everything, wipe clean the server, and start all the way from scratch. I don’t think it will be a surprise to hear that only the truly geeky NAV professionals enjoyed installing the service tier, and the complaints were always very loud when I listened to people at events like Convergence.

Lucky for us, the NAV team at Microsoft cares a great deal about the users, and it was very important for them to provide a set of tools that is easy to use, not just for technical people but also for admin type people. At the heart of it all is a set of PowerShell commands. These commands can be used separately in a PowerShell Session, and they can be scripted for unattended installation and scheduled maintenance purposes. For people that do not like to write “code-like” commands, there is also a new Windows Management Console snap-in for managing Server Instances. To start the Management Console, click on Start, Run, enter “MMC” and click OK. The NAV Server Management Tool can be added there.

The online help has a lot of information about the Server Administration Tool, which can be found by clicking this link.

When I needed to set up a worldwide NAV 2013 database, I decided to add this under a new Service Tier instance in my existing VM (in which I had a US database already installed), and record my progress to share with you. This video was not scripted ahead of time, I just recorded myself as I went along. It did go wrong along the way, and I had to do some troubleshooting to make it work right. See if you can find the mistake that I did not catch until after I was done editing wink. I hope that you will enjoy this video, and maybe even gather enough courage to try setting up multiple instances of the Service Tier.

First published June 4, 2012