#CRMVisualSchema – part 5: Launch of the plug-in for XrmToolBox

Almost 2 months after I started this series of articles, I’m proud to announce that the 1.0 version of the Entity Relation Diagram Creator plug-in is downloadable through the XrmToolBox Plugin Store.

About

The purpose of the Entity Relation Diagram Creator plug-in is to create a visual image representing an Entity Relation Diagram. The image can be used within your architectural, technical, functional and user documentation.

Continue reading

#CRMVisualSchema – part 4: Some steady progress

It has been a couple of weeks since I wrote the last update on the XRMToolbox plug-in I’m developing: The Entity Relation Diagram Creator.
This is going to be a tool in which you can generate nice visual representations of the entity schema in CRM solutions.

Erd-teaser2
Things have been pretty hectic last weeks and development is consuming a large part of my spare time. But –  and I’m proud to say it –  the project is coming along quite nicely.

Erd-teaser

What I’ve achieved till sofar is that I’m able to generate every entity schema imaginable within Dynamics CRM. The default schema is rendered within a couple of minutes, resulting in a big pile of entities and relations… *yike*.

The schemas that are rendered can be used for multiple audiences, e.g.

  • For Business Analysts
    A high level schema displaying friendly entity names.
  • For Consultants
    Schemas containing friendly entity names and attribute names. Displaying customized fields only.
  • For Developers
    Hardcore technical schemas that display logical names, field types, and relationship names.

And all kinds of combinations not mentioned .

Entities can be displayed collapsed or in its full glory. Relationships can be highlighted. Entities and relationships can be removed from the schema. Schemas can be saved under different names.
This allows you to build a repository of entity schemas that you can use for documentation purposes within your projects. Once the entities are dragged into the correct position, you can take a picture of it for your documentation.

Erd-teaser3

Right now I’m working towards the release of version 1.0.0.0, I just want to do some cosmetic stuff and add some more cool features. To name a few:

  • the ability to remove relationships without affecting related entities.
  • prevent relationships from being drawn on top of an entity.
  • the possibility to drag relationships to be displayed better.

In the next article I’ll inform you about some pitfalls I ran into during development and I will describe publishing process with regard to XrmToolBox.

For now, stay tuned…

(your patience will be rewarded)

#CRMVisualSchema – part 3: Getting started with plugin development for XrmToolBox

In the previous article, I managed to cram the visual schema designer functionality into a single dll. So far I have implemented the following functionality:

  • Get a list of solutions from CRM
    I only get the solutions that are visisble (those are the solutions you normally see within CRM). I’m considering an option to show all solutions, I have to test first if this is a safe to do.
  • Get all entities from the schema
    Per entity I can filter out the custom fields (those are the fields starting with the publisher id). I intend to implement an option in which you can choose between all fields, publisher’s fields, all custom fields.
  • Get all relations within the solution
    I want to implement an option to show the relationship id’s and in case of a many-to-many the name of the relation.
  • Save option to save the diagram
    In the diagram you can remove entities and relations. This way you can make partial diagrams to highlight an aspect of the system you are designing/implementing.
  • Zoom functionality
    Zoom in, zoom out, by dragging a slider.

What I need to do is to transform my C# dll project into a XrmToolbox plugin project. For this subject I contacted the XrmToolBox gurus @TanguyTOUZARD (Tanguy Touzard), @rappen (Jonas Rapp) and of course @crmconsultants (Raz Dynamics). They provided me with some very helpful information on where to start.

Continue reading

#CRMVisualSchema – part 2: Entity schema up-and-running

At this moment I’m making some nice progress on visualizing an entity model. In the comment section of my previous article Stefan (*kudos*) pointed me on some alternatives, some of them depend either on Visual Studio or Microsoft Visio. My goal is to create a plugin for XrmToolbox, that can be used free of charge.

SchemaEditor

What have I realized till sofar:

  • Stripped all bloat from the NClass library and rewired it
    The library now fits into a single assembly; containing all application logic required to display the entity schema.
  • Created a test application in which I can load and save entity schemas
    When the schema is reloaded the saved layout is restored.
  • Ensured that entity schema can be saved as a PNG image as well
    This image can be used in design documents or in general documentation.

Furthermore I’ve been working on figuring out how the XML in which the Visual Schema is serialized is set up.

Continue reading

#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.

SchemaBuilder

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

Continue reading

Workaround for ADFS issues for external Dynamics CRM url in IFD

Last week we were setting up an on-premise Dynamics CRM 2016 at one of our clients. The server had to be configured to accept internal and external clients in order to be able to work with mobile CRM clients. The client already had an ADFS 2.2 server running on a Windows 2012R2 server.

Once we installed CRM, it was time to setup IFD (Internet Facing Deployment) and the trust relationship with the ADFS server. On the internet there are quite a few very solid articles on performing this job, e.g.

We followed the exact steps as desribed in the articles. And then the moment came we had to test our configuration.

Test 1. Use the internal address

In our browser we entered the internal url for the organisation:  https://organisation.domain.com.
Rightaway we were presented with the ADFS login page (single sign on) and we were able to login and connect to CRM.

So far so good!

Success

Continue reading

Our organization is relocating

A lot has happened since I wrote my last article in which I discussed the dodgy unpredictable performance of the Dynamics CRM online environment of one of our clients.
I didn’t expect to receive that amount of private messages from other European CRM online users facing the same problems. In one of the reactions someone stated that the situation on CRM4 has become worse over time.

But as always there is nothing that beats some good Britisch humour: “The joke in the office today was that we will have ‘Publishing Customisation’ carved on our grave stones!” * ouch *

Moving

I guess we were lucky that Microsoft admitted that more customers were facing similar performance problems, our CRM organization was granted a relocation. Instead of running in the Dublin datacenter we were relocated to the Amsterdam datacenter.

Since that moment we are experiencing a much higher bandwidth and screens open at a constant fast rate (comparable with CRM on-premise).

Although I’m glad that we are having good performance, it makes me a bit angry as well. We have been working on this performance case for almost two months and in every teleconference we heard the same questions and answers over and over:

  • Did you follow Microsoft’s best practices?
  • Do you have customisations?
  • Provide us with Fiddler data
  • Provide us with the information from the Diagnostics page
  • Make screencasts
  • We don’t know anything about a performance issue…

In our case we also set up an on-premise environment in which we tested with the same amount of data, with the same customisations in place. In the on-premise environment we had a good and stable performance (average loading time of a page 2–3 seconds).

With this ammonition Microsoft couldn’t do anything else than relocate our organization; we had proven that the solution we implemented performed rock solid, we had provided network performance data in which we proved that the connection between our client and AMS-IX was good.

This makes me wonder; what is going on with the Dublin datacenter? Are there simply too many organizations running on the available hardware? Are some servers having configuration problems? Are there internal networking issues?  I guess we never don’t know.

What I learned from this case, was that Microsoft support is hard to work with. Every person you speak is friendly, patient and polite, but for some reason they don’t help you that much. The further you go in the process, the more evidence you have to provide. Making it almost a fulltime job.

What I would love to see, is that Microsoft would provide us with some tools, running in the background, gathering all the data support would need. That way, Microsoft really would help its customers and it would make the process shorter and far more pleasant.

My thoughts on the performance issue

At this moment we are having a Dynamics CRM online performance issue at one of our clients. In a joint effort with Microsoft we are trying to find the cause of the performance issue. As a backup scenario our client asked us to set up a full blown on-premise environment, which is –  as we speak –  up and running.

Speedometer

Our client is a world wide organization with offices in Europe and Asia and the head quarters based in the Netherlands. The asian office happened to have its own Dynamics CRM subscription.

This gave us the unique opportunity to test the solution we developed on a different tenant in a different CRM region…

Continue reading

Moving back on-premise (for now)

One of my clients is experiencing a very poor performance on CRM online. The client is about to go live with the new system, but this week during an internal demo (for the key users) the key users complained about the performance. According to the management it was unacceptable.  *ouch*

Redlight

In the weeks prior we already had set up an on-premise CRM environment that was intended to be used as a fall back environment (in case of an internet outage). Whatever happens, the business must go on!
Now,  I can hear many of you think, the crappy performance is caused by the implemented solution!
On the on-premise environment the performance is actually very snappy. Screens crammed with information load between two and three seconds.

A performance that you would expect…

Continue reading

The solution that didn’t want to be installed, but ended up being installed!

Aaaargh, what a day! Today I was wrapping up the setup of an on-premise Dynamics CRM 2016 (Update 1) testing environment for a client. One of the last tasks I had to do was to update the unmanaged solution we developed on Dynamics CRM 2016 online.
Whatever I tried, the solution didn’t want to be installed on the on-premise environment. The import log didn’t show any error, just some items that were unprocessed.

Error

Whatever I tried no luck, I was able to install some parts of the solution, but other parts refused to be installed. I was lost!

Continue reading