Saturday, March 24, 2018

Five ways to improve Quality and Productivity of Dynamics 365 development

a.k.a - Once I did a session twice

Just like last year in Lisbon, I did a developer focused session during eXtreme365 in Dubrovnik. Last year I had full focus on how to develop plugins for analysis, primarily using the Plug-in Trace Log in the code and how to best analyze the results of it.
This year I took a bit wider approach we an ambition to help developers become more productive and get higher quality of their code. In this article I will go through the five different areas I covered in the session.

The presentation can be viewed and downloaded from SlideShare on this link.

Five ways

There are of course many different approaches that can help your development and just as many opinions as there are developers, but I focused on the following five areas:image

  1. Visual Studio Extensions
    Customizing Visual Studio for Dynamics 365 development
  2. C# Extensions
    Get more functionality from standard SDK types
  3. Base Classes
    Generalize behavior and structure of plugin classes
  4. VSTS Build Extensions
    Automate CI / CD for the Dynamics 365 platform
  5. XrmToolBox helping out
    A few tools to take your development the last kilometer

Friday, January 5, 2018

FetchXML Builder for Microsoft Dynamics 365/CRM got an extreme makeover

The first release of FetchXML Builder for XrmToolBox in 2018 contains a major face-lift.

New year – new design! After more than three years since first release, the time has come to use all the feedback from issues on GitHub, comments on Twitter, and collected statistics to improve the UI. This article describes some of the major changes introduced with the first release of 2018.


The very first thing you will see is the welcome screen, shown the first time you start a new version of FetchXML Builder. The welcome screen will contain release notes with highlights of what’s new.


The welcome screen can be accessed from the Options window, if you want to go back and read more.

Monday, October 16, 2017

More Auto Numbering features

In my previous article I described the details of the new Auto Number attributes feature of Microsoft Dynamics 365, and how to manage them using Auto Number Manager for XrmToolBox.

Since this article, a few new possibilities have been verified to be supported.

Adding Auto Numbering to existing attributes

The most important new feature is the possibility to apply numbering to existing attributes!

This means that you can now apply your own completely custom numbering to standard attributes such as Case Ticket Number, Account Number, and so on.


Friday, October 6, 2017

Auto Number attributes in Microsoft Dynamics 365

With the release of Microsoft Dynamics 365 Customer Engagement October service update (v9.0), two of the most requested customization features were finally implemented in the platform:

  • Multi-select optionsets
  • Custom auto numbered attributes
The first one has full customization features available in the UI out of the box, but to create and manage auto numbering attributes you have to write code utilizing SDK-functions.

This article will describe how to use the Auto Number Manager tool for XrmToolBox giving an intuitive UI to access SDK-only features for auto numbering.


Auto Number Features

The Auto Number attributes support three different types of placeholders – sequential numbers, random text, and date/time in different formats.


Sequential number:

  {SEQNUM:n} where n is the minimum number of digits.

Random text:

  {RANDSTRING:n} where n is the number of characters in the random string. Maximum value for n is 6.


  {DATETIMEUTC:fff} where fff is a standard datetime format string. See documentation.

Other text:

    Any other text may be included in the number format. This text will be used as is.

Sunday, September 24, 2017

A canary in CRM

canaryHave you ever faced a situation when you don’t know why your Microsoft Dynamics 365 Customer Engagement system behaves the way it does, or why your own plugins behave the way they do?

If you have, this might be a good time to put a canary in your system.

- A what?
- A canary.

You know when we were manually laboring down the coal mines, it happened that drilling into the rock inadvertently let out poisonous gas. So we brought in cages with canary birds putting their life at stake, to save our coal miners’ lives. The canaries were signaling the content of the atmosphere long before the coal miners would detect something dangerous. They did this by suddenly being upside down, instead of happily chattering.

As a plugin developer of many years, I have added extra tracing to my plugins more times than I can count and sometimes even added steps for more messages than necessary, and I am sure most of you reading this post have too, in one way or another.

Wednesday, June 21, 2017

Public Preview: Build and Deploy Microsoft Dynamics 365 projects using VSTS

Recently I posted a series of three articles describing our approach to DevOps for Microsoft Dynamics 365, and the technology behind it.
After giving a session on this topic at CRM Saturday in Madrid, Spain, it is now time to announce “public preview” of our tools.

If you want the full story – these are the articles describing the background and technology behind our tools:

Part I – Background and how our DevOps tools evolved before we knew about it
Part II – Automation of the build and deploy process using custom VSTS Build Tasks
Part III – Demo of complete build and release definitions taking you from A to Z

Thursday, April 20, 2017

Build and Deploy Microsoft Dynamics 365 projects using VSTS – part III

This is the third and last article telling the tale of our own DevOps for Microsoft Dynamics 365, and the technology behind it.

Part I – Background and how our DevOps tools evolved before we knew about it
Part II – Automation of the build and deploy process using custom VSTS Build Tasks
Part III – Demo of complete build and release definitions taking you from A to Z

After the first two articles we have now got a handful custom VSTS Build Tasks to help us take the build and deployment automation all the way. This final article demonstrates how we do that with VSTS builds and releases. Finally raising the questions of why we did all this and where to go from here.

A complete VSTS Build for Microsoft Dynamics 365

Below is a sample of a full build process that not only builds and packs a new CRM solution, but updates the individual assemblies and webresources in DEV environment, exports solutions and data, and then publishes the files exported from DEV together with Shuffle Definitions and Package Definition, which is the resulting build artifact.