The Web Part Infrastructure Uncovered - by Teun Duynstee
In ASP.NET, a large number of features hide that are hardly discovered by most, even experienced developers. In my opinion, the Web Part Infrastructure is one of those. People tend to think that is is just a nice gadget, but not suitable for "real applications". It turns out the the Web Part Infrastructure is a very solid and versatile ground work for building customizable web based user interfaces.
If Microsoft thinks that this technology makes a firm base for building Sharepoint on top of it, why wouldn't you? I must say while I ventured deeper into the framework, I was more and more impressed by it's design and flexability. It really is a nicely designed piece of UI framework.
So I wrote this book about it: it is the book I would have liked to have myself. It is not 500 pages, but a mere 135. It has strong focus on the subject: web parts. Nothing more. It touches on how web parts are used in Sharepoint, but it is not a Sharepoint book. It shows how the provider model is used to store the web part personalization, but will not go into writing your own providers.
It explains the web part basics, showing how to make a basic web part page and how to set up your runtime environment for web parts to work (no matter what Microsoft says, this causes people quite some headaches). Then we move on and look at the more advanced ways to customize the framework to your liking and purpose. We will add custom menu items to parts, create custom designers and custom catalogs. We dive into connectable web parts and "transformers".
The book comes with a source code download. You can download it here for free. Many of the samples in the code are explained in the book, but feel free to use the code if you think you don't need the book to understand it (no warranties, all code provided as is).
If you want to have a look before you buy, you can freely download the first introductory chapter (including the full table of contents) and one of the more advanced chapters, chapter 8 on connectable web parts.