Microsoft Dynamics CRM 2011 has been out for several months now, and there has been plenty of discussion about new features from a user perspective; dashboards, the ribbon, processes (wizards) - and yes, all of these are great features. However, there have also been a number of behind-the-scenes changes which affect developer interaction with the product and I thought I'd share my thoughts on two of them.
Previously in CRM 4.0, developing JavaScript for entity forms was a little painful. Reuse was impossible to achieve in a supported manner. If you had to utilise the same code in multiple field events, it was a case of copy-and-paste; thus duplicating code and creating a maintenance nightmare if logic required changing. In CRM 2011, Microsoft have introduced the idea of JavaScript Libraries. This allows us as developers to create reusable chunks of code in a single place, and include them in multiple entity forms. Changes to the JavaScript library automatically update all the other forms, so no more multiple updates! It also opens up the possibility of including publicly available JavaScript libraries (JQuery for example), to make tasks easier, such as interacting with web services.
Another excellent addition to CRM 2011 has been the OData web service endpoint. In CRM 4.0, the only way of querying data from JavaScript without writing our own web service, was through building up XML-based web service requests and processing the XML response. In CRM 2011, we can write a small OData query which is sent as part of the URL and actually get the result back as JavaScript objects (JSON) - so no more XML to process! This allows us as developers to more quickly and easily query CRM data from JavaScript within a CRM form - which is a very good thing considering a large proportion of CRM development involves querying data from other (related) entities, or validating inputs against existing data. It's also worth mentioning that the introduction of the OData web service makes it much easier to extract CRM data from a non-.NET environment, opening up further integration possibilities.
So, from a developer perspective, those are a just a couple of new features which make working with Dynamics CRM a more pleasant experience. There are plenty more: .NET Workflow 4.0, Sandboxing, Solutions, etc. - but it's safe to say that the JavaScript changes and OData web service are the two that have saved us the most pain so far! More importantly though, these features provide clear business benefits due to reduced maintenance time, easier development, and greater interoperability.