In my last blog I went over how some basic settings in Windows can affect the performance of Microsoft Dynamics CRM Online and On-Premise. In this article, I would like to cover how certain design aspects within the application can improve page load times and overall customer experience.
All of us at some point in time when customizing Microsoft Dynamics CRM have used a significant amount of JavaScript, heavily customized the ribbon, or had a 200+ field form to achieve the customers’ requirements.
These are some pretty obvious performance impacts but there are some not so obvious others. Here is a list of the main things that impact client performance:
Design Considerations
Number of:
- Columns and grids in use
- Rows returned per page
- Sub-grids used on a page
- Controls on a form (Form Design)
- Controls on the ribbon
- Client-side events (OnLoad, OnSave, OnChange)
- Complexity and number of visualizations used in dashboards
- Use of Jscript and Plugins. Advanced Jscript can add a significant amount of time to, open, save, close and other events especially if calls are made to Microsoft Dynamics CRM or other system. Plug-ins can also affect performance when saving.
All of this is dependent on your available bandwidth and latency to the server. Microsoft Dynamics CRM On-Premise Deployments will typically notice less of a performance hit from the above items due to the control over the network environment. Dynamics CRM Online since it is a hosted solution and latency is more of a concern the impact will be greater.
Plug-Ins
Plug-ins are another thing that almost every implementation has utilized in one way or another. Depending on the type of plug-in and its functionality there could potentially be some serious performance considerations. For example, something like an auto-number plug-in typically only runs only once on account record, but something like dynamically pulling stock quotes and populating it on an account form for publically traded companies runs every time the forms is opened. Plug-ins are a great way to extend the functionality of the system but need to be used judiciously.
JavaScript
The last thing I want to touch on is JavaScript. I have yet to see a Dynamics CRM implementation that does not utilize JavaScript in some way shape or form. There are many different things you can do with JavaScript from calculations, to web service calls, and manipulation of the UI based on user selections. Out of the three functionalities I listed I would have to say that the web service calls by far cause the most significant performance hit to the system. Every time the form is loaded the browser has to load up the script which delays the load of the form until the browser has made the calls and parsed the data. One of the things that can be done to help in certain situations is using ODATA instead of the typicalDynamics CRM 4.0 XML calls that most people are accustomed to.
Here is a good link to a video with more information about how ODATA works and the performance implications. There are also some good real-world examples utilizing ODATA for companies like NetFlix and StackOverflow.
http://www.hanselman.com/blog/ODataBasicsAtTheAZGroupsDayOfNETWithScottGu.aspx
If you are looking for assistance with Microsoft Dynamics CRM you can reach our professionals via email at crm@mcgladrey.com or by phone at 800.274.3987.
By: John Annunziato, RSM – www.mcgladrey.com/dynamics