Nov 26, 2012

Taking Another Look at Microsoft Dynamics CRM 2011

Chris Griswold

Chris Griswold

Default image background

Last week, I wrote a blog discussing some of the most notable highlights gleaned after completing a year-long implementation project of Dynamics CRM 2011. Throughout the course of this project, there was almost not a single part of CRM that we did not modify or customize to suit the needs of our client. In this blog, we will continue the discussion with several key areas of CRM that are either new functionality or improvements of existing features.

Users Love Custom Views and Dashboards

Besides the ribbon, one of the most visually appealing changes for CRM 2011 was the addition of dashboards. The dashboard serves as a landing area when CRM is accessed from the web client and can also be used as a default view in the Outlook client. You can create a set of dashboards, which are accessible by anyone in the organization or you can make them available to certain user roles. Users can easily make their own dashboards as well. This is one area where we were pleasantly surprised to see the users really start to get their hands dirty with CRM. After a few weeks of learning the system and getting used to the interface, we saw a large increase in the number of custom views and dashboards being created and shared across the organization. The relatively easy interface that CRM provides for constructing advanced queries allows users to see data and relationships like never before. A report that would have required IT resources and custom development in a legacy system can now be done by the end-user without the involvement of IT.

Customization is a Little Easier

From a CRM developer/customizer perspective, we were really excited about the improvements made to the interface for creating customizations to entities, attributes, and forms. For the most part, that proved to be a huge advantage during our development cycles. Form customizations are as easy as dragging and dropping fields on the page, and you have greater flexibility to add customizations to the lookup fields, embedded grids, and iFrames. This new ability not only cuts down on development time and the amount of JavaScript needed, but it also provides a much smoother end-user experience. Field level security comes in handy in a limited capacity, but for most of our scenarios, we had to implement field level security from the OnLoad JavaScript event handlers. For us, there were two new tools that proved to be most useful from a CRM form development perspective. First was the new Xrm.Page JavaScript namespace, which provides an increased amount of control over the document object model in a form and eliminates the need for tricky JavaScript DOM manipulation. The second is the REST web service, which allows you to quickly and relatively easily query CRM data from the JavaScript on the form.

Pleasant Surprise – Guided Processes

When guided processes or “dialogs” were first introduced, we didn’t really know what to think about them. We were excited to have a tool that would essentially allow us to walk a user through a workflow-type task taking different directions and actions based upon the user interaction. Much like their workflow siblings, building guided process takes some practice. Constructing screens that don’t confuse the user takes a little trial and error, but once you get the hang of it, these processes can prove to be very useful. For the Credera team, the requirement to use dialogs didn’t come up until after the system went live. We started finding areas where the use of dialogs was the perfect solution for making data corrections and facilitating the updating of critical data elements. Instead of a user just changing a field on the form, we could wrap that field in a dialog and require that a reason be provided and actions taken upon completion of the field change. There are really only two things missing from this component. First is the ability to have a dialog kick-off automatically just like a workflow does on some identified event. The second would be for you to easily provide access to a guided process via a single button rather than the “Start Dialog” process.

Personalize marketing campaigns and increase revenue with Microsoft Dynamics

Explore Our Microsoft Consulting Services  →

Be Careful with the SDK

One of the most significant parts of our implementation of CRM was the design and development of a custom .NET web application. It presented CRM data to the user on completely custom screens and utilized the CRM Organizational Web service to retrieve and persist data to CRM. Because of the newness of CRM 2011, our team relied heavily on the SDK documentation and examples to design our solution. With CRM 2011, Microsoft made significant changes to its web services. First, the Organizational Web service used to retrieve and persist CRM data specific to an organization was converted from a traditional .NET web service to WCF. Secondly, Microsoft introduced a Linq based interface to that same data, which would allow you to query data quickly and easily with minimal configuration and setup. The main functionality of the WCF service remained essentially the same. First, you build a query expression either programmatically or using the new FetchXML syntax. Then, you pass that query into the correct WCF method to retrieve the result. To our surprise, however, we began to discover that this service was significantly slower than its older brother from version 4.0. Since the service is essentially a black box to us, we were not completely sure why the requests would be slower, other than it is a result of the conversion to WCF. When we brought up the issue with Microsoft Support, they acknowledged the difference in speed and promised to work on it. We might not have even reached this revelation about the WCF service if we had not had such a similarly unfortunate experience with the Linq interface. The concept behind the Linq interface was very appealing. Just insert into your web.config a single line, which is essentially a connection string to your Organizational Web service, and then start retrieving data with lambda expressions. The expressions then pull back the data as you access them, rather than when you create the expression. This allows for easy access to CRM entity data and even related entity data, eliminating the need for multiple queries. However, what we quickly learned was that the cost for this simplicity and ease was greater than the benefit, and all Linq queries were eliminated from our solution shortly after they were implemented. In short, the Linq queries were 15 to 20 percent slower than traditional “Retrieve” and “Retrieve Multiple” web service calls.

Microsoft Dynamics CRM 2011 provides much improved features and functionality, not only for the end-user, but also for the system administrator, customizer, and developer. For each implementation, you must carefully decide which configuration and customization tools and techniques will provide the best end-user experience. Completing a small amount of work up-front in this regard will prove valuable in later stages of the implementation.

Credera has extensive experience with CRM, including Dynamics CRM. If you have questions about CRM or Microsoft development, please contact us for more information.

Conversation Icon

Contact Us

Ready to achieve your vision? We're here to help.

We'd love to start a conversation. Fill out the form and we'll connect you with the right person.

Searching for a new career?

View job openings