Microsoft Dynamics CRM: a development platform?
Dynamics CRM 3.0 is the Microsoft solution for customer management. It relies on Microsoft Server platform, it’s a web based application licensed per-user and tightly intergrated with Office.
It supports customization in varioius way: from the simplest, as the workspace that every user can personalize or the web forms that can be edited, to the more sophisticated like the modifications that can be done to the business logic throught a relative easy-to-use graphical interface: you can edit native entities (such as Contact, Account, Case, etc…) by adding/modifyng fields and relations between entities and create your custom enties.
Substantially Microsoft CRM offers you a complete and powerful O/R Mapper with web based interface for entities editing plus a totally automated generation process of the web forms the will operate on to complete their tasks.
Further more CRM exposes a web service to support software interaction: basically it allows CRUD operations to be accomplished against the appllication datasource. The great thing here is that entities you design via the application web interface are immediately exposed by the web service: the WSDL contains all the entities definitions and, if you work with Visual Studio, you can, in seconds, obtain classes representing the entities in your application domain.
In some cases (take a look here) these features lead to the assumption that Microsoft CRM can be a development platform, or, at least, part of it; and Microsoft it’s self is supporting the idea. Is this a valid assumption? I think it may be. But if you are involved into the planning/design/development of an Enterprise Application, you must carefully evaluate what it can and what it cannot do. Some of its limits, in fact, make clear that it was not designed to be a development platform, and that this conviction emerged after it was released. I’m not saying that adopting Microsoft CRM as a development platform isn’t possible. May be is it in some cases. In making your choice you have to carefully match your requirements with what Microsoft offers and don’t offes.
Details like no transaction support, web service as the only channel for CRUD operations when interacting via software (only read can be run directly against the db) and the lack of a smart notifications/events system can assume, in a large application like an Enteprise one, great importance.
I will dedicate my next posts to analyze these limits and present my solutions to some of these.
Share this post:Email it! | to del.icio.us! | digg it! | reddit! | Furl it! | To any service