Development in CRM 2011 – SDK Changes

I am starting to get into the nitty gritty of programming using the SDK.

When I tried to run through the Ribbon example in the SDK, it was a nightmare. Adding a button into CRM 2011 is a lot harder than the adding a button in CRM 4.  The main reason for this is because of the Ribbon.  Although the Ribbon is good because it provides context to all the screens, tabs etc it makes it very painful to add in buttons.

It was difficult running through microsofts walkthroughs, now this to me says the using the ribbon is difficult if you struggle to understand a step by step walkthrough.

This blog has a nice quick summary of the CRM 2011 SDK

Microsoft Dynamics CRM 2011: The Good, The Bad, and The Ugly

For the good I agree that improvements for solutions management, improved Javascript, reusable Javascript.  Although Solutions do provide some bad because you can’t import any of your CRM 4 entities because they are not in a solution.

One of the good things he mentions is Early Bound Entities. I hadn’t used this yet but I think it’s basically involves using code generation tool (CrmSvcUtil) to create classes that you can use to access business data in Microsoft CRM.

From my brief look at the SDK document (more investigation to follow) it creates one class for each entity, a couple of links for you from the CRM 2011 SDK

Use the Early bound entity classes in code

Use the Early Bound Entity Classes for Create, Update and Delete

The Bad

In the bad he basically describes that working with CRM is not easy for developers.  There are lots of xml files to be edited manually and not many tools to help you get this right.

Deploying CRM code is tricky and can often lead to mistakes.  It would be a big help if Microsoft created some kind of installing software to help automate the process to make sure we didn’t miss anything out and didn’t accidently change some of the settings.

I am going to quote the ugly part because he describes the pain perfectly

The Ugly

I wish I could say there’s nothing truly ugly about CRM 2011, but that would be a lie. There is one new component who’s implementation from a development perspective is so painfully clunky, that uglyness just scratches the surface. The Ribbon.

Don’t get me wrong, I love how the ribbon enhances the end user UI experienceand brings CRM inline with all of Microsoft’s new products. And I love how the new ribbon offers alot of flexibility in terms of when and how things display. But implementing changes to the ribbon is far more painful than it should be.

First off, the xml schema for the ribbon is fairly complex, and the SDK doesn’t do a good job explaining how all the parts play together. I actually plan to give a brief internal presentation for the developers who haven’t worked with it yet, just so they don’t have to spend so much time trying to parse through the samples Microsoft provides to understand it.

This complexity in itself wouldn’t be bad. In fact it’s because of that complexity that the ribbon is so flexible. But the problem is that it means that there are at least 5 actions you have to take in order to implement any change, even just adding a single button. There’s no quick shortcutting and it’s easy to forget and leave something off.

Which brings me to the main problem. When you have something that’s complex and easy to mess up, easy debugging is crucial. But the process of editing, and then deploying the ribbon is almost unconscionably painful. To start, you have to export your entire solution. Either that or create a separate solution just for the entities whose ribbon your changing and export that. You have to unzip the solution, edit customizations.xml directly, rezip everything, import back into CRM, and publish. In my experience, each change takes 2-3 minutes to deploy. Not quick debugging at all.

What’s even more problematic from a change management perspective, is that your ribbon is lumped in with other entity customizations. If you edit the ribbon while I’m adding or changing attributes, you may overwrite what I am doing.

I did a little research to see if it might be possible to develop a standalone ribbon management tool, kind of like the plugin registration tool provided by Microsoft, but it appears that’s not supported. The entities that hold ribbon customizations (RibbonDiff, RibbonRule, RibbonCustomization, RibbonCommand) are almost all noted as “for internal use only” in the sdk. I can only hope that means Microsoft is planning to create some sort of internal tool to ease the pain here.

Tips on Passing the Dynamics CRM 4.0 Customization and Configuration. Exam #MB2-631

I thought I would describe how I studying and passed the Microsoft customizations and configuration exam.  I’m not saying this is the best method but it is a method.  Firstly I would say that studying for the exam is a good way to learn CRM if you don’t know it and learn other parts of CRM that you haven’t used before.  The goal of this is to increase your knowledge in CRM and get a certification to show everyone (especially whoever is doing your review)

The first thing you want to do is know the criteria for the exam, this helps see what you need to study and highlight parts of the exam you have no idea about and will need to read about.

It’s important when studying for a certification that you know what is going to be in the exam. You also need to know what areas are covered and what areas you will need to spend more time and the areas you can spend less time on.

 

We can see from below what areas in the exam will have the most questions on

Customizing Entities and Attributes – 32%

Configuring Your Deployment – 28%

Customizing Relationships and Mappings– 20%

Customizing Forms and Views – 12%

Maintaining Organizations– 8%

 

These areas are also a good way to organise your studying, especially looking the more detailed list of topics you will be studied on below

This information also tells you need 70 percent pass mark, that means you can get 15 questions wrong out of 50

Microsoft Dynamics CRM 4.0 Customization and Configuration Certification Exam (Prometric Exam # MB2-631) Preparation Guide
Target Audience
Individuals wishing to obtain a certification on Microsoft Dynamics CRM 4.0 Customization and Configuration should

 

take this exam.
Exam Specifics
Skills Being Measured:
This certification exam measures your ability to understand and articulate how to configure the application’s organizational settings and customize the application using its built-in customization tools.
Time Requirements & Questions:
· 100 minutes to complete the exam
· 50 questions with a passing rate of 70%
· Multiple Choice and Multiple Answer questions
Exam Topics
Configuring Your Deployment – 28%
· Configuring Business Units
· Configuring Security
· Configuring Users and Teams
· Configuring Organizational Settings
· Configuring Multi-User Interface Language Packs
· Configuring Currency Exchange Rates
Customizing Forms and Views – 12%
· Customizing Forms
· Customizing Views
· Publishing Forms and View Changes
Customizing Entities and Attributes – 32%
· Maintaining Custom Attributes
· Maintaining Custom Entities
· Maintaining Custom Entity Icons
· Renaming Entities
· Translating Customized Entity Labels

Customizing Relationships and Mappings– 20%
· Relationship Concepts
· 1:N Relationship Behavior
· Creating 1:N Relationships
· Creating N:N Relationships
· Entity Mappings
Maintaining Organizations– 8%
· Core Concepts – Multi-tenancy and the Configuration DB
· Managing Additional Organizations
· Importing Organizations
· Maintaining Servers and Licenses

 

Practise Exams

Practising the exam is important.  It gets you use to the type of questions you will face in the real exam; it’s also a good indicator of what you do and don’t know.  I would try the practise question, says 10 or 20 question, run through these as many times a week as you can.  10 questions will only take 3-5 minutes and 3 times a week is only 15 minutes.

The way I did this was to see the answer to each question after I answered it or you could use the questions are also a good jumping off point to go into the practise CRM applications and investigate parts of CRM.  Go into CRM and do what the question is asking you and see if you can work out the answer and understand why.

Course ware

These provide a detailed description of all the areas that will be covered in the exam.  Basically each chapter is one separate section in the exam.  So reading these will help you understand theoretically how the separate parts work.  It’s a good idea to go into CRM and try out the theory in a practical way as well, this will help reinforce the information for the exam and help you learn CRM.

 

Set Yourself a Deadline

The final piece of the puzzle is setting yourself a deadline for when you want to take the certification.  If you don’t set yourself a deadline then you will amble on and not really push yourself to learn CRM or learn the topics needed to pass this certification.  I would say a 2/3 month deadline is a good one.  You can then work out how fast you need to work through the courseware/powerpoint slides so that you are on track to have read all course information and have a few weeks to revise before the exam

We also have the practise exam so you will also know if you are ready to take the exam because you will be getting near 90 percent on the practise exams.

Create a Plan to Pass the Exam

Set yourself a goal

Set yourself the goal of passing the Customization and Configuration certification

Deadline

Knowing when you want to do this by.

The Detailed Plan

Creating a plan to do it (e.g. read the course ware by a certain date, do the practise exam a number of times a week)

Do it

Execute the plan

 

I appreciate this is the method I used and you might have your own method.  In the end I think you need to create some kind of a plan to pass the exam.