#CRMVisualSchema – part 1: intro

Last summer I was approached by the EMEA recruitment office from Salesforce; if I was interested to join them as a Technical Solution Architect.
I was suprised because I didn’t have any experience and no track record in Salesforce.
Nevertheless they got my full attention. I made it through all telephonic interviewing rounds (speaking with a variety of people). Once I managed to pass the telephonic interviews, I was invited to do a panel interview.

In order to survive the panel interview you have to prepare a case. In this case you have to play the role of a Salesforce employee, presenting a technical solution that will help the customer to run his business.
In the preparation for this panel interview I was granted a full blown Salesforce demo environment, which I could use to do my preparation.

I really got a chance to take a good look at Salesforce, and one thing I’m a bit jealous of is the Schema Builder. In the Schema Builder you can draw your entity model and the relations between the entities.

Giving you a good visual insight in the entity schema of your solution.


The Schema Builder idea has been haunting me since that time…

How cool would it be to have the possibility to generate a visual entity representation of your solution? In which you can see what entities exist and how they are related to each other. How cool would it be to have plug-in for XrmToolbox in which you can generate an image containing your datamodel?

In this series of articles I want to investigate if this is feasible.

As far as I can oversee it, I have to investigate three areas:

  • Build an XrmToolbox plug-in
    This is no rocket science. I’ve been playing before with the XrmToolBox sdk.
  • Get schema information of the CRM solution
    I’ve played with this as well. In an earlier blog post I posted a piece of source code to get all meta data information of an entity.
  • Draw a visual schema with all relations
    The hard part of this part is arranging the entities in an image and draw the relations between the entities. This part requires some serious thinking and engineering. * Some help and ideas are always welcome *

A while ago I stumbled upon a codeproject example from 2006, in which a schema generator was discussed. However this article depends on legacy technologies and I want to keep it as lean as possible.

More recently I read about NClass, a sourceforge project in which UML classes are created and shown in a visual designer. I downloaded the sources, compiled and executed the Visual Studio Solution. * Dang I’m impressed! *


It turns out that NClass uses a fairly simple XML structure to represent the objects and relative locations. See the XML example below.


I still need to do some serious investigation, but this might be exactly what I need. In the next article in this series I’ll take a serious look at the XML and figure out how I can map the CRM entity model to this XML structure.

Dude, what happened with the panel interview?

Just in case you wonder how my panel interview ended? During the interview I realized that I didn’t want to leave the Microsoft eco system (throwing away over 20 years of experience and knowledge).

I guess the virus called Dynamics CRM infected me way too much…