A Scaled out CRM Solution Architecture

Recently I started work on a pretty big CRM project and I wanted to apply a more scaled out approach to my solution architecture.  CRM offers a great facility to deploy code in their solutions but when starting a new project you should always ask yourself the following questions before you starting adding entities into your solutions.

  1. What is the frequency of updates that will be requested by the users and to what components?
  2. Are there multiple users contributing to this project?
  3. How big do you expect this project to grow by?
  4. What kind of promotional model is in place for deployments?

I  have found that questions such as these generally drive the overall solution architecture I will put in place on a project.  For instance, if we are working with a client that has

Read More


Creating a New area in CRM 2015 – By Hand

Emphasis on the “By Hand”.  I’d previously blogged about how to modify the Site Map in Dynamics365 with some of the new  ribbon editing features very reminiscent of Ribbon Bench (here for reference Site Maps and Custom Entities – Oh My!) – but recently had the pleasure of having to do this in 2015, with no tools.

The modification of the XML customizations.xml file itself wasn’t too bad on it’s own, where things really became complicated was when I wanted to add an image to my area.

Modifying the Customizations.xml File

To create your new Groups and Areas – check out this post that does a great job of walking you through how to export, modify and import the XML file (along with screenshots).

Adding an Image to your Area

Now where things went

Read More


Creating a custom Tab in VSTO

If you haven’t used VSTO, it’s the framework for developing Office Integrations.  Yes, people are still developing Office plugins, although Flow is coming on strong, there is still a need for organizations to have components directly embedded in their primary applications of choice.

If you’re looking to get started on building your own Tab in Office you can do this very easily by adding a Ribbon.xml file to your VSTO project with the following syntax.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
 <ribbon>
 <tabs>
 <!--<tab idMso="TabMail">-->
 <tab id="tabForgotten" label="Coder">
 <group id="MyGroup" label="Content">
 <button id="btnGo" label="Connect" 
 screentip="Go" onAction="OnConnectClicked"
 supertip="Go to start."/>
 </group>
 </tab>
 </tabs>
 </ribbon>
</customUI>

Once you’ve added that snippet, simply navigate back to your main AddIn.cs file and instantiate your ribbon.

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
return new SuperRibbon();
}

Compile and run (in this example, I created an Outlook VSTO plugin) and you

Read More


Change Tracking in Dynamics365

In Dynamics 2015 Update 1, a small update was released that you might have missed called Change Tracking.  This feature is implemented via the CRM SDK and let’s developers query for changes to the system, supplying a watermark (the token) from the last fetch to start retrieving from in the next fetch.

In terms of data retrieval, this is a big feature as no longer do you need to add fields into Dynamics to store this information and instead can leverage the platform as is to return this data and keep track of it for you.

For this post, I used the code from MSDN, modifying it slightly.

Enabling Change Tracking

Change Tracking is enabled on a per-entity basis – another great idea as it enforces the notion of “only use what you

Read More


Site Maps and Custom Entities – Oh My!

You can now create your own groups and areas in Dynamics365 giving you further customization over your user’s experience in the application when accessing your custom entities.

I recently got a chance to play with this and was really impressed with it’s simplicity.

Note: This does not replace the security permissions to your entities which must be in place alongside these changes which are User Interface only.

You can see from my screenshot that you can add new areas (in my case “Custom”), new groups (in my case “My Goodies”) and then Subareas (in my case I dropped in a new custom entity but there are other options here too.

tools.PNGRead More