Take the 2-minute tour ×

I have some possibly ambiguous questions, I'm not sure if I'll get the right answer but thought I would put it out there, as not sure where else to get the answers.

As a department have spent the last 2 years implementing various modern development practises, Agile, Scrum, TDD, Continuous Integration, MVC.

My company is now going to move to Microsoft Dynamics CRM, (currently we use a 3rd party product). They want to use Dynamics as a CRM, but also for bespoke custom development, From doing some reading and background learning I can appreciate Microsoft Dynamics is an excellent product, that has its place, and solves a problem for a lot of businesses. My knowledge of Microsoft Dynamics is from the following videos. http://channel9.msdn.com/Series/DynamicsCRM2011

Our implementation is likely to be highly customised to the business, we will also build a whole lot of custom apps within Dynamics CRM. My company is a Microsoft house, so we already use .NET, SQL Server etc.

My questions:

  • Does Microsoft Dynamics allow for modern development practises such as TDD, Continuous Integration, MVC?

  • If the CRM part is highly customised will we lose the benefits of using Dynamics CRM?

  • What is its reputation as a product in the marketplace?

  • Is it faster or slower to develop bespoke custom applications with lots of business rules in Dynamics CRM as opposed to a custom MVC app?

  • What are the known limitations or drawbacks?

  • What are other good alternatives, if any?

I realise there is no answer, only opinions, if anyone has used or has a point of view or can point me to some good links that balance opinion and fact, it would be much appreciated.


share|improve this question

closed as off topic by Ben, Will Jul 5 '12 at 15:58


1 Answer 1

up vote 8 down vote accepted

Microsoft CRM is an awesome product that provides a very nice application framework. Just like any framework, it isn't the best fit for all situations. Speaking generally here, but CRM is the perfect fit for solutions with structured data requiring relationships and/or workflows.

We build MVC apps with a CRM backend that treats CRM more like a SQL database; however, those are generally for non-CRM users accessing a portal. Typically for your CRM users, you are customizing things via JavaScript, plugins (e.g. C#), and iFrames (pointing to whatever you want).

When it comes to Test Driven Development (TDD) or Continuous Integration (CI), there are no standard CRM tools to assist you. We have built some tools to automate/assist with our development and it's easy to do so with the SDK. Unit Testing your plugins should fit nicely with whatever you're doing now. However you are testing your MVC apps from the UI currently should also still carry over, so how much you have put into your development/qa process is something to consider with any new framework.


This depends on what you are wanting to do. CRM is built on relationships. So if you want to customize the solution with a bunch of non-related entities and not use the workflows, security, etc. then I'd say CRM isn't for you.


Typically it is significantly faster to develop something within the CRM interface than developing a non CRM MVC application. Part of the problem will be ramping up your developers.

If the situation struck though where an MVC approach would be more applicable, then you could develop an MVC app that talks to CRM (or SQL) and is integrated in CRM with the left hand navigation.

What are the known limitations or drawbacks?

Sharepoint is better for unstructured data. So, I'd say that is a weakness of CRM. There are a lot of moving parts inside the SQL database supporting CRM, so if you had an SQL application where you were clustering the multiple databases, then I wouldn't add the overhead. The only other drawback is ramp-up.

Like any tool, knowing when to use it versus not is key. CRM isn't a fix all for everything, but I've seen it work wonders for customers across a wide range of industries.

Full disclosure, I am a developer for a Microsoft Partner. I highly recommend you having a partner that would provide you with training, starter templates, etc. to ramp up your dev time.

share|improve this answer
Thanks for your comments, very useful. Will think about the partner option too, sounds like a good tip. –  Dr. Jul 4 '12 at 16:39
