Microsoft CRM is a great product that provides a very nice application infrastructure. Like any infrastructure, it is not suitable for all situations. Generally speaking here, but CRM is ideal for structured data solutions that require relationships and / or workflows.
We are creating MVC applications with a CRM backend that treats CRM more like an SQL database; however, as a rule, non-CRM users access the portal. Typically, for CRM users, you configure things through JavaScript, plugins (like C #), and iFrames (indicating what you want).
When it comes to Test Driven Development (TDD) or Continuous Integration (CI), you don't need standard CRM tools to help. We have created some tools for automation / assistance in our development, and this is easy to do using the SDK. Module Testing your plugins should work well with what you are doing now. However, you are testing your MVC applications from the user interface, which should also be portable at the moment, so how much you put into your / qa development process is something you can consider with any new framework.
If the CRM part is highly customizable, will we lose the benefits of using Dynamics CRM?
It depends on what you want to do. CRM is relationship based. Therefore, if you want to configure a solution with a bunch of unrelated objects and not use workflows, security, etc., then I would say that CRM is not for you.
Is it faster or slower to develop customized applications to order many business rules in Dynamics CRM as opposed to a custom MVC application?
As a rule, itβs much faster to develop something in the CRM interface than to develop an application other than CRM MVC. Part of the problem will be the increase in your developers.
If the situation was achieved, although the MVC approach would be more applicable, then you could develop an MVC application that negotiates with CRM (or SQL) and is integrated into CRM with left navigation.
What are the known limitations or disadvantages?
Sharepoint is better for unstructured data. So, I would say that this is a weakness of CRM. There are many moving parts to the SQL database that supports CRM, so if you have an SQL application in which you are clustering multiple databases, I would not add the overhead. The only drawback is overclocking.
Like any tool, knowing when to use it against is not key. CRM is not a solution for everything, but I saw how it works wonders for customers in a wide variety of industries.
Full disclosure, I am a developer for Microsoft Partner. I highly recommend that you have a partner who will provide you training, start-up templates, etc., to increase the time of your dev.