PowerApps and Dynamics Portals Design Decisions

A lot has been said and written about ‘Portals’ since Microsoft bought ADX Studio in 2015. If you are unaware of the background, ADX Studio at the time was the de-facto market leader and default solution for building portals to front and expose data from Dynamics CRM.

With the ADX Studio product being built in a configurable way, it seemed like a good acquisition from Microsoft. This was a departure from earlier acquisitions of  technically different products which had to be integrated to Dynamics – see Parature (cough) or Marketing Pilot (splutter), which have since died a slow death. ADX Studio was a product that, on the face of it, could more easily integrate and slot in to the new approach.

Since 2015, Microsoft has been on a journey to integrate and extend this old ADX codebase onto what has since become Dynamics 365 and, more recently, the Power Platform. ADX Studio in its old form – a .NET website and configurable code framework – is now effectively dead* – the Microsoft shift to the cloud is nearing completion, with new features being added regularly. Continue reading “PowerApps and Dynamics Portals Design Decisions”

Dynamics 365 Fantasy License League

I listened with interest to Steve Mordue on the MS Dynamics World podcast today about his views on the recent announcements at the NAV Directions conference last week. Steve is a Microsoft Partner with an opinion worth listening to on everything Dynamics, but primarily CRM. As a Dynamics partner or interested customer, If you haven’t listened to the podcast I would recommend doing so, but first have a read of his blog post here which is a great read as well as includes as a bit of drama!

Listening to the podcast gave me some food for thought based on some conversations I have been having with some customers and other partners recently. With that in mind, I thought I’d share my own opinion here.

Continue reading “Dynamics 365 Fantasy License League”

Dynamics 365 v9 – Changes for Developers


After the Dynamics 365 v9 preview sessions we are now getting a little bit more detail direct from the Microsoft website detailing what the changes mean in practical terms for users, configurers and developers.

Head over to https://docs.microsoft.com/en-us/dynamics365/get-started/whats-new/ to see the full details or just read my summary below.

Here is my take on some of the major points that caught my attention.


deprecatedOutlook Client is deprecated. This is a good thing in the long run. Hopefully it means that the new server to server App for Outlook gets resources poured into it while it’s usability improves. Forget about registering plugins for Offline Access in future.

Dialogs are deprecated – I was surprised with this one, but again with the new unified interface it’s quite logical. Dialogs have been around for a long time and the effort to make them work in future versions is probably counterproductive considering task flows and business process flows are now available.

Parature Knowledgebase – I’ve never encountered anyone who has used this – enough said.

Mail Merge – This one again is understandable as it is clearly legacy, but it remains to be seen how the functionality provided by mail merge can be provided with Word Templates as they currently work. Mail Merge is limited to 62 fields, so word templates are a clear advantage, however there are many many use cases where people want to print out documents in a single batch, in the context of one word document. By the time this is fully removed, I’m hoping for the Word Templates functionality to be at least feature equivalent as many people will still need the ability to select and merge multiple records into a single word document.

Service Scheduling – As one of the possibly few people to have used the not very well documented service scheduling APIs extensively in the past, I will miss this. It was a bit clunky but it did the job. Time for me to bone up on the new field service scheduling.


light-bulb-1458612887G8aAdvanced Find – now has the option to build a NOT IN query. Wow – I thought they were never going to do this. When you select a related record type in advanced find, you will see the Does not contain data operator. No more need to get your hands dirty with FetchXml and semi-supported view updates.

Multiple Execution Contexts – here’s one for the client side developers to get their heads around. On a form, there can be multiple execution contexts active at the same time- for example, one for a form, one for a quick form and one for an editable grid. In practice it looks like we should use executionContext.getFormContext. Xrm.Page is being deprecated, but can be replaced with executionContext.getFormContext. For upgrades to v10, there might be a little bit of refactoring required here, but nothing too scary.

WebAPI – Custom actions that return EntityReference, Entity, or EntityCollection types are now available. Because the WepAPI is versioned, things remain backwards compatible, but it’s worth checking to see if any existing WebAPI calls work with the new endpoint to save you a headache down the road. Hoping Jason Lattimer updates his excellent CRMRestBuilder solution which makes calling these web services really easy.

New Timeline Control API Awareness – Previously, the Social Pane was not accessible programmatically. As a result, if you created an activity via the WebApi, you would have to click on ‘Activities’ on the social pane to refresh it. Thankfully the new timeline functionality is a proper control in it’s own right and is called ‘timelinewall’. As such, it is API aware and supports the standard Xrm methods such as getControlType, getName, getLabel, setLabel, getVisible, setVisible, setFocus and refresh. This is a great addition.

AppModule – When apps were first release, I blogged about not being able to retrieve them programmatically. Now it can be done. We have the AppModule entity to create, manage, and validate apps, the AppModuleComponent entity to create and manage components in an app such as forms, dashboards, views, charts, and business processes and AppModuleRoles entity to associate and dissociate security roles that define access for users to an app.

More control over apps – This one looks interesting. There is more granularity over apps, controlled by the  NavigationSetting, AppConfigInstance and AppConfig entities. We can now use the new NavigationSetting entity to configure a customised settings experience for a business app. The jury is out on how useful this one will be – looking forward to the API documentation and getting a play with this.

Custom Control Framework – Ever since the editable grid controls were added in Dynamics 365, it seemed that the logical next step was that developers would be able to build their own controls – with this release the ability to create controls is being released as a preview feature using the Custom Control Framework (CCF). This one could be very useful, and an ISV driven cottage industry in new controls for Dynamics 365 may emerge.

JavaScript Web Resource dependencies – Have you ever added a web resource and spent 20 minutes checking out what other libraries or resources it depended on. Now it looks like you can configure this so that if you load one JavaScript library, you can specify the dependencies so the dependencies will be automatically loaded when needed.

Clicking the wrong link fixes – It happens to users old and new – user is looking at a grid of widgets where the second column is the related contact. They want to open the widget, but open the contact instead. Now we can get rid of this annoying behaviour with the wonderfully titled ‘Override the default open behavior of data rows in an entity-bound grid’. In practical terms, this appears to be configuring the ribbon to call Actions, so Ribbon Workbench will be needed no doubt.

Looking forward to getting my trial instance to see how good these look in practice.

Dynamics 365 V9.0 Summary (July 2017 Update)

Today I dropped into the Dynamics 365 Insider program for day one of a series of reveals we have all been waiting on for some time now. With the NDA lifted on what Dynamics CRM 9.0 will be, it was an interesting set of changes. To quote some of the technical leads, this is the biggest release Microsoft have made to Dynamics 365 so lets understand what is involved to make it a smooth transition.

Because of other commitments, I only dipped in and out of the sessions so I don’t have all the detail, but here’s a quick summary of the major features I took in and some of my musings around them. As I find out more, I will update this post accordingly.

New Unified UI

There is a new interface – a Unified Interface which takes a mobile first approach. This is a huge facelift to the application and is more accessibile than before. We first got wind of this at SummitEMEA in April and now have a little bit more detail which will whet our appetite until we get private preview access. If the PowerPoint slides can be believed, the interface is shared across phone, tablet, web and the App for Outlook and it looks a lot slicker and, some would say, a lot more Salesforcey. The 6 main UI benefits it provides are shown below.


What I noticed from the screenshot above is that tabs on forms actually look a bit like tabs again, at the top of the form, for the first time since CRM 4.0!

The user interface is part of a wider Unified Interface refresh, where phone, tablet and web all look much more consistent. However, the Unified Interface will initially be applied to Business Edition only. Enterprise edition will still be on the older UI but will be getting a ‘Web Refresh’. I’m not exactly sure what this means but I believe (and hope) it means that enterprise customers will have the option to use the new style web interface, or a watered down version if it if they so wish. It sounds like a rollout plan to test it with the new business edition users before rolling out to existing enterprise customers, but let’s wait and see how it pans out.


The current social / activity pane on the contact record is normally the first thing I demo for a prospective customer looking at a traditional CRM use case, and most CRM consultants will know of its limitations. It’s not very configurable and sortable, only includes a fixed list of activities and filtering isn’t great. The good news is that if you have the new Unified Interface, you can get a new control to replace this. This now is called the timeline control. Instead of having multiple sections for posts, activities and notes, it is a display of combined activities in a single view. Best of all, it’s really configurable – you can display what fields display for each activity type. Good work Microsoft.


A few limitations here you should know of : Yammer is not yet supported on this control on the Unified Interface so will not show up. Knowledge Base search will not show up but will be available as a separate control you can put where you like.

Multi-Select Option Setsoset

A simple one. Everybody needs these and anyone who models data will appreciate the simplicity of this control over modelling 42 boolean fields in a single section or hacking around with client side solutions. Well done Microsoft for not forgetting about the basics!

Virtual Entities

veNot much detail on this yet, but this promises to be my favourite, I hope I am not disappointed tomorrow! Watch this space and I will update. Virtual entities look to be integrated to Grids, Find, Forms, Lookups and Subgrids and appear to support being pulled in from ODATA and DOCDB.

Interactive Service Hub is Dead

This has been replaced by a new ‘Customer Service Hub’. This is a good thing – the Interactive Service hub wouldn’t load in a private browsing window and always seemed to be a bit of a basket case. There will be no more wait time after you publish a solution while waiting for the Interactive Service Hub to reload. The new Customer Service Hub is optimised for Tier One agents and will still sit alongside the web client. It looks like Interactive Service hub is to be completely removed as opposed to deprecated.

Best of the Rest

–  A better editor for HTML emails and Knowledge Base articles with Designer, HTML and Preview tabs so you can check to see how it previews across different form factors. It won’t have auto-correct/dictionary functionality but that is on the backlog. I would guess the need for this ties into some of the enhanced Marketing functionality to be provided in Business edition.

– Some changes to the App Designer and app architecture. App Url suffixes can now be specified in the designer itself and apps can be enabled for offline usage in the Dynamics 365 mobile app.

– The existing Activity Wall web resource will not work in the web refreshed UI, it is replaced with a Timeline control. Likewise, the new timeline control will not work with the old UI.

– Provisioning enhancements for Mobile devices.

– No changes to workflow designer (boo).

– Integration of Microsoft Flows directly into the Dynamics 365 UI – you can configure flows to start from directly within Dynamics 365 – not sure how this will work in practice yet.

– Much more robust offline mobile and quicker load times. Resco have a massive head start here with Woodford, wide device support usability and so let’s see if Microsoft can catch up with this release.

– Lots of LiveAssist improvements including Bring your own Bot.

When will it ship?

Next step is private preview to Dynamics 365 insiders, so no firm date just yet. Private preview should be available in the next week or so. After that, some features will go to public preview. When it is sufficiently mature, the features will be rolled out to the public.

So no firm date, but bearing in mind it is being called the July update, I am going to go down to Paddy Power and put a bet on August for the majority of these features make it to the field for cloud customers. Based on past experience, I would expect a subset of these features to make it to on-premise before the end of the year.

Summit EMEA Review – Day 2

Summit EMEA

Day 2 of Summit EMEA started with some useful breakout sessions by Microsoft Partners and MVPs. The first session I attended covered some use cases of Custom Entities. Adam Vero’s session gave an interesting overview of how custom entities can be used for things other than storing business data. The 5 main use cases for custom entities covered were, replacing pick-lists, N-N intersect entities, custom auditing, 1-1 records and for applying arbitrary security privileges to the ribbon or site map. One of the things missing from the Microsoft documentation is covering general CRM design patterns like this, and this session reinforced my understanding of best practice in data modelling in Dynamics 365. Tip of the session was the advice to create a 1-1 relationship to extend the user record with fields that are updated frequently. If you don’t, you may experience performance problems – this is because the browser security cache is invalidated when the user record is updated.

Continue reading “Summit EMEA Review – Day 2”

Install Dynamics 365 Developer Toolkit with Visual Studio 2017

Visual Studio was officially released today, and with it’s release comes the dilemma for Dynamics 365 developers. Do you keep going with VS 2015 (or maybe VS2013, VS 2012 or 2010!), or do you bite the bullet and install Visual Studio 2017?


In the past, I would normally hold off on a new Visual Studio installation until there is a service pack available, but after reading that Visual Studio 2017 is focused on performance improvements and speed, I decided to install it on an Azure Developer VM to see if I could get the Dynamics 365 Developer toolkit working on it.

Continue reading “Install Dynamics 365 Developer Toolkit with Visual Studio 2017”

Dynamics 2013 Required Components Direct download links

If you need to install Dynamics CRM 2013 in an environment without internet access, you may prefer to install some of the Dynamics CRM 2013 pre-requisites manually before running Setupserver.exe.  The main problem in the past has been, how do I find them?

Well courtesy of Fiddler2, here are the URLs CRM 2013 pings for the some of the pre-req files. This is based on a Windows Server 2008 R2 server, which has had CRM installed on it before, so there may be some missing here. If there are any missing that you need, please let me know and I will add to the table.

Continue reading “Dynamics 2013 Required Components Direct download links”