A Division of Microsoft Corporation
One Microsoft Way
Redmond, Washington 98052-6399
© 2007 by Daniel Larson and Ted Pattison9780735623200
All rights reserved. No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.
Library of Congress Control Number: 2007920382
1 2 3 4 5 6 7 8 9 QWT 2 1 0 9 8 7
Distributed in Canada by H.B. Fenn and Company Ltd.
A CIP catalogue record for this book is available from the British Library.
Microsoft Press books are available through booksellers and distributors worldwide. For further information about international editions, contact your local Microsoft Corporation office or contact Microsoft Press International directly at fax (425) 936-7329. Visit our Web site at www.microsoft.com/mspress. Send comments to email@example.com.
Microsoft, Microsoft Press, Active Directory, Excel, InfoPath, IntelliSense, Internet Explorer, MSDN, Outlook, PowerPoint, SharePoint, SQL Server, Visual Basic, Visual Studio, Windows, and Windows Server are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. Other product and company names mentioned herein may be the trademarks of their respective owners.
The example companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred.
This Book expresses the author’s views and opinions. The information contained in this book is provided without any express, statutory, or implied warranties. Neither the authors, Microsoft Corporation, nor its resellers, or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by this book.
Acquisitions Editor: Ben Ryan
Project Editor: Kathleen Atkins
Editorial and Production Services: Custom Editorial Productions, Inc.
Technical Reviewer: David Robinson; Technical Review services provided by Content Master, a member of CM Group, Ltd.
Body Part No. X13-23792
To Annabelle, Daisy, Sophie, and Amy. You are the only
components that my farm will always want to run
with Full Trust and Unconditional Love.
To Sallina. You are my passion, my inspiration, my muse,
and my love. To our unborn child, you are loved
more than words can express.
I guess I should start at the beginning. It was Mike Fitzmaurice (aka Fitz) who invited me up to the Microsoft campus in Redmond in June of 2005. On the phone, Fitz told me I was going to get a sneak peak at some of their “new stuff” that was still in a top-secret alpha cycle. While I was in town, Fitz introduced me to a handful of program managers on the SharePoint team who turned out to be invaluable resources as Dan and I did the research to write this book. Of all the helpful people who took time to answer our questions, we would especially like to thank Mike Ammerlaan, the ultimate answer man, who seems to possess an all-encompassing and infinite understanding of how Windows SharePoint Services works from the inside out.
Later in the summer of 2005, I began work on a project with the Microsoft Developer Platform Evangelism group to author and teach a developer-focused training course on SharePoint 2007 technology. I was teamed and became good friends with the legendary Patrick Tisseghem of U2U to create slides and lab exercises. I would like to thank Mauricio Ordonez and Scott Burmester for giving me the opportunity to work on this project. I would also like to thank those I worked with, including Rob Barker, Chris Predeek, Doug Mahugh, Christin Boyd, and Don Campbell; all of these people helped to build my understanding of Windows SharePoint Services and the surrounding technologies.
I would also like to thank all those who contributed their time to reviewing chapters. David Robinson technically reviewed all the chapters and provided some great insights. I was lucky enough to have some of the industry’s finest reviewing my workflow chapter, including Eilene Hao, Dharma Shuklaa, Gabe Hall, Scot Hillier, Robert Bogue, and Ken Getz. We were also very fortunate to have Morgan Everett, Mark Collins, and Stephen Terlecki perform in-depth and very timely reviews of Dan’s chapter on AJAX Web Parts.
I owe a large debt of gratitude to the SharePoint MVP community. First, I want to acknowledge what an excellent job that Lawrence Liu and April Dalke have done to bring this community together. We have a private distribution list where we all share our experiences with one another on a daily basis. I’d like to thank those SharePoint MVPs who post regularly and have taught me so much, including Adam Buenz, Amanda Murphy, Andrew Connell, Bob Fox, Bil Simser, Bill English, Bob Mixon, Carlos Segura Sanz, Cornelius J van Dyk, Darrin Bishop, Brad Smith, Dustin Miller, Eli Robillard, Erol Giraudy, Gary Bushey, Göran Husman, Heather Solomon, Jan Tielens, Jason Medero, Joel Ward, John Holliday, Joris Poelmans, Kevin Laahs, Loke Kit Kai, Luis Du Solier Grinda, Mads Nissen, Mark Kruger, Matthew McDermott, Mei Ying Lim, Michael Greth, Michael Noel, Mike “the Enforcer” Walsh, Nick Swan, Renaud Comte, Robert Bogue, Shane Perran, Shane Young, Spencer Harbar, Stacy Draper, Stephane Cordonnier, Stephen Cummins, Steve Smith, Steven Collier, Todd Baginski, Todd Bleeker, Todd O. Klindt, Pierre Vivier-Merle, Woody Windischman, and Xi Chen.
I must also thank my technical peer group known as the DevelopMentor alumni crowd. I will always fondly remember my time at DevelopMentor back in the mid-to-late 1990s when Don Box was in charge, COM was still loved, and the Internet bubble was growing bigger with each and every day. I had the good fortune to forge friendships and become technically engaged with true geniuses, such as Don Box, Chris Sells, Tim Ewald, Brent Rector, John Lam, Ingo Rammer, Aaron Skonnard, Ian Griffiths, Keith Brown, Fritz Onion, Jon Flanders, Mike Woodring, Ted Neward, Andrew Gayter, Bob Beauchemin, Brian A. Randell, Brian Maso, Brock Allen, Cal Caldwell, Craig Andera, Dan Sullivan, Dan Weston, Daniel Sinclair, Dominick Baier, Doug Turnure, Dr. Joe Hummel, George Shepherd, Henk de Koning, Jason Masterman, Jason Whittington, Jim Wilson, Kent Tegels, Kevin Jones, Kirk Fertitta, Marcus Heege, Mark Taparauskas, Matt Milner, Niels Berglund, Scott Bloom, Simon Horrell, Steve Rodgers, and Martin Gudgin. And all of us are very grateful that Craig Andera was willing to run the mail server with the DevelopMentor alumni distribution list out of his basement for the first few years, just to keep this peer group connected with its technical insights and its unique brand of humor.
I would like to thank all those at Microsoft Press who helped me publish this book. I was lucky enough to work with Ben Ryan as my acquisitions editor and Kathleen Atkins as my production editor. As future would have it, these are the same two people I worked with in the previous millennium when I published my first Microsoft Press book on VB and COM in 1998.
Finally, I would like to thank Dan Larson, my partner in crime. Thanks for your willingness to jump into the mix and help me ship this book in 2007. Thanks for your insights into list schemas, site definitions, and CAS security settings and for significantly improving the final manuscript. I was particular impressed with your mastery of WSS integration with AJAX extensions for ASP.NET and your ability to write about it without any substantial resources and get it into our book in such a timely fashion. You, sir, have truly earned the nickname, “Captain AJAX.”
Although many of my acknowledgments remain the same as Ted’s, I owe a great deal of my experience to Microsoft Consulting and the developer community in Denver, Colorado. Anthony Petro and Marcus Hass were instrumental in providing guidance and in-depth knowledge of the WSS platform early on, including some of the first large-scale Internet-facing deployments of WSS and SharePoint Portal Server. We learned a lot in those days about stripping WSS down to its core platform elements and building new experiences based on that; many of those concepts will come through in this book.
I would also like to thank the Microsoft Consulting teams I’ve worked with, including Scott Short. Scott was particularly instrumental in teaching me to write SDK components for developers, a key theme that has resounded in many of my projects and will come through in this book as well. He taught me to write frameworks instead of applications and to work with developer teams to ensure successful technology adoption.
The clients we worked with over the years have also provided the real-world experience that this book builds on, and I’d like to thank David Levstik, David Weinstein, John Daniels, Lei Yu, Jack Deverter, and the rest of the client teams I’ve worked with over the years.
The Denver developer community that includes Joe Mayo and Roy Ogborn has been instrumental in mentoring me throughout my career and teaching me most of what I know about C#, ASP.NET, and the Microsoft technology stack, and I’d like to thank you in particular. Chris Wallace and the Denver Visual Studio .NET User Group have also been instrumental in providing those early opportunities to speak on .NET and SharePoint technologies, as well as the Rocky Mountain SharePoint User Group, including Kris Syverstad and Matt Passannante.
I would also like to thank my developer team at NewsGator for providing a lot of real-world experience and feedback into the AJAX architecture patterns we present in this book. A special thanks to Lane Mohler, Brian Agnes, Sherstin Lauman, Darrin Long, Josh Aragon, and Tom McIntyre.
I also owe my wife Sallina a great deal of gratitude for her patience and support throughout the book’s development cycle. Sallina, I could not have written this book without you.
Finally, I would also like to thank Ted for his contributions to my content and for the collaboration we did throughout the book. We truly had a great time writing together, and we hope that shows throughout the book! We hope you enjoy this book as much as we enjoyed writing it.