Recently the Patterns & Practices (P&P) group at Microsoft announced their completion and public availability of the SharePoint 2010 Guidance (SPG). The SPG provides technical details on key areas of SharePoint 2010 app development and contains a written guide (as a compiled CHM help file), reference implementations with source code and fully documented in the CHM as well as a library of reusable code. As they describe it:
Developing Applications for SharePoint 2010 contains guidance documentation, detailed examples, and a reusable class library. These resources are designed to help solution developers and architects make the right decisions and follow proven practices when designing and developing applications for Microsoft SharePoint 2010. The guidance focuses on the building blocks that every developer needs to understand to become an effective SharePoint developer or architect. The guide is provided as a Help (.chm) file and has four core areas: application foundations, execution models, data models, and client models. Eight reference implementations illustrate the core concepts covered in the guide. The reusable class library provides code to help developers build more manageable, flexible, and testable applications. Source code is provided for all reference implementations and for the reusable library. The reference implementations have automated setup scripts to configure the applications.
The SPG is filled with a lot of cool stuff. One bit of reusable code is the SharePoint Logger. This makes it much easier to write to the Windows Event Log as well as the SharePoint Unified Logging Service (ULS) logs. You'll also find details on unit testing your application.
Another piece of the SPG provides guidance when doing different various data access techniques / tasks in SharePoint 2010. From working with data in lists to the different data access techniques to working with data that's external to SharePoint, there is quite a bit of guidance on things you should be considering when working with data in SharePoint. This is just a tip of what you'll find... you'll also find models and guidance on building client applications as well.
While all this guidance is helpful, what I always find missing is a sample app to pick through. That's where the SPG steps in. What you'll find are these things called reference implementations (RI's). Each RI addresses a different commonly experienced challenge from external lists, workflows, working with the sandbox and also working with full-trust proxies within the sandbox. Not only will you find executable code, but you'll also find documentation that walks through each RI explaining it piece by piece.
Simply put, the SharePoint 2010 Guidance is a must read and a tool that should be in every SharePoint developer's toolbox.