Darrin Bishop intros P&P Guidance for SharePoint Development
At tonight’s Atlanta SharePoint User Group (#atlspug), Darrin Bishop (@bishopd) introduced us to the Microsoft developer guidance for SharePoint 2010 developers developed by the Patterns and Practices group. For the uninitiated, this is a fantastic set of guidance and reference applications such as guidance around data storage and a reference logging application.
Darrin started out with an explanation of how to appropriately create executable code by understanding SharePoint’s execution models. For example, we discussed how to create a sandbox solution which executes a workflow, something which is not normally allowed in a sandbox solution.
After understanding a bit more about execution models, Darrin turned to data models and tried to impart some guidance around data storage, classification, and access. The example we investigated was how list relationships worked, including lookup columns, projected columns and the referential integrity considerations.
After a quick tour through data model approaches, Darrin covered the client side object model and the different considerations for application development. Topics covered included batching of communications and call-back methods, building locally executing web parts which use client side OM approaches to asynchronously retrieve data.
The application foundations section of the presentation covered unit testing, service locator, logging, and application settings management. Unit testing specifically introduced the Microsoft Research project Pex and Moles. While Darrin only spent a small amount of time talking about the service locator pattern and the architectural implications of dependency injection, I personally went off on a tangent researching it in a bit more detail and as a result I completely missed his coverage of application settings management.
All of the above covered the slide deck, which will eventually be available on the Atlanta SharePoint User Group site for download. We spent the second half of the meeting buried in code, demonstrating all of the aforementioned practices and application blocks.