Why CRM Developers should always start with the CRM SDK

The CRM SDK is the main tool for a CRM developer, the better a CRM developer knows its capabilities, limitations and documentation the more efficiently they can do their job.

CRM developers should always start with the CRM SDK, it contains all the functionality needed to work with CRM, yet many developers rarely look in the CRM SDK documentation for clarification/help usually turn to the internet to search for examples and code.  Retrieving code examples results in a missed opportunity to learn about the CRM SDK.

What is the CRM SDK?

There is the actual CRM SDK, which you download Microsoft Dynamics CRM Software Development Kit (SDK) for CRM Online and on-premises CRM 2015 This gives you a bunch folders and files with sample code and the all important CRM dll’s and maybe a link to the CRM developer toolkit as long as you haven’t downloaded CRM 2015 (Where is the CRM Developer toolkit for CRM 2015?)

CRM SDK download

When I mention the CRM SDK, I am talking about primarily about documentation which describes the functionality contained in CRM dll’s.  In the download it’s the CrmSdk2015.chm, I use the online documentation because it’s easier to search.

Software Development Kit for Microsoft Dynamics CRM The CRM SDK documentation is awesome but I distinctly remember finding it difficult to use when I was learning CRM development.

I talk more about the CRM SDK in this blog post and it’s a good place to start learning about it

This is my CRM SDK

In the film Full Metal Jacket Gunnery Sergeant Hartman tells the recruits to give their rifles a name because it’s their best friend and could save their life (he actually says give the rifles a ladies name because they won’t be getting their hands on any ladies for a long time).

CRM developers should view the CRM SDK as their development rifle.  It’s your best friend and your main tool in CRM development and it will save you development life on numerous occasions with the it’s functionality and features.

Gunnery Sergeant Hartman: Pray!
Recruits: [chanting] This is my rifle. There are many others like it, but this one is mine. My rifle is my best friend. It is my life. I must master it as I must master my life. Without me, my rifle is useless. Without my rifle, I am useless. I must fire my rifle true. I must shoot straighter than my enemy, who is trying to kill me. I must shoot him before he shoots me. I will. Before God I swear this creed: my rifle and myself are defenders of my country, we are the masters of our enemy, we are the saviors of my life. So be it, until there is no enemy, but peace. Amen.

Most CRM developers aren’t allowed guns at work because in times of frustration it would be too tempting to shoot their computer but each CRM developer will have his own copy of the CRM SDK (for each version of CRM).  I have adapted the quote to make it more suitable for CRM development

CRM developers: [chanting]

This is my CRM SDK. There are many others like it, but this one is mine. My CRM SDK is my best friend. It is my life. I must master it as I must master my life. Without me, my CRM SDK is useless. Without my CRM SDK , I am useless.   I must development with my CRM SDK true.  I will.

Before Hosk I swear this creed: my CRM SDK and myself are defenders of my CRM Solution, we are the masters of the CRM Solution, we are the saviours the CRM Solution. So be it, until there is are no bugs, but peace in CRM dev land. Amen.

CRM Development is like a jigsaw puzzle

I view CRM development as a jigsaw puzzle, like a jigsaw puzzle CRM development contains many different but connected pieces.

Learning and understanding the different pieces often helps see how the other pieces of the jigsaw fit together.

A couple of examples could be

  • Learning about plugin architecture can help understand how workflows, real time workflows work and why plugins are quicker.
  • Understanding  SetSubmitMode in Javascript and how does it works can help you understand update plugins are only passed the values of fields which have changed, so in order to get other fields you need to add an image.

Learning new skills is a mix of theoretical (reading, videos, etc) and practical (doing).  There is a different between theoretical knowledge and practical knowledge, which occurs when you try to get the sample code to run and have to fix many  small problems before it works.  Whilst fixing these problems you learn how things really work.

Theoretical knowledge without practical experience has a limited value because until you write some code or create a customization you can’t be really sure you know how to do it.

Practical knowledge without theoretical knowledge is more useful but this can be a slow way to learn, involving making lots of mistakes and learning best practices through action.  Problems and errors can be harder to diagnose and fix if you lack the theoretical knowledge and understanding of how the CRM SDK works.

The above section is the long way of saying CRM developers should read the CRM SDK documentation.

CRM developers and the CRM SDK

The CRM SDK is the supported/safe way to interact with the Microsoft Dynamics CRM database.  Just like an annoying family member you are stuck with it and every day you come to work you are going to have to work with CRM SDK.

The CRM SDK can be stubborn, difficult and renowned for not suffering fools gladly

The CRM SDK is a cruel mistress to those who do not show it respect but if you play nicely, tickle CRM SDK’s belly it will deliver untold development riches

One of my common quotes  regarding CRM development is

Always start with the CRM SDK

You cannot work around the CRM SDK

My advice to CRM developers who are thinking about creating unsupported CRM customizations is don’t even think about it.

If you put unsupported CRM customizations into your CRM solution Microsoft will not support your CRM Solution.

Do you want to the person who has to inform the customer you cannot get support for a CRM problem (which could be a bug in Microsoft Dynamics CRM) because you wrote an unsupported CRM customization.

There are other reasons why you should put unsupported customizations in

  • Upgrading CRM will be harder
  • Unsupported customizations could stop working with any rollup or patch
  • Microsoft won’t support the CRM Solution

Read more reasons Why you shouldn’t put unsupported customizations in Microsoft Dynamics CRM

How some CRM developers work

Most developers when faced with a task they are not sure about will look for some sample code to use.  The common places to get some code are

  • Internet search
  • Hosk’s Dynamic CRM Blog
  • Existing code
  • Ask a question on the CRM forums
  • Ask a fellow developer how to do it
  • Look at the SDK

Most developers view development

  • Code
  • Debug
  • Test
  • Repeat

Learning through experience is a valid way to learn but it can be a slow way to learn, where the developer has to make all the mistakes themselves and remember to learn from them.  Reading the CRM SDK will help you understand how CRM customizations work and avoid some of the errors/mistakes.

The CRM SDK documentation contains the limitations of functionality, it’s vital to know the limitations of the functionality to avoid it causing problems when you find out later a certain piece of functionality can’t be used.

Examples

  • Plugins have a 2 minute time out, if you have some long running C# code then this needs to be done as a custom workflow.
  • Rollup fields cannot reference other rollup fields.
  • Business rules can’t reference values from other entities, JavaScript could be a better choice.
  • Workflows are Asynchronous, if you need the customization to run synchronously you need a real time workflow or a plugin.

Strive to understand how CRM SDK works

I encourage CRM developers to always start with the CRM SDK and to see what functionality is available and to increase your understanding of how the CRM SDK works.

Getting code examples is great but it bypasses the learning involved in creating the code yourself.

All craftsman should know their tools, a CRM developers main tool is the CRM SDK.  CRM developers should know the CRM SDK forwards, backwards, upwards, downwards and inside out.  A CRM Developer should know the CRM SDK better than members of his family

You can view the CRM SDK as a family member

  • It’s troublesome
  • Can be extremely annoying at times
  • CRM SDK can bring you great joy
  • You have no option (supported option) but to get on with it
  • It’s constantly changing and evolving
  • It can be difficult to understand what it’s saying (confusing error messages!)
  • You love it

Why should you learn how the CRM SDK works

The better you understand the CRM SDK and the CRM platform the more in depth your understanding will be of the different customizations available for CRM developers.

CRM SDK knowledge is extremely useful in finding and diagnosing bugs, particularly tricky/subtle bugs.  I have seen bugs which involved plugins, workflows and Javascript overwriting the same fields.  Understanding how the different CRM customizations work with regards to synchronously and asynchronously helped me diagnose the problem

Error messages don’t tell you the problem but often point you in the right direction.  If you have studied the CRM SDK this will make sense, if you haven’t error messages can be extremely confusing.

In my blog post CRM 2015 – How to diagnose plugin errors it details plugin errors and how CRM SDK knowledge helps when things go wrong

Why you should read the CRM SDK what’s new

The CRM SDK has detailed sections on the new functionality for CRM developers and what functionality has been depreciated.

This article explains why you should read the what’s new

CRM 2015 SDK – Why you should read the What’s new for developers

here is my blog on the new functionality in CRM 2015 SP1

What’s new in CRM 2015 SP1 for developers, customizers and admins

CRM MVP’s

In 2014 I managed to persuade/pester many of the CRM MVP’s to fill in a Q&A which you can read here

One common trait in CRM MVP’s is they have a detailed knowledge of CRM and the CRM SDK and this knowledge comes through in their in depth blog posts.

Continuous Learning

My aim each day is to know more about CRM development when I leave work than when I started it.

Advertisement

CRM Developer Centre gets updated and it looks good

CRM developer centre I noticed the CRM Developer website has been spruced up I thought I would write a quick blog about this because I think new CRM developers should definitely head towards the new site.  The change isn’t huge it is a good move for CRM Developers who are just starting out in CRM development.

What is the CRM SDK?

There is the actual CRM SDK, which you download Microsoft Dynamics CRM Software Development Kit (SDK) for CRM Online and on-premises CRM 2015 This gives you a bunch folders and files with sample code and the all important CRM dll’s and maybe a link to the CRM developer toolkit as long as you haven’t downloaded CRM 2015 (Where is the CRM Developer toolkit for CRM 2015?) CRM SDK download When I talk about the CRM SDK, I am talking about the documentation.  In the download it’s the CrmSdk2015.chm but I use the online documentation because it’s easier to search. Software Development Kit for Microsoft Dynamics CRM The CRM SDK documentation is awesome but I distinctly remember finding it difficult to use when I was learning CRM development.

Why is the CRM SDK hard to start developing with?

The CRM SDK is a huge and when a CRM developer first starts looking at it can be overwhelmed by the amount of information. When a CRM developer first opens the CRM SDK documentation it’s like walking into the British Library (largest library in the world) looking for a book to get started with programming.

The CRM SDK is a fantastic document and the content is some of the best documentation I have read for product/toolkit but in this strength lies it’s weakness.  The amount of documentation makes it very difficult to order and organise so CRM Developers can find the information they are looking for. Many times I have found useful information

  • tucked away in a section I didn’t know existed
  • A section I  have never read before
  • Wasn’t an obvious place to look.

CRM SDK documentation = CRM Developers bible

I view the CRM SDK documentation as the core documentation for CRM developers, it’s vital CRM developers know how awesome it is, how to use it effectively to clarify how CRM works when they are not sure.

Always start with the CRM SDK

The CRM SDK works brilliantly if you are searching for specific parts of the CRM SDK like OrganizationService, plugin variables. The CRM SDK documentation works well for new releases CRM 2015 SDK – Why you should read the What’s new for developers What’s new in CRM 2015 SP1 for developers, customizers and admins The CRM SDK has lots of example code and offers a good way to learn different CRM customizations.

The biggest benefit of the CRM SDK documentation is it’s written by the creators of the CRM SDK and accurately details how the code works instead of how a CRM developer believes the code works. Most times I read the CRM SDK I learn something new.

The downsides of the CRM SDK documentation is it can read like a manual/reference book, this style is excellent for CRM developers who have some experience but can be confusing for new CRM Developers.  There is a lack of screenshots which can be a barrier to understanding new concepts and examples.

Why the CRM DEVELOPER Centre update is good

Once again the Hosk has gone widely off track, the CRM developer centre has been updated and I think it’s a good thing because

  • It’s a front end to the CRM SDK
  • It’s modern and sexy looking
  • It’s built so it can be consumed on mobile devices
  • The search brings back CRM content not all MSDN

The headings give a quick path to relevant sections of the CRM SDK.  It would be great if Microsoft could invest more time trying to visualise the CRM SDK which would encourage more developers to dip in the CRM SDK. The CRM SDK documentation is massive so it’s difficult to dice, slice and display the information in ways to make it easier to find the information you want but Microsoft have already created the information and the challenge is ease accessibility of it.

CRM Developer Toolkit Alternatives

I was glad to see my blog post Where is the developer toolkit for CRM 2015

getting some retweets and very please to see the Connect suggestion now has 51 votes

Dynamics CRM Developer Toolkit for CRM 2015/Visual Studio 2013

please keep voting and hopefully someone from Microsoft will reply.

Silence

It seems crazy the current CRM developer toolkit doesn’t work with Visual studio 2013, it’s over 2 years old with visual studio 2015 coming soon!!

What I find most puzzling is the complete lack of information about when/if there is going to be a new version of the Developer toolkit.

  • If Microsoft are making a new sexier CRM Developer toolkit, tell the CRM community
  • If Microsoft are not going to update the CRM developer toolkit, tell the CRM community so CRM developers can start to think of alternatives.

Microsoft has no obligation to update the CRM developer toolkit and it’s worth remember this was/is a tool they gave to the CRM community free of charge.

The lack of update to CRM Developer toolkit for Visual studio 2013/2015 and no version for CRM 2015 SDK is starting to get to a critical juncture. There will be more and more CRM Developers facing problems.

The problem will be most significant to new CRM developers will find the lack of support for the CRM developer toolkit most confusing.  When Developers struggle to start developing with a tool/software they can easily give it.

Setting up CRM Dev toolkit with Visual Studio 2013

I managed to get the CRM Dev toolkit working with visual studio 2013 and you can read more about it in the blog post below

Getting the CRM Developer toolkit working with Visual Studio 2013

Replacement for CRM Developer toolkit

Jason Lattimer has created some interest templates and with a bit more work could crate a CRM Developer toolkit replacement.

Jason is looking for some feedback on his current work, so please click the link below and give him your thoughts and opinions on his current work and potential features you would like to see.

Possible Developer Toolkit Replacement?

What are the CRM Developer toolkit alternatives?

With Microsoft being ominously silent about the CRM Developer toolkit and with increasing numbers of CRM developers running into compatibility problems, it got me thinking about the alternatives.

Below I list some of the alternatives to using the CRM Developer toolkit, I have three questions

  • Is it available now?
  • Pro’s
  • Con’s

Handcrafting – DIY

Do it yourself, old school style of creating plugins and deploying them using the plugin registration tool.

It isn’t difficult to create plugins/custom workflows, you just need to read the CRM SDK Write a plug-in, extend the IPlugin interface and then deploy the DLL using the plugin registration tool.

Is it available now?

Yes and always will be

Pro’s

It will definitely work and you will have no problems with compatibility.  This is how plugins use to be written in CRM 4 and CRM 2011 before Microsoft created the CRM Developer Toolkit.

Writing plugins this way is usually done using some template plugin code (much like the Plugin class in the CRM Developer Toolkit).

Con’s

It will be slower and probably involve making some templates.  This choice would involve lots of extra framework type of work rather than development.

Hacking CRM Developer toolkit

You can hack the current CRM developer toolkit to get it working with Visual studio 2013 and working with CRM 2015.

blog to get CRM Developer toolkit working with CRM 2015

Getting CRM developer toolkit working with visual studio 2013

Is it available now?

Yes, as long as you have a few hours and a lot of patience you should be able to get the CRM developer toolkit working with CRM 2015 and/or Visual studio 2013.

Pro’s

It means you can use the best current free tool for CRM development.  The CRM development toolkit is probably the standard CRM development tool used.

It makes CRM development easier and learning the to use the tool will give you skills required by most CRM re-sellers.

Con’s

Hacking the CRM Dev toolkit can be tricky and there is a possibility it might not continue to work with future updates.

Hacking the toolkit might be unsupported.  In theory it shouldn’t be because it’s not an unsupported customization but an unsupported development environment.

If you work with a team of CRM developers it means all CRM developers need to hack their development environment, which all adds up to a bunch of wasted time.

CRM Solution Manager

The CRM Solution manager is a paid for CRM Development tool.  You can check out here

The License is a £136 / $209.95 dollars and the license is on per computer basis.  There are discounts for bulk license buying (find the details on the site).  My initial opinion is the price doesn’t seem prohibitive.

I haven’t used the CRM solution manager yet but there is a free 30 day trial and with no CRM developer toolkit coming any time soon, so I plan to give it a test run and give a more in-depth review.

Is it available now?

Yes.

It integrates with  Visual Studio 2010, 2012, 2013 and 2015

Works with CRM versions CRM 2011, 2013 and 2015.

Pro’s

The CRM Developers I know who have used the CRM solution manager have only good things to say about it and none of them want to revert back to CRM Developer toolkit once they have used the CRM solution manager.

I will reinstate I have not used CRM solution manager but basing my review on the functionality specified on the CRM solution manager website.

CRM Solution Manager provides the following features for custom plugins and workflows:

  • Build and publish to CRM with the click of a single button.
  • Automatically merge referenced assemblies using ILMerge and then publish the merged assembly to the CRM database.
  • Register multiple steps and images at once.
  • Ability to bulk enable or disable steps.
  • Ability to bulk delete images, steps, plugins and assemblies.

Web resources

  • Download your web resources from CRM directly into Visual Studio. Then create, update and publish any web resource with the click of a single button.
  • Intellisense for the Xrm JavaScript objects are fully supported for both JavaScript and TypeScript

Creation of early bound proxy classes

CRM Sitemap editor

A significant pro is the CRM solution manager is compatible with most version of Visual studio and the last three version of CRM (2011, 2013 and 2015).

A significant pro is the positive reports given by users of the CRM solution manager.

Con’s

I haven’t tried the tool yet (to be changed in the near future) so I’m basing my review mostly on comments on the CRM solution manager website.

It’s a paid for tool (although not expensive) which means lots of companies will not use the tool because they are unwilling to pay the license cost.  This could cause difficulties if you get used to developer with the CRM solution manager and moving to a company which doesn’t use it.  I don’t foresee this being a problem for experienced CRM developers.

I don’t believe usage of the CRM solution manager is wide spread yet but this could change with the lack of CRM developer toolkit

Microsoft release an updated version of the CRM developer toolkit

Maybe there is a reason Microsoft have delayed releasing an updated version of the CRM developer toolkit.  Maybe Microsoft are going to release a new awesome updated version of the CRM developer toolkit

or maybe Microsoft will just do minimal updates to the current CRM developer toolkit to make it compatible with CRM 2015 and Visual Studio 2013.

Is it available now?

No, I haven’t heard anything to indicate this is the case, a deafening silence on the subject from Microsoft.

There is hope to this suggestion because a new version was displayed in Extreme 2014 (9 months ago).  Just imagine how awesome it will be after 9 months more development has been done.

There is a good comment on the connect suggestion

I’ve reached out to the Microsoft sdk team and requested that they put me in contact with Matt Barbour. I was at eXtreme CRM in Las Vegas where he demoed the CRM Developer Toolkit for CRM 2015. That was in October 2014 which was 9 months ago and we still haven’t heard any news! We were also urged to utilize Connect and assured that Microsoft pays attention to the feedback here. So far there still has not been any response from Microsoft on this thread after being created nearly 5 months ago. Hopefully Matt will be able to provide an update once I can get in contact with him.

Pro’s

Continuity.  The majority of CRM developers could continue using the CRM developer toolkit.

The CRM developer toolkit works well and most developers understand how it works and it’s quirks.  An updated version would allow CRM developers to concentrate on CRM development.

Con’s

If it does happen it’s likely to be some distance in the future, which means it wouldn’t be of much use to CRM developers now.

It’s not available and might never be.

Microsoft release the CRM Developer toolkit as opensource

Microsoft could release the CRM Developer toolkit as an opensource project and allow the CRM community to update the CRM developer toolkit.

Is it available now?

No, it’s just the Hosk thinking out loud.

Pro’s

It would allow the CRM developer toolkit to be quickly updated to work with CRM 2015 and Visual Studio 2013.

The Microsoft Dynamics CRM community has many talented CRM developers who could work on improving the CRM developer toolkit.

Con’s

An open source CRM developer toolkit could become bloated with functionality not needed by the majority

The CRM community creates a CRM Developer Toolkit Replacement

The initial purpose of this blog post was to highlight, promote and push people towards Jason Lattimer’s post

Possible Developer Toolkit Replacement?

The templates idea is good and you can see how you can use it to quickly create plugins, although the current solution would involve you then registering the plugin using the Plugin Registration tool and I think this might put some developers off.

CRM MVP Tanguy makes an interesting suggestion, which you can read in the comments

For plugin deployment, did you think about using class attributes to describe how the plugin should be registered?

 

I think it would be a great idea to store a few fields to indicate how to register the plugin and I think it would need something to select the filter fields and image fields, rather than letting the developer paste a list of strings (which gets created by the CRM developer toolkit in the crmregister file)

The enhanced web publisher would be great because Javascript publishing is not great in the CRM developer toolkit.

 

Features I would like

  • Javascript intellisense
  • Deploying plugins with one click from within CRM project
  • early bound file creation, maybe using functionality similar to the CRM Early bound generator

These are my thoughts, please go to Jason’s page and leave your thoughts, insights and support

Is it available now?

No, Jason is still working on it and hasn’t released it as open source but I believe he is planning to.

Pro’s

The CRM community has a lot of talented and active CRM developer would have a history of creating free tools for particular problems/needs.

An open source CRM Developer toolkit replacement could have the potential to create an excellent tool to aid CRM development and add features at a faster rate than the very busy Microsoft developers.

An open source CRM Develoepr toolkit replacement would hopefully be less likely to arrive in the current situation of no compatible toolkit for a new release of CRM/Visual studio.

Con’s

It would involve CRM developer devoting some of their free time to develop a CRM Developer toolkit replacement.

It could take some time before it contains enough features to seriously rival the functionality in the current CRM Developer toolkit.

 

What’s new in CRM 2015 SP1 for developers, customizers and admins

When there is a new release for CRM the SDK publishes a what’s new.  I recommend CRM developers read this, I have written a blog post about the subject

Why developers should read the CRM SDK what’s new

Here is my quick review of the last one

CRM 2015 – Hosk takes a peak at the CRM 2015 SDK

CRM 2015 and this update and with this particular update Microsoft seem to be adding lots of useful functionality for developers rather than front end functionality.  This is one of the major development releases for Microsoft Dynamics CRM since I have been a CRM developer.

The consolidation of functionality CRM 2015 is a good idea and will be beneficial to CRM suppliers and CRM developers.

The documentation for CRM 2015 SP1 is excellent.  There are a lot of developer and subtitle updates and added features, all of which are well documentation so thumbs up Microsoft.

My goal of this blog is to summerize the information of the CRM 2015 SP1 update

  • Give useful links
  • condense information
  • Hosk thoughts on the functionality

Useful links for Administrator’s and Customizers

Below is a collection of links about CRM 2015 SP1 in general and not focusing on the Developer enhancements.

CRM Online 2015 Update 1: official pre-release content is here!

This what’s (new is good for non Developer related highlights)

CRM 2015 Update 1 videos

What’s new for administrators and customizers in Microsoft Dynamics CRM 2015 and CRM Online

What’s new for developers

There is so many juicy news bits of functionality, I recommend you read the what’s new for Developers in it’s full glory.

What’s new for Microsoft Dynamics CRM Online 2015 Update 1

Upgrade considerations

This technet article was interesting

Before you upgrade: issues and consideration

IE 10 and 11 are only supported in CRM 2015

Those upgrading from CRM 2013, in CRM 2013 CRM had base and extensionBase tables but these are merged.  There is a section called

Base and ExtensionBase table merge cannot be deferred (if you didn’t know Microsoft got rid of the ExtensionBase table and now only have one table for each entity)

To find out the amount of table data that will be merged during upgrade, see Determine how much ExtensionBase table data will need to merge.

This is a great example why you should never write customizations (web services, reports or plugins,  I’m sure there will be some developers who have written reports based on the extension and base table which will all break when upgrading to CRM 2015.

The page states in place upgrades are not supported for these products (which is worth keeping in mind)

  • Microsoft Dynamics CRM 2013 Reporting Extensions (on-premises only)
  • Microsoft Dynamics CRM 2013 Email Router
  • Microsoft Dynamics CRM List Component for SharePoint Server

Updating CRM 2015 online

I will admit to not knowing if this was changed or if I have just read about it.

Manage Microsoft Dynamics CRM Online updates

The technet article mentions the functionality of delaying and choosing a time to schedule your CRM update.  The bottom line is you have to approve the update before it is applied.

The article mentions you can choose not to deploy an update.  I have wondering what happened to CRM online instances which automatically updated and the chaos in panic testing this would bring about with a set deadline in place.  Some CRM organisation have lots of customizations need a lot of testing.  so it can be some time before a company wants to apply a CRM update

What’s new for developers

My initial plan was to review a lot of the changes in a series of blogs but I noticed today that CRM MVP Daniel Cai has already done it.  He has done a great job, awesome work.  So I changed my plan to build on his good work rather than duplicate it.

New SDK Capabilities – CRM Online 2015 Update 1 release

Daniel has written 9individual blog posts which go into detail about the new functionality and with the all important screen shots.  Daniel has done such a great job there isn’t any point in me doing it again.  I have linked to his blogs and given a quick summary of the functionality.

I recommend all CRM developers read Daniels blog links to get a good idea of the new functionality and don’t just read my quick summary

Fantastic functionality which allows you to create alternative Keys.  Alternative key doesn’t make it initially obvious what the functionality does (to me anyway).  It allows you to create a new unique identifier for a record made up of a combination of columns (e.g. think composite key maybe foreign key).

The columns used to create the alternate key must be either String/Integer/Decimal.

CRM will index these in the background and you can monitor the creation –  Monitor index creation for alternate keys

The result of this means it’s easier to create/update records in CRM and in applications integrating with CRM.

When I read about Upsert I thought it was a joke, Upsert.  The functionality although sounds funny is a great idea.  The premise is it’s an Update and insert.

When using an upsert the functionality checks to see if the record exists, if it does it updates the record. If the record doesn’t exist it creates the record.

Simple but very effective because for integrating applications it avoids the round trip of checking to see if records exist and then choose to create or update.

Another pragmatic piece of code.  This improved functionality allows standard calls to do things like assign values, setting state, before the update you need to use special messages.

This post will give you more details

Perform specialized operations using Update

CRM Online instances can turn on plugin tracing logging, which creates a trace file you can look at.  Very useful considering you couldn’t view any logs before (because you can’t get onto the server).  This would allow you to view the values used in your plugins.

Entity change tracking allows you to detect if the data you retrieve has changed.  This would enable you to do a retrieve and only return the data which has changed from your initial retrieve.

This page from Microsoft will give you more detail and the title explains it’s intended use

Use change tracking to synchronize data with external systems

More CRM integration changes.  This functionality allows you to batch a bunch of actions into one transaction.  You can roll the transaction back if any of them error.  Microsoft Calls this Multiple message execution

Very useful for code integrating with CRM.  Read more on the CRM SDK – Execute messages in a single database transaction

This is a biggie.  This functionality tells you if the data you are going to update has been changed in between you retrieving and updating the information.

It uses a RowVersion value to see if the value being updated is the latest and if so it will throw an error, which means you can retrieve the latest and then update.

CRM SDK link – Reduce potential data loss using optimistic concurrency.

You can now check what version the CRM server is running on.  This offers you the ability to create branches in the code to use different functionality.  This could be useful in commercial solutions or maybe creating solutions to work across different CRM versions.

Try the Web API preview

This is interesting, they are offering you a preview but you shouldn’t use it in production environment (It’s not finished yet I guess).  You might be thinking, why do I care about a preview.   The new web api uses OData v4, OAuth 2, and JSON

It’s this line which intrigues me

The preview release allows you to give feedback and get an understanding of what is coming in a future release. The Web API preview shouldn’t be used on production environments and no support is provided. For more information on the next endpoint,

Learn more here – Web API Preview.

Improved Sub Grid Javascript

You can change the selected view for the Javascript and get the entity references easier

Non developer improvements

A quick summary of what’s in here

What’s new

Improved CRM navigation

quick video

The change now shows all the potential links when you click on an area e.g. sales.

So where before you had to scroll along to see the options, now they are all displayed

The recently viewed is a global tool (e.g. available in many parts of CRM) allows you to view recently viewed records and pin items

Themes

You can change the colours and add a logo.  This is like changing your theme in windows.  It will change all the colours of the bar

Watch a short video (2:45) about themes

Theming post from powerobjects

Onenote integration

Track emails with folders

This is a good productivity improvement.  It allows you to track emails in CRM by copying them to a folder.

folder level tracking

Export to Excel

It shows how much CRM developers use excel to export and import data by the fact I was quite excited by this enhancement.

This has been completely rewritten and you can now import/export 100000 instead of the previous limit of 10000.  This is excellent but strikes me as one of those changes which should have be done a while ago but lets not complain because its in now

New export to excel functionality

CRM Gui Customization changes (non code)

This page is very useful

What’s new for administrators and customizers in Microsoft Dynamics CRM 2015 and CRM Online

This page above includes all the changes and updates for non code customizations, which I sometimes call GUI customizations.  It does also mention some config settings

Older than X

this was limited to months but now you can specify minutes, hours, day, week, years.

Older than 5 minutes

Older than 1 year

Older than 2 weeks

Daniel Cai has written a blog post on this if you want to learn more New Query Operators

Date only field

CRM 2015 SP1 can have Date only fields and Time zone indepdent.  This is different from creating Date and time fields but only displaying the date.  Why did it take so long to add this?

Clear field with Business rules

Microsoft keep adding improvements to business rules which is good and need.  The next improvement allows you to clear fields.

Auto Creating CRM records not just for cases

Previous versions of CRM you could create Cases using emails and other social posts.  The documentation says other social messages but for most people this is emails and perhaps phone activities.

This functionality has been extended to sales and marketing.  So emails and other activities can create System or custom entities.

Rollup fields can use AVG

Rollup field can use AVG in calcluations

Mobile phone and tablet apps have been improved and I will expect this to be mentioned in every new release for the forthcoming future.

Final thoughts

A theme of this update is synchronizing CRM with external systems (applications, web services, 3rd party software).  Microsoft have made it much easier and quicker to synchronise data between CRM and other systems whilst adding functionality for checking data (e.g. to avoid overwriting already changed data)

Microsoft shows you how the changes work together

Synchronize CRM data with external systems

These two images from the page above succinctly show you the potential improvements

Before CRM 2015 SP1

After

I can understand these improvements are very useful but what puzzles me slightly is the sudden motivation to add this functionality into CRM 2015.   If anyone knows the reason or has an idea please add a comment.

Most of the CRM projects I have worked on have been extremely customized and used Microsoft Dynamics CRM for XRM developer.  CRM was the framework to build a solution for the customer.  The new updates in CRM 2015 SP1 take this a step further by making it easier to not only create the main solution but create applications to integrate with the CRM solution.

This fits in with Microsoft’s recent tactics of acquiring applications/software and integrating them with Microsoft Dynamics CRM (Parature, Unified Service Desk, MDM, Social engagement).