Why Use Microsoft Dynamics CRM for xRM Application Development?
With early versions of Microsoft Dynamics CRM, system administrators could make simple configuration changes to CRM, and the amount of customization allowed increased with each new release. As adoption of Microsoft Dynamics CRM grew, so did the needs of the businesses using the xRM components. With each new release came a greater level of customization options, to the point where many organizations view Microsoft Dynamics CRM as more than just a CRM platform, but instead as a rapid application development platform, or a “framework” by which these custom/specific applications could be developed.
Why would someone want to use Microsoft Dynamics CRM as a framework for development? Well, here are just a few of the reasons:
- Native integration with Outlook for tracking features
- Exposed web services for easy programmatic manipulation of data
- Structured framework, providing standardized approach to data
- Native integration to the rest of the Microsoft stack (Excel, Word, and so on) as well as SharePoint
- Highly scalable architecture
- Delegation of user interface development by business analysts
- Built-in business process automation via the workflow engine
- Multiple deployment options, including On-Premise, Online, and Partner Hosted
- Robust security model
- Large number of third-party components available for advanced customizations
Benefits of xRM
One of the biggest benefits in using Microsoft Dynamics CRM as an xRM application for development is that you can still leverage the native features of CRM (something that every organization needs).
An example of this is the drug testing solution explained earlier. Yes, they received exactly what they wanted with an application, but they can also use the features delivered by CRM (managing Leads, Opportunities, and so on) if they want to.
Given the flexibility of CRM and the rapid ideation to delivery cycle, IT departments are able to meet the growing demands overwhelming their limited resources. Microsoft Dynamics CRM provides a solid starting point to extend and automate a greater part of the business process. Extending CRM is easy to do and when properly deployed, works in a natural method, allowing business analysts or power users an ever-increasing potential for customizations.
Business analysts are the bridge between traditional IT development teams and the business. Acting as a functional consultant, the business analyst can prototype changes directly with the business process owners and achieve faster time to production.
Using Microsoft Dynamics CRM 2013 as an organization-wide development platform consolidates the silos of information found in many organizations today. Along with this, consolidation of applications into a single platform drives down adoption costs as the users have a consistent process not found in many internally developed applications.
Challenges with xRM
Nothing comes for free, and building solutions with Microsoft Dynamics CRM has its own set of challenges. The ability to rapidly build solutions in Microsoft Dynamics CRM can lead customizers to skip the traditional analysis phase and start making changes quickly, leading the solution to miss important design gotchas. Care must be taken to avoid falling into this trap, which could lead to a potentially flawed implementation.
Another challenge with xRM is the sometimes-difficult decision of how much of the OOB entities to use in a new project. Does your process closely align with the OOB process flows and forms? How will changes with the next release impact your customizations? This issue is explained more fully in the next section.
Microsoft Dynamics CRM has a distinct process and design model; screens and forms work in a specific manner. If the user community has different expectations, that can lead to extensive customizations, reducing the value of the xRM platform choice or making user adoption difficult.
Finally, one of the dangers we see is when customizers decide to use unsupported customizations, which may break when a new release comes out. Customizers should be aware of the impact of supported customizations and avoid them if at all possible.
- For details on supported versus unsupported customizations, see Chapter 21, “Customizing Entities.”
Licensing options for Microsoft Dynamics CRM impact the building of xRM solutions, and the new lowest cost license is a great option for a pure xRM solution. However, this licensing model does not provide access to the native entities, and therefore forces you down an all-or-nothing path.
- For details on licensing of Microsoft Dynamics CRM, along with the implications for building xRM solutions, see Chapter 4, “CRM Online.”
Customization in the Wild
Now that you have a basic understanding of how to extend Microsoft Dynamics CRM, here are a few examples of customizations “in the wild.”
Let’s first start with a simple customization: The organization needs to track one additional piece of information for every product sold. This is the Order Product entity and represents a detail line item for the order. The organization needs an effective date for each individual product, as shown in Figure 3.3.
FIGURE 3.3 Order Product entity.
The customization shown in Figure 3.3 includes more than just adding the field. We also updated the views within their solution to display this on each order.
Moving to the far end of the xRM spectrum, we have a solution that is highly customized. The first screen is from the drug testing application described earlier. Figure 3.4 shows the screen from within the Microsoft Outlook client showing the custom entities built for this solution.
FIGURE 3.4 Custom entities displayed in Outlook.
Drilling down on the Samples entity, Figure 3.5 shows the screen capture of the custom entity and some of the fields on the main form. This entity is the core of their system and links via relationships to every other item listed in Figure 3.4. The links to Requestors and Patients are further down on the screen, and a grid displays the many test results associated with this test sample.
FIGURE 3.5 The custom Samples entity.