Someone asked me to place an additional button on an account form. Pressing the button should popup a dialog in which notes could be taken about a meeting. he also asked me to prefill some fields in the popup dialog. While perfoming this task, a couple of questions arose:
How to display a popup?
How to pass parameters?
How to retrieve the parameters?
It turned out that passing parameters takes three steps
- On the calling form fill the parameters and send them out
- On the receiving form define parameters
- On the receiving form grab parameters and process them accordingly
The client side libraries for CRM are pretty good. I found a method that would open an entity form for me (Xrm.Utility.openEntityForm). This function can be called passing in form parameters. One of the fields on the receiving form was a lookup field. This field is a but different from other fields as you have to pass in three parameters to fill the field: the ID of the record to show, the display value and the entity to which it belongs. Continue reading
Last week I attended a pizza sesion at the office. Collegues visited Convergence in Barcelona last fall and gaave an internal presentation about the things they learned. As all of you know “Cloud First, Mobility First” is the new mantra at Microsoft.
As a company we are making the shift towards a cloud based world. A growing number of our customers is running on (or intend to migrate to) the online version of Dynamics CRM. One of the speakers at the pizza session told we should develop a strategy for mobility as well. I think he’s right, we should develop a strategy!
… The world is becoming more and more a mobile world.
A different game
Designing for mobility is a total different game than designing for the web. In this article I will explain why. Continue reading
In my transition from SharePoint to Dynamics CRM, I was looking at the process of developing solutions on Dynamics CRM. It turned out that the process is more or less the same, but that it is much easier on CRM to build a good solution.
Like developing in SharePoint, multiple disciplines are required to develop a solution in CRM. At the basis is it’s datamodel. Unlike SharePoint the datamodel in CRM is a physical datamodel (meaning you have referential integrity, indexes etc).
In order to get a good datamodel, you need someone in a consultant/analysis role to collect the (non)functional requirements. The CRM consultant can build the physical datamodel including all relationships. On top of that the consultant is able to build the basic application (create the forms, navigation and define the business rules).
In SharePoint a functional consultant is able to do this as well to a certain degree, when it comes to making the solution deployable over different environments (DTAP) a developer is required hammering out the previously clicked application into a solution package.
Once the basic application is built, security must be applied. This includes ownership, access rights (on entities / fields) and auditing. All of which is offered out-of-the-box.
In my opinion CRM’s way of authorization is far superior compared to SharePoint. In CRM there is security on entities, records and fields and ownership can be transferred easily, while in SharePoint there is security on entities and records which is hard to manage.
From this point on a developer is required in the process of developing solutions on Dynamics CRM, as the out of the box functionality stops more-or-less from here. Connectivity, advanced reporting (e.g. SQL Server Reporting Services) and custom coding require more technical skills.
In the figure below the complexity of developing solutions is shown for both Dynamics CRM and Microsoft SharePoint. The technical complexity increases when go you deeper in the model. The dotted lines (yellow and red) indicate the point in the development process where a developer is required.
The yellow line is the indicator for CRM, the red line is the indicator for SharePoint. The reduction in complexity with a better way of deployment and management makes why CRM excels over SharePoint when building business applications.
Today I was doing some maintenance work for a customer, running a CRM 2011 enviroment. I was excited as this was my chance to do some development within the CRM platform, a substantial different game than SharePoint development.
The change I had to implement was about implementing an indicator whether a customer was using products or not. A fairly simple job…
Where do I had to get the data?
Which service do I need to use?
What are the internal names I have to use?
At the moment I’m setting up a brand new development image. The image is based on Windows Server 2012R2, IIS, SQL Server 2013, CRM2013 and Visual Studio 2013.
Afterwards I installed the CRM 2013 SDK. Within the SDK folder structure there is a folder DeveloperToolKit. Inside this folder there are installers for Visual Studio 2008 and Visual Studio 2012. I decided to start the installer for Visual Studio 2012 (CrmDeveloperToolsV12 Installer.msi)
After starting the installer I was confronted with the error message that Visual Studio 2012 was required. * aargh *
I did some research on the internet and found an article on hastagcrm.com which offered a solution for this problem. You have to do a couple of steps and after these steps the developer tools can be installed within Visual Studio 2013. Continue reading
One of my collegues notified me about a relative unknown feature in CRM 2013, called the Performance Center, which can be compared to SharePoint’s Developer Dashboard.
The SharePoint dashboard showed us some metrics about the applications we were building. Based on the metrics we knew how to tweak our applications to gain better performance.
The Performance Center was introduced in the on-premise version of CRM 2013 (SP1) and is available in the online version as well. Once activated you can see how well your page is performing. Helping you to build better performing pages.
The Performance Center needs to be activated before it can be used. This can be done by hitting CTRL-SHIFT-Q when logged in into CRM. In the screen that pops-up you need to click the Enable button.
You can optionally click the Select Major button, the performance results will be returned as text.
After closing the form, you can go to the form you want to analyse. Hit CTRL-SHIFT-Q again and the performance results will show up in the pop-up form.
The last weeks have been a good introduction into the world of CRM. It bedazzled me that Microsoft CRM is used for all kinds of processes not related to marketing or sales. Microsoft CRM is being used within all kinds of organisations, like e.g. the justice department, offshore industries, in member based organisations etcetera.
The key lesson I learned was that the main aspect of CRM is Relation Management. The nature of the relation can be everything, varying from lawyers (justice department), end users and members that need to be supported. Therefor the C in CRM should be replaced by the x. Where x can be anything you want, as long as the relation between x and your organisation is the central aspect.
This results in the following equation: CRM == xRM
Food for thought….
I’m glad you found this blog. This blog will be dedicated to all things related to Microsoft Dynamics CRM.
I’ve been fulltime involved in professional software development since 1995 as an employee of several software companies and as freelancer.
Since 2001 I’ve been specializing myself in the nobel art of Microsoft .NET development.
As of 2005 I switched my focus on all things SharePoint (consulting, development, administration, infrastructure). Recently, I decided to step out of the comfort zone and switched to a new technology world (at least for me). I joined CRM Partners – marketleader in CRM implementations within the Netherlands – as a senior software developer / architect.
In this personal blog I’ll write down my personal experiences regarding Microsoft Dynamics CRM. CRM seen through the eyes of a SharePoint developer.
I hope you get inspired and become as curious and excited about the world of CRM as I am. Let the journey begin….