Hosk’s Top CRM Articles of the week – 28th September

I have been de-cluttering my stuff the last week, unsurprisingly I have too much stuff, which makes it difficult to tidy it all the way.

This book is amazing, it has changed me from a messy person to a tidy person who now folds his pants and socks! because as the author says “folding is fun”

The Life-Changing Magic of Tidying: A simple, effective way to banish clutter forever

The two key points which have changed the way I view tidying.  You are not deciding what to throw out but what to keep.  If an object doesn’t give you joy then get rid of it.

“Keep only those things that speak to your heart. Then take the plunge and discard all the rest. By doing this, you can reset your life and embark on a new lifestyle.”
― Marie Kondo, The Life-Changing Magic of Tidying Up: The Japanese Art of Decluttering and Organizing

 

The other key concept is once you have decluttered, everything has it’s place.  All of your items should have a distinct place and you put an item back in it’s designated place.

Buy the book, it’s awesome and if you click the link from this page I will get 5 pence or some huge amount :-).  I will be buying some for Christmas presents

Quote of the week

Knowledge alone is static. Know-how is knowledge in motion – Gold rule of software engineering

Joshua Levy

Article the week

Understanding the Microsoft Dynamics CRM Performance Center

Microsoft have added an awesome tool to show you the performance of your CRM forms but then it seems to get hardly mentioned.

The Cobalt blog is the best explanation of how it works I have read.

The most important bit which I keep forgetting, how to get the form up

Hit Control+Shift+Q to open the Performance Center window

Dynamics CRM performance troubleshooting

Good blog with lots of tips on finding performance issues

 Best of the Rest

CRM Web API Preview – Generate Strongly Typed Objects from Metadata Document

Great blog post on using the new Web API preview to create strongly typed objects and I personally loved strongly typed objects

What happens when you publish a duplication rule

have you ever wondered, me neither but someone has.

Online proctored Microsoft certification exams are now available

You can do your CRM exams in your pants in the comfort of your own home, beware they will use your laptop webcam to check your are not cheating.

CRM 2015 – Advanced find to return all enabled users with a security role

A Hosk blog talking about advanced finds

A list of CRM blogs you should be following

A small list of great CRM blogs you should be following

What’s new in CRM 2016 and why you should read the preview guide

Hosk’s looks at the CRM 2016 preview

Getting Cortana to Work on Australian Windows Phones

It’s good to see people putting Cortana to work

Microsoft Dynamics CRM 2013 White Papers & Technical Documentation

A great list of all the CRM 2013 white papers

CRM 2011 – How to set up a lookup using Javascript

How to set a lookup using JavaScript

Storing the “Last Activity” on a Microsoft Dynamics CRM record

Good blog to show you how to store the last activity, who needs machine learning

CRM 2011 shortcuts

CRM has lots of shortcuts, who knew

CRM Plugins – Stopping infinite loops and understanding PluginExecutionContext.Depth

How to stop infinite loops in your plugins, it’s all about the depth

How to get the server time in Dynamics CRM?

You never know when you need to get the server time, it’s like hammer time but better

Great list of CRM version numbers, Release Dates, Build Numbers, and Collateral 

It’s hard to remember build numbers, so luckily someone has collated them all in one list for you

how to Manage Microsoft Dynamics CRM Online updates

A great article from Microsoft about managing updates, you can turn them off to have one a year.

CRM 2015 – Why filtered views are useful

Filtered views are more awesome than you know

New Forms Authentication in ADFS 3.0 and IFD for Dynamics CRM

ADFS 3!

Lookup Field vs Option Sets in Dynamics CRM

Which is better, when should you use a lookup field?

MobileCRM: A different mindset in projects

great article on how to approach mobile CRM projects

Entity Image updater tool

It’s a tool to update entity image

Programming

he Golden Rule of Software Engineering

code reviews

other

Sleep May Be One of Our Most Powerful ‘Antibiotics’

Tires, coffee and people

Tim Ferris Morning Rituals podcast

How Do Excellent Performers Differ from the Average?

a dozen things I’ve learned from charlie munger about mistakes

tips on Writing Funny by Scott Adams

Keeping Things Simple and Tuning out Folly

Solitude and Leadership

What Two Teenagers Learned From Watching Every Best Picture Oscar Winner

Previous top picks

Hosk’s Top CRM Articles of the week – 21st September

Useful Hosk Links

Hosk list Of CRM 2013 Tools

A list and review of CRM 2013 tools, this will probably work in CRM 2015 as well

Hosk’s CRM Developer Articles

A collection of my favourite CRM Developer articles I have written

MB2-703 – CRM 2013 Customization and Configuration Certification Information

All the CRM 2013 content to help you pass the exam

HoskWisdom – Hosk Developer Quotes

 Words of Wisdom from the Hosk.  I have written over 900 articles, surely I should have said a few memorable things

Advertisements

Is Gamification in a Microsoft Dynamics CRM a gimic?

To answer the question in the title, Microsoft certainly doesn’t think so because they have just acquired FantasySalesTeam.

Microsoft Acquires FantasySalesTeam, an Innovative Sales Gamification Platform, to Help Organizations Increase Productivity

CRM Gamified were the first company I had heard of using CRM and gamification and have an excellently sounding add on

Motivation Engine

CRM Gamified have a section on why gamification works, the three key principles, which you can see here

  • MOTIVATIONAL INTRINSIC PSYCHOLOGICAL FACTORS
  • DIFFERENT RESULTS ARE ACHIEVED BY CHANGING HABITS
  • KPIS DO NOT CHANGE JUST BY LOOKING THEM OVER

I will warn you this blog post is the Hosk thinking out loud, it doesn’t really go anyway but I thought I would share my thoughts on the subject.  I will add I haven’t used a gamification system yet but there usage is on the rise so maybe it’s a matter of time.

Core CRM

When I think of the core concept of CRM

Customer

Relationship

Management

It strikes me as feeling a bit old fashioned and slow moving when you consider the fast paced world of social media, twitter, instant messaging, the OMNI channel.

some of the benefits of a CRM system is having one source of data which multiples teams and individuals in an organization can use and leverage to effectively do their jobs.

CRM system give workers access to knowledge which can often be tucked away in individuals computers/heads/folders/documents.

CRM system can automate procedures

CRM systems can unify lots of desperate excel spreadsheets, bespoke software, different software all under one new CRM system.

CRM systems are

  • Information
  • People
  • Processes

What is gamification?

Here is a good definition of gamification

Gamification is the concept of applying game mechanics and game design techniques to engage and motivate people to achieve their goals.[1] Gamification taps into the basic desires and needs of the users impulses which revolve around the idea of Status and Achievement.

The main concept is making parts of process into a game and encourage competitive behaviour.

This sounds fun and funky but at it’s core you are measuring workers contributions with a score based system.  The purpose of the employer is to encourage the competitive instinct of your workers and encourage them to obtain more points.

Monitor

The monitoring and measuring (against co workers) seems a bit mean and possibly sinister but the reality is your bosses already compare your performance against your peers and this is traditional how pay rises are allocated, so it’s nothing new or something to fear.

I’m sure there are lots of bosses who would like to know what their employees are doing in more detail, with gamification they can can create a system to monitor and reward key tasks.

Teaching

The game elements interest me because when you play any computer games the points system teaches users how to become more effective at the game and how to get more points through action and the award of points.  It encourages innovation of processes and techniques to game (improve) the system and get more points.

Know who is effective rather than feel

One of the beautiful concepts of gamefiction is it can show you who are the most effective workers rather than using the often unscientific and potentially flawed method of opinion.  gamification makes companies assess the processes they go through and add value to those processes, it makes companies analyse what they do.

Changing Habits

People use habits to do common tasks without thinking too much, your brain goes on an auto pilot.  This is useful because it allows us to conserve some energy but the downsides are habits can be non thinking, doing tasks.  If you have a bad habit it means you instintively and repetitively doing something which isn’t particularly good for you e.g. eating too much, smoking, being messy, not sleeping enough.

At work people can get cultivatae average habits, which I would classify as habits which get your work done slowly.

Gamefication makes people analyse what they are doing and look to improve their working habits, swapping the ineffective habits with more effective habits.  The CRM users will get feedback from the points to help them find their average habits.

CRM gamified have a few articles on why gamefic

Fun

Would gamification make work more fun? hmmm I find this hard to believe but badges and points can motivate people in funny ways.

When the Microsoft Dynamics Community brought out new badges the gamer in me was urged to obtain them for seemingly little reward (does anyone care I have most of the badges is anyone impressed?)

Check out the Dynamics leaderboards here

Learn about Dynamics Community Badges here

I’m sure there are many people who have played a computer game on their computer/tablet/games system in order to get a power up, badge or level up, staying up late and depriving themselves of sleep to get it.

Incentives

Gamification tries to tackle the conceptive of incentivisation.  Are your workforce incentivised to work harder.  When I worked on a helpdesk in one of my first jobs, people were not incentivised to work harder and answer more helpdesk queries because

  • If you solved a query you were rewarded with more queries to solve
  • No one was measuring how many bugs/queries people solved
  • no one was rewarded for working harder.

Sales people are usually one of the few areas of the business who are incentivized to work harder due to commission based pay (e.g. you sell more you get more commission).

Games can be gamed

Games can be twisted by players to get more points.  If a company was using this system for dealing with incidents.  It could lead to players waiting for easy incidents to get more points rather than dealing with the incidents from the most important customers or priority cases.  I imagine there is a balance needed to reward the players but get the focus of the game aligned correctly.

Rules and configurations of games can be change, modified and adapted to ensure they are fairer.  This would be a vital part of the system because if the rules are not fair user adopted will drop.

Not all tasks are equal

The problem  with gamification is some tasks help everyone but the effect can be hard to calculate, not all tasks are created equal.

  • setting up shared information
  • automating processes
  • delivering letters

If sometimes necessary tasks are worth less points people will be less inclined to do them because of the opportunity cost (e.g. they could be doing a task which could get them more points).

Companies would need to think carefully about the rules of the game and possibly insist on a bit of turn taking.

Facts

Reading the interesting article mentioned at the start of this article

Microsoft Acquires FantasySalesTeam, an Innovative Sales Gamification Platform, to Help Organizations Increase Productivity

The facts quoted are impressive

  • Service Corporation International (NYSE: SCI) recently ran a pilot with 130 sales reps and compared their performance to almost 700 others. Those using FantasySalesTeam on average closed 88% more deals at 213% the average contract value.
  • Wireless Zone saw a 176% increase in total sales, 35% increase in specific product sales and a 9% increase in profit in the first month they ran FantasySalesTeam.

It would be fascinating to see the stats of the most successful sales people in terms of phone calls, emails, meetings in comparison to the least successful.  What are the more successful sales people doing, implementing gamefiction will not only highlight the most productive but give you a template as to what other workers need to do to emulate them.

Summary

Gamification is looking at the processes of a companies Microsoft Dynamics CRM system and trying to motivate people to use it more effectively.

I’m fairly certain it could make things more fun (who doesn’t like bettering their fellow workers) and reward people who are working effectively.

Interesting and I look forward to seeing how Microsoft will integrate the new company.

If anyone has any experience with Microsoft Dynamics and gamification please leave a comment I would interested to hear your experiences.

Testing CRM rollups and .NET versions

In this article I will talk about testing patches and how .NET versions can cause odd errors.

Rollups and CRM Version

I had a customer who was using CRM 2013 Service patch 1 and wanted to test their customizations still worked when CRM 2013 SP1 rollup 3 was applied.

Testing a new CRM service pack or rollup involves using a new server and CRM instance.

You can have many CRM organisations deployed on one CRM server but if you upgrade the CRM server it will effect all the CRM organisations and I don’t know any method to roll back rollups.

Why can’t you rollback CRM versions

To understand the question you need to think what happens (could happen) when you apply a rollup

  • Possible changes to the database tables
  • Update to CRM SDK
  • Depreciating certain functional in CRM SDK

Database changes

Microsoft might change the whole structure of the CRM database between service patches and rollups, which is one of the reasons Microsoft recommends you do not write any code/customizations/reports which run directly against the CRM database.  Microsoft provide filtered views and the CRM SDK for you to integrate the CRM database.

I think during the CRM 2013 update Microsoft used to have base and extension tables for each entity. e.g.

  • entitynameBase
  • entitynameExtensionBase

e.g.

  • accountBase
  • AccountExtensionBase

Here is some more information on the merging of tables, which explains how you can run the table merging as a separate job but you have to do it.

Run the base and extension table merge as a separate operation

I have written before about unsupported customizations before – Why you shouldn’t put unsupported customizations in Microsoft Dynamics CRM.  The primary reason you should avoid unsupported customizations is if you have to escalate an issue to Microsoft they offer limited support if you have unsupported customizations (because those customizations might be the cause of the behaviour/bug)

New functionality in CRM SDK and CRM

Usually (but not always)

  • Roll ups contains fixes
  • Service packs contain fixes and new functionality

New functionality doesn’t usually break anything but sometimes existing functionality might change.

The key point is the CRM SDK will have changed,

Old CRM SDK functionality depreciated

With one hand Microsoft giveth new functionality and the other hand they take functionality away (depreciate).

You should always read the What’s new for a new release of CRM – Why you should read the What’s new for developers because it lists not only the new functionality but includes what’s being depreciated in Javascript and CRM SDK.

Applied patches but stuff not working

I applied the rollup to CRM 2013 SP 1 rollup 3 but when I tried to test CRM, I noticed I was getting unusual errors.  The core functionality of CRM was working but I was getting errors when the plugins triggered calls to WCF web services.  Below is the error

The Web Service plug-in failed in OrganizationId: 3666c2e6-04f4-e411-80c9-000c292122be; SdkMessageProcessingStepId: 2ccabb1b-ea3e-db11-86a7-000a3a5473e8; EntityName: incident; Stage: 30; MessageName: Create; AssemblyName:
Inner Exception: System.TypeLoadException: Could not load type ‘System.Runtime.CompilerServices.ExtensionAttribute’ from assembly ‘mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089′.
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)

To find this error I had to turn on tracing and look into the event logs because CRM was not giving much information.

I have highlighted the key part of the error.

This article was useful

Could not load type ‘System.Runtime.CompilerServices.ExtensionAttribute’ from assembly ‘mscorlib

This seemed a classic DLL type error, this usually occur when you there are differences between .NET versions or DLL’s deployed.

In this particular scenario I could compare the .NET version installed on the working CRM environment and the .NET version and other DLL’s in the new upgraded environment.

So I needed to check the .NET version, Microsoft has a great page on this

How to: Determine Which .NET Framework Versions Are Installed

Be careful because you have to read it carefully.  I was checking the .NET versions in regedit (full instructions in the link above) and the folder said v4.  I was expecting a 4.5 folder, so I assumed it was version 4.

Its a better to know facts rather than making assumptions particularly when trying to find a problem.  In the example above I assumed the .NET versions where the same, which meant I then wasted time investigating other parts of the server and DLL’s looking for potential problems.

If I had read the article more carefully  it more carefully I would have noticed this very important section

The value of the Release DWORD indicates which version of the .NET Framework is installed.

 

The folder will be v4 but if this has been updated it will have a new Release registry value and the number in this registry settings tells you what version of .NET is installed

.NET versions

 

I found there was a DWORD value in the working CRM Server which indicates I had 4.5.1 installed

378675 .NET Framework 4.5.1 installed with Windows 8.1 or Windows Server 2012 R2

I checked on the server I was updating CRM 2013 SP 1 to rollup 3 and it only had .NET framework 4

What was happening was the web services were compiled with .NET 4.5 but when they tried to run on the new server it couldn’t find the correct dll versions, this caused the odd errors.

What I learnt

Don’t make assumptions – Know don’t assume.

If web services are not working check the .NET versions and look for the secret DWORD registry setting Release.

 

CRM 2015 – What is the CRM Outlook reading Pane?

I have started using CRM 2015 SP1 and the navigation tweaks are awesome.  So I will congratulate Microsoft on the navigation tweaks and wonder how they got it so wrong in CRM 2013!

The Outlook reading pane is a pain, that’s not entirely true but for an hour today it caused rampant confusing and gnashing of teeth.
I will explain the problem I had first.
CRM Developer Joe was perplexed because the CRM form being shown in Outlook wasn’t the same as the CRM form he was customizing.  He asked me why, why, why, why was this happening.
The contact form looked different than the information in outlook, except if you clicked on the contact it opened a CRM form which looked the same?!?!?!
Contact form in CRM Web
contact form

Outlook contact form but it still has fields which were removed from the contact form.
contact form outlook

So what’s the problem?

I haven’t used the CRM outlook add-in for ages, so I had to do a bit of clicking and looking around.

Searching the internet didn’t bring up anything useful, which was odd because if this was a problem then lots of people would have mentioned it.

Think, Think, Think, Think

I wondered if Outlook wasn’t refreshing properly but after un-installing and installing it still didn’t fix it.

I ended up clicking around and looking for settings, I then clicked on view.  Hmmmm Customize Reading Pane, what does that do?

custom reading pane

So I clicked it

custom reading pane 1

 AHA

The data which was being shown was the Reading Pane and the data it shows are not customizable (except you can remove some sections if you want).

What is the CRM Outlook reading pane?

The reading pane is a quick way to view contact information in a read only view.  It’s useful Microsoft have provided some quick view functionality, frustrating you can’t edit it and puzzling I couldn’t figure out where this information was coming from.

If you think of the CRM reading pane working like the normal Outlook reading pane, which shows you some details about an email without you having to open/read the email.

The CRM reading pane works in a similar way, showing you some details about the contain without having to open the contact record.  This works OK except when you have customized the contact record significantly because the new fields won’t be shown in the reading pane and fields you have removed from the form will be displayed

More information

Customize the Reading Pane in CRM for Outlook

Navigating the CRM Outlook Client

How to Hide Tabs in Reading Pane for Dynamics CRM Outlook Client

CRM Developer Toolkit Alternatives

I was glad to see my blog post Where is the developer toolkit for CRM 2015

getting some retweets and very please to see the Connect suggestion now has 51 votes

Dynamics CRM Developer Toolkit for CRM 2015/Visual Studio 2013

please keep voting and hopefully someone from Microsoft will reply.

Silence

It seems crazy the current CRM developer toolkit doesn’t work with Visual studio 2013, it’s over 2 years old with visual studio 2015 coming soon!!

What I find most puzzling is the complete lack of information about when/if there is going to be a new version of the Developer toolkit.

  • If Microsoft are making a new sexier CRM Developer toolkit, tell the CRM community
  • If Microsoft are not going to update the CRM developer toolkit, tell the CRM community so CRM developers can start to think of alternatives.

Microsoft has no obligation to update the CRM developer toolkit and it’s worth remember this was/is a tool they gave to the CRM community free of charge.

The lack of update to CRM Developer toolkit for Visual studio 2013/2015 and no version for CRM 2015 SDK is starting to get to a critical juncture. There will be more and more CRM Developers facing problems.

The problem will be most significant to new CRM developers will find the lack of support for the CRM developer toolkit most confusing.  When Developers struggle to start developing with a tool/software they can easily give it.

Setting up CRM Dev toolkit with Visual Studio 2013

I managed to get the CRM Dev toolkit working with visual studio 2013 and you can read more about it in the blog post below

Getting the CRM Developer toolkit working with Visual Studio 2013

Replacement for CRM Developer toolkit

Jason Lattimer has created some interest templates and with a bit more work could crate a CRM Developer toolkit replacement.

Jason is looking for some feedback on his current work, so please click the link below and give him your thoughts and opinions on his current work and potential features you would like to see.

Possible Developer Toolkit Replacement?

What are the CRM Developer toolkit alternatives?

With Microsoft being ominously silent about the CRM Developer toolkit and with increasing numbers of CRM developers running into compatibility problems, it got me thinking about the alternatives.

Below I list some of the alternatives to using the CRM Developer toolkit, I have three questions

  • Is it available now?
  • Pro’s
  • Con’s

Handcrafting – DIY

Do it yourself, old school style of creating plugins and deploying them using the plugin registration tool.

It isn’t difficult to create plugins/custom workflows, you just need to read the CRM SDK Write a plug-in, extend the IPlugin interface and then deploy the DLL using the plugin registration tool.

Is it available now?

Yes and always will be

Pro’s

It will definitely work and you will have no problems with compatibility.  This is how plugins use to be written in CRM 4 and CRM 2011 before Microsoft created the CRM Developer Toolkit.

Writing plugins this way is usually done using some template plugin code (much like the Plugin class in the CRM Developer Toolkit).

Con’s

It will be slower and probably involve making some templates.  This choice would involve lots of extra framework type of work rather than development.

Hacking CRM Developer toolkit

You can hack the current CRM developer toolkit to get it working with Visual studio 2013 and working with CRM 2015.

blog to get CRM Developer toolkit working with CRM 2015

Getting CRM developer toolkit working with visual studio 2013

Is it available now?

Yes, as long as you have a few hours and a lot of patience you should be able to get the CRM developer toolkit working with CRM 2015 and/or Visual studio 2013.

Pro’s

It means you can use the best current free tool for CRM development.  The CRM development toolkit is probably the standard CRM development tool used.

It makes CRM development easier and learning the to use the tool will give you skills required by most CRM re-sellers.

Con’s

Hacking the CRM Dev toolkit can be tricky and there is a possibility it might not continue to work with future updates.

Hacking the toolkit might be unsupported.  In theory it shouldn’t be because it’s not an unsupported customization but an unsupported development environment.

If you work with a team of CRM developers it means all CRM developers need to hack their development environment, which all adds up to a bunch of wasted time.

CRM Solution Manager

The CRM Solution manager is a paid for CRM Development tool.  You can check out here

The License is a £136 / $209.95 dollars and the license is on per computer basis.  There are discounts for bulk license buying (find the details on the site).  My initial opinion is the price doesn’t seem prohibitive.

I haven’t used the CRM solution manager yet but there is a free 30 day trial and with no CRM developer toolkit coming any time soon, so I plan to give it a test run and give a more in-depth review.

Is it available now?

Yes.

It integrates with  Visual Studio 2010, 2012, 2013 and 2015

Works with CRM versions CRM 2011, 2013 and 2015.

Pro’s

The CRM Developers I know who have used the CRM solution manager have only good things to say about it and none of them want to revert back to CRM Developer toolkit once they have used the CRM solution manager.

I will reinstate I have not used CRM solution manager but basing my review on the functionality specified on the CRM solution manager website.

CRM Solution Manager provides the following features for custom plugins and workflows:

  • Build and publish to CRM with the click of a single button.
  • Automatically merge referenced assemblies using ILMerge and then publish the merged assembly to the CRM database.
  • Register multiple steps and images at once.
  • Ability to bulk enable or disable steps.
  • Ability to bulk delete images, steps, plugins and assemblies.

Web resources

  • Download your web resources from CRM directly into Visual Studio. Then create, update and publish any web resource with the click of a single button.
  • Intellisense for the Xrm JavaScript objects are fully supported for both JavaScript and TypeScript

Creation of early bound proxy classes

CRM Sitemap editor

A significant pro is the CRM solution manager is compatible with most version of Visual studio and the last three version of CRM (2011, 2013 and 2015).

A significant pro is the positive reports given by users of the CRM solution manager.

Con’s

I haven’t tried the tool yet (to be changed in the near future) so I’m basing my review mostly on comments on the CRM solution manager website.

It’s a paid for tool (although not expensive) which means lots of companies will not use the tool because they are unwilling to pay the license cost.  This could cause difficulties if you get used to developer with the CRM solution manager and moving to a company which doesn’t use it.  I don’t foresee this being a problem for experienced CRM developers.

I don’t believe usage of the CRM solution manager is wide spread yet but this could change with the lack of CRM developer toolkit

Microsoft release an updated version of the CRM developer toolkit

Maybe there is a reason Microsoft have delayed releasing an updated version of the CRM developer toolkit.  Maybe Microsoft are going to release a new awesome updated version of the CRM developer toolkit

or maybe Microsoft will just do minimal updates to the current CRM developer toolkit to make it compatible with CRM 2015 and Visual Studio 2013.

Is it available now?

No, I haven’t heard anything to indicate this is the case, a deafening silence on the subject from Microsoft.

There is hope to this suggestion because a new version was displayed in Extreme 2014 (9 months ago).  Just imagine how awesome it will be after 9 months more development has been done.

There is a good comment on the connect suggestion

I’ve reached out to the Microsoft sdk team and requested that they put me in contact with Matt Barbour. I was at eXtreme CRM in Las Vegas where he demoed the CRM Developer Toolkit for CRM 2015. That was in October 2014 which was 9 months ago and we still haven’t heard any news! We were also urged to utilize Connect and assured that Microsoft pays attention to the feedback here. So far there still has not been any response from Microsoft on this thread after being created nearly 5 months ago. Hopefully Matt will be able to provide an update once I can get in contact with him.

Pro’s

Continuity.  The majority of CRM developers could continue using the CRM developer toolkit.

The CRM developer toolkit works well and most developers understand how it works and it’s quirks.  An updated version would allow CRM developers to concentrate on CRM development.

Con’s

If it does happen it’s likely to be some distance in the future, which means it wouldn’t be of much use to CRM developers now.

It’s not available and might never be.

Microsoft release the CRM Developer toolkit as opensource

Microsoft could release the CRM Developer toolkit as an opensource project and allow the CRM community to update the CRM developer toolkit.

Is it available now?

No, it’s just the Hosk thinking out loud.

Pro’s

It would allow the CRM developer toolkit to be quickly updated to work with CRM 2015 and Visual Studio 2013.

The Microsoft Dynamics CRM community has many talented CRM developers who could work on improving the CRM developer toolkit.

Con’s

An open source CRM developer toolkit could become bloated with functionality not needed by the majority

The CRM community creates a CRM Developer Toolkit Replacement

The initial purpose of this blog post was to highlight, promote and push people towards Jason Lattimer’s post

Possible Developer Toolkit Replacement?

The templates idea is good and you can see how you can use it to quickly create plugins, although the current solution would involve you then registering the plugin using the Plugin Registration tool and I think this might put some developers off.

CRM MVP Tanguy makes an interesting suggestion, which you can read in the comments

For plugin deployment, did you think about using class attributes to describe how the plugin should be registered?

 

I think it would be a great idea to store a few fields to indicate how to register the plugin and I think it would need something to select the filter fields and image fields, rather than letting the developer paste a list of strings (which gets created by the CRM developer toolkit in the crmregister file)

The enhanced web publisher would be great because Javascript publishing is not great in the CRM developer toolkit.

 

Features I would like

  • Javascript intellisense
  • Deploying plugins with one click from within CRM project
  • early bound file creation, maybe using functionality similar to the CRM Early bound generator

These are my thoughts, please go to Jason’s page and leave your thoughts, insights and support

Is it available now?

No, Jason is still working on it and hasn’t released it as open source but I believe he is planning to.

Pro’s

The CRM community has a lot of talented and active CRM developer would have a history of creating free tools for particular problems/needs.

An open source CRM Developer toolkit replacement could have the potential to create an excellent tool to aid CRM development and add features at a faster rate than the very busy Microsoft developers.

An open source CRM Develoepr toolkit replacement would hopefully be less likely to arrive in the current situation of no compatible toolkit for a new release of CRM/Visual studio.

Con’s

It would involve CRM developer devoting some of their free time to develop a CRM Developer toolkit replacement.

It could take some time before it contains enough features to seriously rival the functionality in the current CRM Developer toolkit.

 

CRM 2015 SP1 – Turbo forms use asynchronous JavaScript web resource loading

I was reading this blog post from the CRM Lady

Turbo Forms in Microsoft Dynamics CRM 2015 (v7.1.0)

The article points to some good resource learn more about the new turbo forms.

The article from the CRM Team has a wealth of interesting information and lots of healthy warnings for you

Microsoft Dynamics CRM Online 2015 Update 1 – New Form Rendering Engine

What are the new turbo form

Microsoft have been doing lots of tinkering how the CRM forms are rendered.  This graphic shows the effect

// // // // // //

When I saw the graph above my first thoughts were

  1. WOW, Awesome
  2. How did they get such a dramatic improvement
  3. Will this break my customizations

How did Microsoft Improve loading times

I will quote the article

There are 2 main changes that have been made: loading process of the form, and handling of cache.

The article indicates they have moved to parallel loading and are caching more data.

 

Hmmmm Parallel Javascript loading

The increased form loading is great but parallel loading can have some downsides.  I first came across Javascript parallel loading in CRM 2011 rollup 12, you can read about here

To speed up form loading in CRM 2011 they switched to parallel loading and the result meant lots of Javascript methods suddenly stopped working.  The reason for this was because one Javascript file was calling a method on another javascript file.  This worked when the Javascript files were loaded in an order but when you load them all at once sometimes one Javascript file tries to call another dependant Javascript file which is still loading.

So suddenly lots of Javascript errors appeared and all developers had to write a Javascript wait file, like CRM MVP Scott Durow talks about in this article

This is a significant change and could cause lots of errors if you have Javascript code in your OnLoad functions which call other Javascript files.

I noticed a new section appeared in the mdsn article Write code for Microsoft Dynamics CRM forms

Manage library dependencies

As a performance optimization, Microsoft Dynamics CRM forms load JavaScript web resources asynchronously and in parallel. This means that the order in which the libraries are configured for a form does not guarantee that a library will be fully downloaded and initialized before another library might attempt to use one of the objects defined in it.

If you have code that depends on another library to be fully downloaded and initialized, the most straightforward approach is to combine both libraries within a single JavaScript web resource with your code below the library code. A more sophisticated approach is to use libraries such as head.js or require.js to control how the separate libraries are loaded.

 

Is Parallel loading good or bad

There is a quote in blade runner

Replicants are like any other machine. They’re either a benefit or a hazard. If they’re a benefit, it’s not my problem.

Upgrading to CRM 2015 SP1 could cause big problems to Javascript customizations.  It’s good practise to split up your Javascript code to separate files to make it reusable and maintainable but now Microsoft are recommending we put everything in one file.  This could turn out to be one big massive Javascript file, which is ok for performance but maintaining and working with this file is difficult.

This change could catch many CRM developers out because the errors are intermittent, sometimes the javascript files will have loaded in the correct order and work.

It will involve developers writing Javascript code which waits until all the Javascript files load which will cancel out any benefits from parallel loading.

It could be seen as an opportunity to restructure Javascript code to have a self contained loading script and then move other Javascript functions to OnChange events.  This would be a double win of increased loading time due to parallel loading and running less code.

You can use Legacy form loading style

There is a system setting which contains a global setting to control which form loading style you use.

It’s a great idea for Microsoft to put this in because the new speedier form loading code might take some while getting use to it.  When CRM 2011 polaris release came it, it caused a raft of blog posts because CRM Javascript customizations suddenly stopped working.

Settings -> Administration -> System Settings -> General. Select “Yes” under “Use legacy form rendering”

In a perfect world it would have been great to have a entity setting rather than a global setting for the form rendering.

I thought I would write about this because it could effect a lot of people and I never spotted this change until today.

 

What are the limitations of Microsoft Dynamics CRM Online and how do you work with them?

will all CRM instances be online is the future?

Why haven’t I worked on more CRM online projects?

I was contemplating the questions above reading the white paper about creating solutions for CRM online

Microsoft Dynamics CRM Online patterns & principles for solution builders

It’s a white paper highlighting the limitations of CRM online and how Solutions architects will need create solutions to work with the strengths of CRM online and work around the weaknesses.

Is CRM Online the future of Microsoft Dynamics CRM?

Microsoft would like to think CRM projects are all heading online, Microsoft is spending lots of money creating data centres , bringing their top software offerings to the cloud(Exchange, Sharepoint, Dynamics CRM, Azure, Office, etc etc etc).  Making it easy for all the software to work together on-line (e.g. removing barriers)

Microsoft acquired online products to extend Microsoft Dynamics CRM

  • Parature
  • Social Engagement
  • MDM – Marketing

From a cost point of view (looking at it holistically), it seems sensible use massive data centres which are maintained and look after, rather than individual companies having to host servers, hire skilled people to maintain them.

Hosk experience of CRM online

So far I have only been involved in small/simple projects successfully working with CRM online.

The majority of projects I have worked on and have known about have been with CRM On premise.  I wonder if I have worked on complex CRM projects because I am a CRM developer, it’s perhaps more likely the projects I work on will involve complex customizations and with the previous versions of Microsoft Dynamics were better suited to CRM on premise.

I have heard of projects moving from CRM online back to CRM on Premise but no projects moving from CRM On premise to CRM online.

CRM online is growing?

Microsoft Dynamics CRM online is growing in popularity.  I say it but I couldn’t find much information to back that up

Good Momentum For Microsoft Dynamics CRM Reported At Their Fall Analyst Event

The Dynamics product is doing well. The numbers speak for themselves: 12% revenue growth in FY13; Dynamics AX and CRM growing by double digits worldwide and 30% in the Americas and Asia; and CRM Online growing by 80% in FY13, with two out of every three new customers opting for cloud. Microsoft Dynamics has 359,000 customers and 5 million users, while Microsoft Dynamics CRM has 40,000 customers and 3.5 million users.

The post is a few years old but I’m going to going to assume Microsoft Dynamics CRM online is growing.  I will assume Microsoft will actively continue to grow the Microsoft CRM online offering, which will result in more CRM online projects for CRM Developers to work on.

It’s easy to envisage a future where companies pay for virtual cloud servers and services instead of paying for skilled IT guys to look after their own servers.

At the moment my personal view is big CRM projects and complex CRM projects are not a good fit for CRM online.

Limitations of CRM online

Below are some of the limitation of CRM online

Indexing

A lot of CRM projects I have worked on have involved SQL indexing.  I understand indexes are not automatically added because when indexes need to be added it has to be in a specific area which needs a performance improvement.

How does indexing work with CRM online?  how do you find out where the SQL server is running slowly?

The white paper says you can get Microsoft engineers to look at indexes through a support request but I wonder how this works and how effective it is?

Increasing performance – How?

CRM on premise infrastructure is designed to allow more resources to be added in a modular way.  e.g. if you need more performance in the SQL server, you can add more SQL servers.  If you need better performance on the CRM front end, you add more CRM front end servers.

How does this get managed on line?

Data privacy

Some companies don’t want to their data in the cloud no matter how secure Microsoft says it’s is.

Sandboxed plugins

Sandboxed plugins can’t access any 3rd party dll’s, which can be quite limiting

Custom ASP.NET pages

Custom ASP.NET pages can’t be done in CRM online, so no iFrames showing custom pages.

Reports are FetchXML

CRM online reports can only be written in FetchXML because CRM developers have no direct access to the CRM database.

Size of database

Online database charge by the gigabyte.  CRM databases can grow pretty quickly but how do you shrink POA table if gets to big.

The emphasis will be on CRM support engineers to reduce the POA table size but the Microsoft as a company do not benefit from this (because they charge by the GB), so there is conflicting goals.

Reading the document has made me aware of techniques to move data out of the CRM database into services like SharePoint (or similar) but database management could be a full time job.  The alternative of course is there will be so much space available in the future where database size is not an issue.

The current relationship between megabytes and gigabytes could be the same relationship between gigabytes and terabytes in the future and the talk about database size seem silly.

Hosk Thoughts

if Microsoft keep investing in the Online infrastructure and products and more companies use CRM online then I will inevitably get increased exposure to CRM online.

I view CRM Online similar to CRM mobile in the fact it’s the direction the industry is moving but currently this seems to be a slow process and I expect the majority of CRM project to be CRM on premise.

I’m not sure why Microsoft are delaying service updates to CRM on premise?  It’s going to make CRM developers and resellers life increasingly complex and frustrating, delayed enhancements don’t seem appearing enough to change peoples suitability or desire for CRM version.

In my experience big or complex CRM projects are more suited to On Premise solutions and it would be extremely difficult to do these projects online with CRM onlines current limitations.

If Microsoft changed the online version to host servers online and the CRM developers could access the servers then it would be a very compelling argument, a half on line/on premise solution.

Understanding how CRM Online solutions can work

Reading the paper for the first time, I felt it was unusually worded because it highlighted a lot of limitations but portrayed them as benefits

Microsoft Dynamics CRM Online patterns & principles for solution builders

This line jumped out at me

Everybody has felt a little guilty when they wrote some bad code in the past. Well, in Microsoft Dynamics CRM Online, the temptation to write icky code has been removed in a lot of places, especially where it comes to resource utilization.

Thinking about the document it raises some good points because Solution architects will need to design different solutions for CRM Online than they would if their were designing a CRM solution for a CRM on premise.

Developers don’t like being limited but if more CRM Solutions and customizations will be in deployed in the cloud it’s knowledge CRM developers will need to have.  Part of a CRM Developers work practise is to adapt to new versions of CRM and CRM online is a different version to CRM On Premise.

The part of the document I found worrying is the areas it mentions lack of resources which might be available to you.

My experience with CRM performance issues has involved a lot of investigation around infrastructure (networks, resources, etc), SQL database performance (query performance, adding indexes).  Code optimization and database locking investigation.  I will give an honourable mention to the POA table and security configuration as potential causes of poor performance.

Considering the above any investigation would rely heavily on Microsoft support engineers, this is must be a potential concern for any organizations considering large CRM projects online.

These two quotes from the document, which discuss the potential downside of CRM online

no portion of these shared resources are dedicated strictly to the instance running your solution – they’re shared. That means that you must design your solution to accommodate potential scenarios where these resources don’t perform your requests immediately.

Also, be aware that while there are no strict limits on the amount of workflow jobs you can send to the queue, if you or any of your neighbors sharing the resource are using an inordinate amount of resources, you may have a governor placed on your usage

Hard limits with CRM online

Plug-ins 2 minute timeout
SQL 30 second timeout for database transactions
Running workflow jobs Fair use – no specific hard limits, but the resource is balanced across organizations
Direct database access Not allowed

Where the document is really useful is it focuses on how you should construct CRM Online solutions to utilize the strengths of the CRM online offering.

If you have large long running processes then you can create services in Azure to do this work and take the heavy work load, nicely avoiding hitting any of the hard limits set in a CRM Online solution.

I have no experience of CRM Online using Azure so it was interesting to read the methods to  deploy code as

Azure Iaas

Deploy code to IIS in the cloud running in a virtual machine (VM).  The same as hosting a webservice on your own server or usually in a new web application on a CRM server.

Azure PaaS

I’m not quite sure how this works, it seems you don’t configure IIS but just deploy your code and deploy it as a cloud service.  This seems to be more like a windows service (but in the cloud).  The code needs to be written in a certain way to be run a cloud service.

Configuration over code

Microsoft in recent versions of CRM have been steadily improving the no code solutions with improvements giving improved functionality to mobile devices and more customization choice for CRM Online

Code                  GUI Customizations

Javascript     –     Business Rules

Plugins         –      Real time workflows

Managing Storage

CRM online charges by the Gigabyte/per month fee.  CRM Developers need to manage the CRM database size by storing information in other cloud services such as Sharepoint online and azure storage (Microsoft naturally recommend their own products).

The conclusion of white paper

Creating solutions for the cloud is different. It requires thinking about the system architecture in a different way. But making this leap is an imperative for almost anybody selling business or government solutions today. Keeping up with the market requires us to make the necessary adjustments, and allows us to embrace the attendant benefits of building solutions for the cloud.

Initially I thought highlighting the limitations of CRM online was an odd thing to do.  Looking at the document again it’s seems like a good idea because it’s important CRM Developers know the limitations.

Offering advice and techniques to work around these limitations shows you what is possible.  The white paper points to techniques, software and services CRM developers will need to become more familiar with in the future with CRM on line projects continuing to increase in size and complexity.

The increased complexity of CRM online solutions will need developers to create CRM customizations using no code tools such as business rules and real time workflows in conjuction with code deployed and running in Azure services.

This may explain the raft of new synchronization enhancements added into CRM 2015 SP 1, which I talked about in the blog post below

What’s new in CRM 2015 SP1 for developers, customizers and admins

The white paper won me round in the end, highlighting ways around some of the major limitations with CRM online.

Many CRM Developers will have no experience of deploying code in azure and consuming it within CRM.  I would say not just CRM developers but many CRM resellers won’t have experience of creating solutions using code deployed in azure.

This were my thoughts on CRM online, please leave your thoughts, experiences in the comments

%d bloggers like this: