FetchXML Builder and Friends at D365UG Virtual Summer Camp

On August 7-9, the first ever Virtual Summer Camp for the Dynamics 365 platform will take place.

During this free event the D365UG offer some 30+ sessions with focus on Customer Service and Field/Project Service.

I will be doing one of a few cross vertical sessions, where I discuss and demonstrate some useful XrmToolBox tools that help customizers, administrators and users with information analysis and enhancing the capabilities of the system.

Below is a description of my session – enjoy and make sure you sign up! Click the link: D365UG Virtual Summer Camp

Continue reading “FetchXML Builder and Friends at D365UG Virtual Summer Camp”

Relationship data analysis with XrmToolBox

Dynamics CRM entity model

Relationships in Microsoft Dynamics 365 Customer Engagement (CRM) and PowerApps Model Driven Apps can be decorated with a number of characteristics that define their behavior. These characteristics instruct the platform how to behave in regard to child data when different actions are taken on the parent record of the relationship.

Continue reading “Relationship data analysis with XrmToolBox”

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 with 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.

Continue reading “Five ways to improve Quality and Productivity of Dynamics 365 development”

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.

Continue reading “FetchXML Builder for Microsoft Dynamics 365/CRM got an extreme makeover”

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

Continue reading “Public Preview: Build and Deploy Microsoft Dynamics 365 projects using VSTS”

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

image_thumb113Below 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.

Continue reading “Build and Deploy Microsoft Dynamics 365 projects using VSTS – part III”

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

This is the second article of three 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 In the previous article I described the background of our struggles with moving configuration data and later scripted export and import of solutions and the CRM Deployer tool. This article takes these features to the next level by packing those and some other missing features into custom VSTS Build Tasks.

Automating the Build Process

We now had the tools we needed to automate the central parts of the build/deploy process. But it still involved lots of manual or script based steps. To describe it simply, the following steps were required to produce a full deploy of a Customer Solution (CS) that has a prerequisite in one of our Product Solutions (PS), assuming we wanted the latest available code and customizations for both PS and CS.

  1. Build PS
    1. Define new PS version number
    2. Set version number for assemblies
    3. Compile assemblies
    4. Use Plugin Registration to update PS DEV assemblies
    5. Minify webresources (scripted post build event)
    6. Use Web Resource Utility to update webresources in PS DEV
      (scripted post build event using modified version from SDK, that allows command line execution w/o user interaction)
    7. Run Shuffle scripts that export PS solutions and data from PS DEV
  2. Build CS
    1. Run scripts that import PS to CS DEV
    2. Define new CS version number
    3. Set version number for assemblies
    4. Compile assemblies
    5. Use Plugin Registration to update CS DEV assemblies
    6. Minify webresources
    7. Use Web Resource Utility to update webresources in CS DEV
    8. Run Shuffle scripts that export CS solutions and data from CS DEV
  3. Create package (by running a script)
    1. Collect all required definitions, solutions and data files from PS and CS exports
    2. Execute CRM Deployer with cdpkg file and a flag to create cdzip archive

The missing pieces

Some of the steps above would be possible to encapsulate a bit more with scripting or tailored tools, and some of them possible to perform using Microsoft’s Developer Toolkit, Jason Lattimer’s CRM Developer Extensions or Wael Hamze’s CI FrameWork. But with the legacy of our Shuffle and later the CRM Deployer, that both have well proven technology and still save us literally hundreds of hours every month, we decided to add the few missing pieces in our puzzle ourselves. Continue reading “Build and Deploy Microsoft Dynamics 365 projects using VSTS – part II”