TaBle 1-1 a Brief History of SharePoint Year Core Infrastructure Product Business Value Product 2001 SharePoint Team Services SharePoint Portal Server 2001 2003 Windows SharePoint Servic
Trang 2Ted Pattison Andrew Connell Scot Hillier
Trang 3O’Reilly Media, Inc
1005 Gravenstein Highway North
Sebastopol, California 95472
Copyright © 2011 by Critical Path Training, LLC
Complying with all applicable copyright laws is the responsibility of the user All rights reserved Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without express written permission of O’Reilly Media, Inc
Printed and bound in the United States of America
1 2 3 4 5 6 7 8 9 M 6 5 4 3 2 1
Microsoft Press titles may be purchased for educational, business, or sales promotional use Online editions are also
available for most titles (http://my.safaribooksonline.com) For more information, contact our corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com Visit our website at microsoftpress.oreilly.com Send comments to mspinput@microsoft.com.
Microsoft, Microsoft Press, ActiveX, Excel, FrontPage, Internet Explorer, PowerPoint, SharePoint, Webdings, Windows, and Windows 7 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.Unless otherwise noted, the example companies, organizations, products, domain names, email addresses, logos, people, places, and events depicted herein are fictitious, and no association with any real company, organization, product, domain name, email 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 author, O’Reilly Media, Inc., Microsoft Corporation, nor their respective resellers or distributors will be held liable for any damages caused or alleged to be caused either directly or indirectly by such information
Acquisitions and Development Editors: Martin DelRe and Kenyon Brown
Production Editor: Holly Bauer
Editorial Production: Custom Editorial Productions
Technical Reviewer: David Mann
Indexing: Fred Brown
Cover: Karen Montgomery
Compositors: Octal Publishing, Inc., and Nellie McKesson
Illustrator: Robert Romano
978-0-735-62746-8
Trang 4This book is dedicated to Patrick Tisseghem, our dear friend and colleague, who passed away at the beginning of this project Those who were fortunate enough to know Patrick remember him and his outgoing sense of humor, his knowing smile, and his ability to completely explain complex topics using
simple concepts and examples.
Patrick, we all learned so much from knowing you and working with you Many of your keen insights and clear explanations of SharePoint that you shared with us live on in this book We miss you, all your blog
readers miss you, and the entire SharePoint platform misses you as well.
Trang 6Contents at a Glance
1 SharePoint 2010 Developer Roadmap 1
2 SharePoint Foundation Development 35
3 SharePoint Developer Tools in Microsoft Visual Studio 2010 69
4 Sandboxed Solutions 89
5 Pages and Navigation 117
6 Controls and Web Parts 169
7 Lists and Events 225
8 Templates and Type Definitions 277
9 Accessing Data in Lists 319
10 Client-Side Programming 353
11 Creating and Developing Workflows 393
12 SharePoint Security 455
13 Business Connectivity Services 485
14 Enterprise Content Management 535
15 SharePoint Search 569
Trang 8Table of Contents
Foreword xv
Acknowledgments xvii
Introduction xix
1 SharePoint 2010 Developer Roadmap 1
SharePoint Foundation 2
SharePoint Foundation Architecture 3
SharePoint Farms .5
Web Applications 8
Service Applications 10
SharePoint Server 2010 13
Sites 14
Customizing Sites 17
SharePoint Designer 2010 20
Site Customization vs SharePoint Development .22
Windows PowerShell Boot Camp for SharePoint Professionals 23
Learn Windows PowerShell in 21 Minutes 24
The Windows PowerShell Integrated Scripting Environment (ISE) 28
The SharePoint PowerShell Snap-in 30
Conclusion .33
2 SharePoint Foundation Development 35
The Server-Side Object Model 35
Creating the Hello World Console Application 36
Enabling the SharePoint Developer Dashboard 39
Developing SharePoint Solutions 40
Developing a SharePoint Solution Using a Class Library Project 41
The SharePoint Root Directory 42
Creating a Feature Definition 44
Creating a Solution Package 50
Feature Upgrade Enhancements in SharePoint 2010 61
Conclusion 68
3 SharePoint Developer Tools in Microsoft Visual Studio 2010 69
Life Before SharePoint Developer Tools 69
Getting Started with the SharePoint Developer Tools 71
What do you think of this book? We want to hear from you!
Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you To participate in a brief online survey, please visit:
microsoft com/learning/booksurvey
Trang 9Using SharePoint Explorer 71
Adding a Feature Receiver 76
Adding a SharePoint Project Item 78
Deployment and Testing 82
Working with Mapped Folders 84
Conclusion .87
4 Sandboxed Solutions 89
Understanding the Sandbox 90
Building a Basic Sandboxed Solution .91
Understanding the Architecture .95
Understanding Solution Restrictions 97
Designing a Sandboxed Solution 100
Understanding Full-Trust Proxies 104
Administrating Sandboxed Solutions 108
Using Central Administration Tools 108
Validating Sandboxed Solutions 111
Using Windows PowerShell for Administration 114
Using Site Collection Tools 115
Conclusion 116
5 Pages and Navigation 117
SharePoint Foundation Integration with ASP NET 117
ASP NET Fundamentals 118
SharePoint Web Applications 121
Web Application Configuration Files 123
The Virtual File System of a Site 125
Page Templates and Ghosting 128
Application Pages 130
Master Pages 133
Creating Site Page Templates 138
Creating Pages in Sandboxed Solutions 141
The Module SharePoint Project Item Type 141
The SandboxedSolutionPages Sample Project 145
Creating Web Part Pages 147
Creating Output References to Integrate Silverlight Applications 149
Creating Pages in Farm Solutions 151
Navigation Support for Application Pages 156
Custom Breadcrumb Navigation Using a Site Map 157
Creating a Reusable Branding Solution 159
Deploying a Custom Master Page 160
Deploying CSS Files and Images to the Style Library 162
Conclusion 166
Trang 10Table of Contents ix
6 Controls and Web Parts 169
Developing with Controls 169
The WingtipControls Sample Project 170
Safe Mode Processing and Safe Controls 172
Using a Custom Control to Create a Menu 175
User Controls 178
Delegate Controls 182
Developing Web Parts 186
Web Part Fundamentals 187
Web Part Output Rendering 196
Persistent Properties 203
Custom Editor Parts 206
Web Part Verbs 208
Web Parts Connections 211
Asynchronous Processing 216
Conclusion 223
7 Lists and Events 225
Creating Lists 225
Fields and Field Types 229
Views 235
Site Columns 236
Content Types 241
Working with Document Libraries 248
Creating a Document Library 249
Adding a Custom Document Template 250
Creating Document-Based Content Types 252
Programming with Documents 254
Creating Documents with Code 255
Creating and Registering Event Handlers 258
Event Receiver Classes 260
Registering Event Handlers 261
Programming Before Events 268
Programming After Events 273
Conclusion 275
8 Templates and Type Definitions 277
Field Type Definitions 277
Creating Custom Field Types 278
Creating a Custom Field Control 284
List Definitions 292
Creating Site Column Definitions 294
Creating Content Type Definitions 296
Creating List Definitions 298
Feature Activation Dependencies 302
Trang 11Site Definitions 304
Configurations and Web Templates 305
ONET XML: The Site Definition Manifest 306
The Global Site Definition 310
Creating and Initializing Sites 312
Creating a Site Provisioning Provider 314
Conclusion 318
9 Accessing Data in Lists 319
Using the Basic List Object Model 319
Querying Lists with CAML 321
Querying Joined Lists 323
Querying Multiple Lists 324
Throttling Queries 327
Introducing LINQ 329
LINQ Overview 330
Understanding LINQ Language Elements 331
Working with LINQ to SharePoint 335
Generating Entities with SPMetal 335
Querying with LINQ to SharePoint 340
Adding, Deleting, and Updating with LINQ to SharePoint 342
Working with Document Libraries 344
Using the Basic Library Object Model 344
Working with Open XML 347
Conclusion 352
10 Client-Side Programming 353
Understanding Client Object Model Fundamentals 353
Understanding Contexts 355
Loading and Executing Operations 356
Working with the Managed Client Object Model 359
Handling Errors 359
Understanding Authentication and Authorization 362
Creating, Updating, and Deleting 364
Working Asynchronously 367
Working with the Silverlight Client Object Model 368
Introducing Silverlight Development 368
Asynchronous Programming with Silverlight 371
Error Handling in Silverlight 374
Passing Parameters to Silverlight 374
Creating a Custom Silverlight Host 376
Working with the JavaScript Client Object Model 378
Setting Up a Basic Page 378
Handling Errors in the JavaScript Client Object Model 380
Trang 12Table of Contents xi
Debugging JavaScript 382
Working with AJAX 382
Using Object-Oriented JavaScript 384
Working with jQuery 387
Working with WCF Data Services 388
Getting Started with WCF Data Services 389
Using WCF Data Services in Visual Studio 390
Conclusion 391
11 Creating and Developing Workflows 393
What Is Workflow? 393
SharePoint Workflow Fundamentals 395
The User Experience in a SharePoint Workflow 397
Creating Custom Workflows 399
SharePoint Designer 2010 399
Getting Started 400
Creating a Workflow with Visio and SharePoint Designer 409
Developing Custom Workflow Components 417
Developing Custom Actions 419
Developing Custom Workflow Templates 426
Conclusion 453
12 SharePoint Security 455
Authentication, Authorization, and Identities 455
User Information List 458
Users and Groups 459
Application Pool Identities 462
SHAREPOINT\SYSTEM Account 462
Delegating User Credentials 466
User Impersonation with the User Token 467
Securing Objects with SharePoint 468
Rights and Permission Levels 469
Handling Authorization Failures with SPUtility 472
Claims-Based Security 473
Claims Architecture 475
User Claims 476
Custom Claims Providers 479
Conclusion 484
13 Business Connectivity Services 485
Introducing Business Connectivity Services 486
Creating Simple BCS Solutions 488
Creating External Content Types 488
Creating External Lists 491
Understanding External List Limitations 493
Trang 13Understanding BCS Architecture 495
Understanding Connectors 495
Understanding Business Data Connectivity 496
Managing the BDC Service 496
Understanding the BDC Server Runtime 500
Understanding the Client Cache 500
Understanding the BDC Client Runtime 501
Introducing the Secure Store Service 501
Understanding Package Deployment 504
Understanding Authentication Scenarios 504
Configuring Authentication Models 504
Accessing Claims-Based Systems 508
Accessing Token-Based Systems 509
Managing Client Authentication 509
Creating External Content Types 510
Creating Operations 511
Creating Relationships 513
Defining Filters 515
Using ECTs in SharePoint 2010 516
Creating Custom Forms 516
Using External Data Columns 517
External Data Web Parts 518
Creating a Profile Page 519
Searching External Systems 520
Supplementing User Profiles 521
Using ECTs in Office 2010 522
Using the SharePoint Workspace 522
Understanding Outlook Integration 523
Using Word Quick Parts 524
Creating Custom BCS Solutions 525
Using the BDC Runtime Object Models 525
Using the Administration Object Model 528
Creating NET Assembly Connectors 531
Conclusion 534
14 Enterprise Content Management 535
ECM in SharePoint Server 2010 535
“Featurization” of ECM Capabilities for Wide Use 536
ECM Site Templates 536
Document Management 537
Large Lists 537
Check-in/Checkout 539
Document Sets 540
Document IDs 547
Trang 14Table of Contents xiii
Records Management 550
Declaring Records 550
Content Organizer .551
Web Content Management 552
Page Rendering Process 552
Creating New Page Types 554
Content Aggregation with the Content Query Web Part 557
Managed Metadata 559
Term Sets 560
Enterprise Content Types 567
Conclusion 568
15 SharePoint Search 569
Introducing Search-Based Applications 570
Understanding Search Architecture 571
Understanding the Search Service Application 572
Understanding the Indexing Process 573
Understanding the Query Process 574
Introducing Search Web Parts 574
Introducing the Search Object Models 575
Creating Ranking Models 575
Creating a Custom Ranking Model 577
Using a Custom Ranking Model 580
Customizing Search Centers 581
Adding New Tabs 582
Customizing Search Core Results 583
Working with Keyword Query Syntax 588
Working with SQL Full-Text Search 589
Creating NET Assembly Connectors for Search 590
Search-Enabling a Model 590
Implementing Security in Search Results 593
Crawling the NET Assembly Connector 596
Conclusion 596
Index 597
What do you think of this book? We want to hear from you!
Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you To participate in a brief online survey, please visit:
microsoft com/learning/booksurvey
Trang 16signifi-Platform capabilities and tooling combined make SharePoint one of the most ling collaborative platforms in the market today; a platform where many projects seek out custom development Platform capabilities and tooling, though, are just the foundation; to truly build boundless solutions using SharePoint requires a solid understanding of how you can apply those capabilities And as you embark on your custom development projects with SharePoint, it’s important to get the right training and insight into the platform to ensure you not only understand what you can exploit in SharePoint 2010 but also how you can build and deploy compelling solutions
compel-If you’re picking up this book, you’ve probably got more than a casual interest in SharePoint; you’re likely ready to begin or are already actively engaged in SharePoint development SharePoint 2010 offers so much for the developer, ranging from sandboxed solutions, new data modeling and management capabilities, improved user experience programmabil-ity, workflow, line-of-business integration, security, to enterprise content management, and much, much more And to provide you with a clear, concise breakdown of each of these areas and to help you build the professional-grade solutions you need to build, I can’t think of any-body better than Ted, Andrew, Scot, and David to deliver this to you No matter where you
are in your SharePoint development career, Inside Microsoft SharePoint 2010 provides you
with a technical understanding that cuts across new features and functionality, giving you invaluable insight into SharePoint 2010
As you make your way through this book and beyond, I hope you’ll see and experience the great potential that lies within SharePoint 2010 For the developer, it represents a significant shift enabling you to more easily build and deploy great solutions on what is one of the
best collaborative platforms on the market today And in the true spirit of the Inside series,
with this book you’ll get a deep look into the innards of SharePoint 2010; it’s one of the core books you’ll keep on your shelf as a reference that will eventually become dog-eared and tabbed from overuse
Enjoy Inside SharePoint 2010, and best of luck in your SharePoint development!
Steve Fox
Director, Developer & Platform Evangelism
Microsoft
Trang 18Acknowledgments
There are so many people we need to thank for helping us create this manuscript First, we would like to thank the Microsoft folks on the Developer Platform Evangelism (DPE) team, in-cluding Steve Fox, Paul Stubbs, Donovan Follette, Bruno Nowak, Chris Mayo, Roger Doherty, and Neil Hutson They gave us our first opportunity to work with SharePoint 2010 when they hired us to write content for a SharePoint developer’s workshop back in July of 2008 We would also like to thank Wouter van Vugt, the flying Dutchman, who contributed significantly
to this project with his ruthless code samples, his unorthodox presentation styles, and his timely comic relief
There are many others at Microsoft who deserve our thanks for reviewing slides, code ples, and chapters, including Mike Ammerlann, Rob Howard, Brad Stevenson, Mike Morton, Reza Chitsaz, Chris (CJ) Johnson, Ryan Duguid, Paul Andrew, Richard Riley, Mike Gannotti, Arpan Shah, John Durant, Doug Mahugh, Mauricio Ordonez, Elisabeth Olson, Kirk Evans, Pej Javaheri, Steve Tullis, Matthew Burnett, Javier Dalzell, Harneet Sidhana, Eilene Hao, Umesh Unnikrishnan, Boris Scholl, Maxim Lukiyanov, Jie Li, Johanna White, and Jon Flanders There are also folks on the MSDN team who helped in countless ways, including Randall Isenhour, Uma Subramanian, Beck Andros, and Jean Philippe Bagel
sam-We would like to thank our fellow colleagues at Critical Path Training for their valuable sight and feedback during the project, including Maurice Prather, Asif Rehmani, Matthew McDermott, Chris Predeek, and Karine Bosch A special thanks also goes to Meredith Connell, Marshall Butler, and Maggie Smith for keeping our company afloat as the authors constantly disappeared into their SharePoint VMs for days at a time
in-We would like to thank the SharePoint MVP community past and present, whose collective output has taught the industry so much about the SharePoint platform Our special thanks goes out to Melissa Travers, April Dalke, Dan Larson, Spencer Harbar, Rob Foster, Todd (T-Bag) Baginski, Rob Bogue, Dan Holme, Ben Robb, Andrew Woodward, Reza Alirezaei, Eric Shupps, Gary Lapointe, Jan Tielens, Tony Bierman, Natalya Voskresenskaya, Carsten Keutmann, Shane Young, Darrin Bishop, Renaud Comte, Mirjam van Olst, Jeremy Sublett, Loke Kit Kai, Todd Bleeker, Sahil Malik, Bill English, Joris Poelmans, Nick Swan, Matt Ranlett, Dave McMahon, Adam Buenz, Steve Smith, Stephen Cummins, Todd Klindt, John F Holliday, Ton Stegeman, Chandima Kulathilake, Penelope Coventry, Chris O’Brien, Tobias Zimmergren, Waldek Mastykarz, Randy Drisgill, Jeremy Thake, Liam Cleary, Ludovic Lefort, Martin Harwar, Debbie Ireland, Brendon Schwartz, Paul Schaeflein, Becky Bertram, Wictor Wilen, Heather Solomon, Dustin Miller, Cornelius J van Dyk, Bob Fox, and even the infamous Ben “Can you believe I’m still talking” Curry
Trang 19We would also like to thank everyone on the publishing side who made this book possible Thanks to everyone at Microsoft Press and O’Reilly This includes Ben Ryan, who helped us put together the original contract, and the production staff made up of Dan Fauxsmith, Sumita Mukherji, Holly Bauer, and Linda Allen Special thanks goes out to Ken Brown, who had the challenging task of getting us to ship our chapters on schedule If not for Ken and his cattle prod, Ted would no doubt still be writing and rewriting Chapter 5 trying to get the explanation of page ghosting just a tad more clear and concise.
—Ted Pattison
So many people go into writing a book, but I’d like to specifically call out a few of them who made a significant impact in my contributions to this book I’d first like to thank my colleagues Ted Pattison and Scot Hillier, who poured so much of their knowledge into this work I also want to thank my wife Meredith and children Steven and Kathryn for their patience No au-thoring experience can happen without the full buy-in from your family! I would also like to specifically thank Ryan Duguid and Chris Johnson at Microsoft, who shared many conversa-tions around Enterprise Content Management and SharePoint Server 2010 over the last few years Their insight into a lot of the “why” and reasoning behind certain decisions by the product team dramatically helped my understanding of Enterprise Content Management in SharePoint Server 2010
—Andrew Connell
Trang 20The purpose of this book is to help you design and develop custom business solutions for SharePoint 2010, which includes the two products SharePoint Foundation and SharePoint Server 2010 Our goal is to teach you how to create, debug, and deploy the fundamental building blocks such as Features, Pages, Web Parts, Site Columns, Content Types, Event Handlers, and Workflow Templates Once you apply yourself and become comfortable developing with these building blocks, there’s no limit to the types of applications and solutions you can create
on the SharePoint 2010 platform
Who This Book Is For
This book is written for experienced Windows developers who are proficient with Visual Studio, the Microsoft NET Framework, and ASP.NET The code samples in this book are writ-ten in C# and have been created to provide a comprehensive overview of the projects you can create for SharePoint 2010 Our primary audience for this book is software developers and architects looking for expert guidance on designing and developing business applications
on this platform Developers who are new to the SharePoint platform as well as experienced SharePoint developers will benefit from this book
System Requirements
■ You’ll need the following hardware and software to build and run the code samples for this book: Microsoft Windows Server 2008 or Microsoft Windows Server 2008 R2
o The operating system can be installed natively or on a Virtual Machine (VM)
o For a native installation, we recommend at least 4 GB of RAM
o For an installation on a VM, we recommend 8 GB of RAM on most machines
■ Microsoft SharePoint Foundation or SharePoint Server 2010
■ Microsoft Visual Studio 2010
■ Microsoft SharePoint Designer 2010
■ Microsoft Office Visio 2010
Trang 21All the code samples discussed in this book have been added to a single zip archive named InsideSharePoint2010.zip This zip archive can be downloaded from the support page for this book at the following address:
http://www.CriticalPathTraining.com/books/InsideSharePoint2010
This support page also provides a list of errata as well as a reference to step-by-step instructions that you can use to build a VM that is identical to the VM we used to write and test all our sample projects
You can also download the companion code from this book’s catalog page at:
Trang 22It is safe to say that SharePoint technologies have made it into the mainstream of software products used by companies and organizations around the world Today, millions of people work with SharePoint technologies every day, including business users, power users,
executives, site administrators, farm administrators, and professional developers
Microsoft has released four versions of SharePoint technologies, which are listed in Table 1-1 Each SharePoint release has included an underlying core infrastructure product and a second product that adds business value to the infrastructure The core infrastructure product has always been free to customers who already have licenses for the underlying server-side operating system, Microsoft Windows Server Microsoft makes money on SharePoint
technologies by selling customers server-side licenses as well as client access licenses (CALs)
TaBle 1-1 a Brief History of SharePoint
Year Core Infrastructure Product Business Value Product
2001 SharePoint Team Services SharePoint Portal Server 2001
2003 Windows SharePoint Services 2.0 Microsoft SharePoint Portal Server 2003
2007 Windows SharePoint Services 3.0 Microsoft Office SharePoint Server 2007
2010 Microsoft SharePoint Foundation Microsoft SharePoint Server 2010
SharePoint 2001 introduced an environment that allowed users to create sites, lists, and document libraries on demand based on a data-driven design The implementation was based on a Microsoft SQL Server database that tracked the creation of sites and lists by adding records to a static set of database tables This initial version of SharePoint had a couple of noteworthy shortcomings First, it was cumbersome to customize sites Second, the files uploaded to a document library were stored on the local file system of the front-end Web server, which made it impossible to scale out SharePoint Team Services sites using a farm of front-end Web servers
SharePoint 2003 was the first version to be implemented on top of the Microsoft NET Framework and ASP.NET This version began to open new opportunities for professional
Trang 23developers looking to extend the SharePoint environment with Web Parts and event
handlers Also in this version, Microsoft altered the implementation for document libraries
to store files inside a back-end SQL Server database, which made it possible to scale out SharePoint sites using a standard farm of front-end Web servers
SharePoint 2007 introduced many new concepts to the underlying SharePoint architecture, including site columns, content types, and features and solution packages Microsoft also improved the integration of SharePoint with ASP.NET, which made it possible for NET developers to extend SharePoint sites by creating familiar ASP.NET components such as master pages, user controls, navigation providers, authentication providers, and custom
HttpModule components.
SharePoint 2010 is the fourth and most recent release of SharePoint technologies It includes Microsoft SharePoint Foundation and Microsoft SharePoint Server 2010 The goal of this chapter is to build your high-level understanding of SharePoint Foundation from the viewpoint
of a professional developer Along the way, you will learn how SharePoint Server 2010 extends SharePoint Foundation to add extra functionality and business value
SharePoint Foundation
SharePoint Foundation introduces many changes to the core platform from SharePoint
2007 The improved user experience in the browser constitutes the most obvious change for experienced SharePoint users moving to SharePoint 2010 The SharePoint 2007 user interface experience is outdated It wasn’t designed to today’s HTML standards, nor does it embrace any of the principles of Web 2.0 These limitations negatively impact accessibility and cross-browser functionality The user experience of SharePoint 2007 can also be criticized for triggering unnecessary server-side postbacks and confusing page transitions
SharePoint 2010 introduces a new AJAX-powered user interface that significantly improves the user experience The pages in a SharePoint 2010 site eliminate unnecessary postbacks
by communicating with the Web server using asynchronous JavaScript calls SharePoint Foundation also eliminates potentially confusing page transitions using inline editing and modal dialogs Finally, SharePoint Foundation enhances the user experience by introducing the server-side Ribbon, which allows the user to locate and execute a larger number of contextual commands without having to navigate away from the current page
SharePoint Foundation includes a wealth of enhancements beyond user interface changes Table 1-2 lists some of the new enhancements that will be most interesting to developers moving from SharePoint 2007 These topics are covered throughout the course of this book
Trang 24SharePoint Foundation 3 TaBle 1-2 enhancements for Developers in SharePoint Foundation
Service application architecture Redesigned infrastructure to facilitate sharing of resources across
Web applications and farms.
Windows PowerShell support New support and capabilities for writing administrative scripts Feature versioning and upgrade New support for versioning and upgrading features.
SharePoint Developer Tools for
Visual Studio 2010 A first-class development experience for SharePoint developers (finally) Sandboxed solutions New support for deploying solution packages at site collection
scope in a sandboxed environment
New features for throttling lists
and controlling query execution Enhanced support for stabilizing the farm by prohibiting large, inefficient queries New events for sites, lists, and
workflows Additional events for developers to hook up event handlers.LINQ to SharePoint provider New support for writing LINQ query statements to access
SharePoint list data.
REST-based access to SharePoint
list items New support for accessing SharePoint list data from across the network using REST-based Web service calls Client-side object model Ability to leverage the SharePoint object model from across the
network when programming with NET, Silverlight, and JavaScript Enhanced support for integrating
Silverlight applications Rich support for deploying and versioning Silverlight applications within a SharePoint environment Claims-based security New authentication support for leveraging external identity
management systems and extending access control in SharePoint sites using custom claims.
Business Connectivity Services
(BCS) and external lists New support for creating read-write connections to back-end databases and line-of-business systems and exposing their data
as lists within SharePoint sites.
.NET Assembly Connectors for
BCS Support for creating a custom component to integrate any data source with the BCS.
SharePoint Foundation Architecture
At its core, SharePoint Foundation is a provisioning engine—that is, its fundamental design
is based on the idea of using Web-based templates to create sites, lists, and libraries to store and organize content Templates are used to create both new websites and various elements inside a website, such as lists, pages, and Web Parts
SharePoint Foundation is particularly helpful to companies and organizations faced with the task of creating and administering a large number of websites because it dramatically reduc-
es the amount of work required Someone in the IT department or even an ordinary business
user can provision (a fancy word for create) a site in SharePoint Foundation in less than a
min-ute by filling in a browser-based form and clicking the OK button Creating a new page or a new list inside a site is just as easy
Trang 25SharePoint Foundation takes care of all the provisioning details behind the scenes by adding and modifying records in a SQL Server database The database administrator doesn’t need
to create a new database or any new tables The ASP.NET developer doesn’t need to create a new ASP.NET website to supply a user interface And the system administrator doesn’t need
to copy any files on the front-end Web server or configure any Internet Information Services (IIS) settings It all just works That’s the magic of SharePoint
The architecture of SharePoint Foundation was specifically designed to operate in a Web farm environment Figure 1-1 shows a basic diagram of a simple Web farm with two front-end Web servers and a database server In scenarios that have multiple front-end Web servers, a network load balancer is used to take incoming HTTP requests and to determine which front-end Web server each request should be sent to
Web Server 1
Web Server 2
Database Server
Network Load Balancer
FIguRe 1-1 SharePoint Foundation is designed to scale out using a farm of front-end Web servers.
SharePoint Foundation and SharePoint Server 2010 are available only in 64-bit versions They can be installed on a 64-bit version of Windows Server 2008 or Windows Server 2008 R2 When building a development environment, you also have the option of installing either SharePoint Foundation or SharePoint Server 2010 on a 64-bit version of a client operating system such
as Windows 7 or Windows Vista
SharePoint Foundation leverages IIS 7.0 on front-end Web servers to listen for incoming HTTP requests and to manage the server-side worker processes using the IIS application pool infrastructure The runtime environment of SharePoint Foundation runs within a worker process launched from the IIS application pool executable, named w3wp.exe, as shown in Figure 1-2 You can see in Figure 1-2 that SharePoint Foundation is built on NET Framework
Trang 26SharePoint Foundation 5
IIS Application Pool (w3wp.exe)
Microsoft SharePoint Foundation ASP.NET Framework 3.5 with Service Pack 1 NET Framework 3.5 with Service Pack 1
Internet Information Services 7.0 (IIS) Windows Server 2008 R2 (x64)
FIguRe 1-2 The SharePoint Foundation runtime loads into an IIS application pool running ASP.NET 3.5.Recall that SharePoint 2007 was built on top of NET 3.0 Although configuring front-end Web servers running SharePoint 2007 to support NET 3.5 is possible, this task proved to be challenging for a number of reasons Consequently, a large percentage of SharePoint 2007 development hasn’t taken advantage of the programming techniques introduced in NET 3.5 One nice aspect of moving to SharePoint 2010 is that this new version provides out-of-the-box support for valuable NET 3.5 features such as AJAX, LINQ, and Silverlight This book assumes that a healthy percentage of developers moving from SharePoint 2007
to SharePoint 2010 will be using these NET 3.5 features for the first time
You should also note that the initial release of SharePoint 2010 won’t provide support for NET 4.0 At the time of this writing, Microsoft has not yet made any announcements about when NET 4.0 support will be integrated into either SharePoint Foundation or SharePoint Server 2010
SharePoint Farms
Every deployment of SharePoint Foundation is based on the concept of a farm Simply
stated, a SharePoint farm is a set of one or more server computers working together to
pro-vide SharePoint Foundation functionality to clients For simple scenarios, you can set up a SharePoint 2010 farm by installing and configuring everything you need on a single server computer A SharePoint farm in a typical production environment runs SQL Server on a sepa-rate, dedicated database server and can have multiple front-end Web servers, as shown in Figure 1-3 As you will see later in this chapter, a farm can also run one or more application servers in addition to a database server and a set of Web servers
Trang 27SharePoint 2010 Server SharePoint Foundation SQL Server 2008 R2 Internet Information Services 7.0 Active Directory Domain Services Windows Server 2008 R2 (x64)
FIguRe 1-3 You can create a SharePoint development environment using a single server farm.
Each SharePoint farm runs a single SQL Server database known as the configuration database
SharePoint Foundation creates a configuration database whenever it creates a new farm in order to track important farm-wide information For example, the configuration database tracks which front-end Web servers are associated with the farm as well as which users have been assigned administrative permissions within SharePoint Foundation at the farm level.When creating a SharePoint development environment, it is best to install and configure SharePoint 2010 as a single-server farm Remember that you have the option of installing SharePoint Foundation or SharePoint Server 2010 on a client operating system such as a 64-bit version of Windows 7 Building out your development environment using a 64-bit version of Windows 7 as the underlying operating system is the best approach if you must base your development environment on a client-side operating system
If possible in your work environment, you should consider installing SharePoint Foundation
or SharePoint Server 2010 on a 64-bit version of Windows Server 2008 or Windows Server
2008 R2 One option is to install a version of SharePoint 2010 on a native installation of Windows Server Another popular option is to install a version of SharePoint 2010 on a virtual machine (VM) For example, you can install a 64-bit version of Windows Server 2008 R2 and configure Hyper-V Hyper-V allows you to create a VM on which you can install a 64-bit version of Windows Server 2008 R2 and SharePoint Server 2010
A key advantage of building a SharePoint development environment on a server-side operating system such as Windows Server 2008 R2 is that you can configure Active Directory Domain Services to provide a more realistic simulation of the networked environment that will
be running in production Figure 1-3 shows the layers of software we recommend that you install on a developer workstation you’re configuring for SharePoint 2010 development
As a SharePoint developer, you must remember that farms come in all different shapes and sizes Although you will likely write and test your code on a single-server farm, that is probably not the type of farm in which your code will be deployed It can be a big mistake to assume that your target SharePoint production environment is just like your development environment
Trang 28SharePoint Foundation 7
Many companies that are invested in SharePoint development categorize their farms
into three different types SharePoint developers write and debug SharePoint solutions in
development farms Staging farms simulate a more realistic environment and are used to
con-duct quality assurance testing on SharePoint solutions For example, the servers in a staging farm should be built without installing developer tools such as Microsoft Visual Studio 2010 Once a SharePoint solution has been thoroughly tested in a staging farm, it can be deployed
in a production farm, where its functionality is made available to users.
SharePoint 2010 Central Administration
As a SharePoint developer, you must wear many hats One hat you frequently wear is that of
a SharePoint farm administrator You should become familiar with the administrative site that SharePoint Foundation automatically creates for each farm This administrative site is known
as SharePoint 2010 Central Administration, and its home page is shown in Figure 1-4.
FIguRe 1-4 SharePoint developers should become familiar with SharePoint 2010 Central Administration.Notice that Figure 1-4 shows the home page of SharePoint 2010 Central Administration in a
farm with only SharePoint Foundation installed If SharePoint Server 2010 is also installed, you’ll
see additional links to administrative pages that are not installed by SharePoint Foundation Also note that SharePoint 2010 Central Administration is extensible If you need to create a SharePoint solution for administrative purposes, you can integrate your work into SharePoint
2010 Central Administration by adding custom links and custom administration pages
Trang 29Many of the example configurations and code samples in this book are based on Wingtip Toys, a company that was fictitiously founded in 1882 by Henry Livingston Wingtip Wingtip Toys has a long and proud history of producing the industry’s most unique and inventive toys for people of all ages Wingtip Toys has set up an intranet using SharePoint internally to provide a means of collaboration between its trinket design scientists, its manufacturing team, and its remote sales force It has also erected an extranet using SharePoint to interact with partners and toy stores around the world Finally, Wingtip Toys has decided to use SharePoint to create its Internet-facing site to advertise and promote its famous line of toys and novelties
ers to create HTTP entry points for domain names such as http://intranet.wingtip.com.
SharePoint Foundation creates an abstraction on top of IIS that is known as a Web application
At a physical level, a Web application is a collection of one or more IIS websites configured
to map incoming HTTP requests to a set of SharePoint sites The Web application also maps
each SharePoint site to one or more specific content databases SharePoint Foundation uses
content databases to store site content such as list items, documents, and customization information
Warning: Don’t Touch the SharePoint Databases
When developing for SharePoint Foundation, you’re not permitted to directly access the configuration database or any of the content databases For example, you must resist any temptation to write ADO.NET code that reads or writes data from the
tables inside these databases Instead, you should write code against the SharePoint Foundation programming APIs to reach the same goal, and leave it to SharePoint
Foundation to access the configuration database and content database behind the scenes
Trang 30SharePoint Foundation 9
SharePoint Foundation uses ASP.NET 3.5 to extend the standard behavior of an IIS website It does this by configuring IIS websites to run SharePoint-specific components in the ASP.NET
pipeline, including a custom HttpModule and a custom HttpHandler This integration with
ASP.NET allows SharePoint Foundation to take control over every request that reaches an IIS website that has been configured as a SharePoint Web application
Keep in mind that every SharePoint Web application runs as one large ASP.NET application Consequently, SharePoint Foundation adds a standard ASP.NET web.config file to the root directory of each IIS website associated with a Web application This high-level design can
be counterintuitive for developers migrating to SharePoint Foundation from ASP.NET A single SharePoint site is unlike an ASP.NET site because it can’t have its own web.config file That means a single web.config in SharePoint Foundation supplies configuration information for every site in a Web application This is true even in scenarios where the number of sites in a Web application reaches into the hundreds or thousands
A SharePoint farm typically runs two or more Web applications The first Web application is created automatically and is used to run SharePoint 2010 Central Administration You need
at least one more Web application to create the sites that are used by typical users The IT staff at Wingtip Toys decided to configure their production farm with three different Web applications used to reach employees, partners, and customers, as shown in Figure 1-5
Farm
Central Administration http://WingtipServer01:9999 Central AdminContent DB
Config DB
Content DB Wingtip Intranet
Content DB Wingtip Extranet
Content DB Wingtip Public Site
Wingtip Intranet http://intranet.wingtip.com
Wingtip Extranet http://extranet.wingtip.com
Wingtip Public website http://www.wingtip.com
FIguRe 1-5 Each Web application has one or more content databases.
Trang 31A key thing to remember about Web applications is that each one has its own independent security and authentication settings This creates a valuable degree of flexibility because dif-ferent sites in the same farm can be configured for access by different types of users.
The Wingtip IT staff configured the first Web application for intranet usage by requiring Integrated Windows authentication and by prohibiting anonymous access They configured the second Web application for extranet usage by authenticating external users with a custom ASP.NET authentication provider They configured the third Web application to allow anony-mous access so that any user on the Internet could potentially access their public website anonymously
The introduction of claims-based security support into SharePoint 2010 provides developers with new possibilities for configuring a Web application One such possibility is the ability
to outsource identity management to an identity service publicly available on the Internet, such as Windows Live ID This approach gives developers the ability to track users for the purposes of security, auditing, and personalization but without the hassles of setting up a user database, storing credentials, and dealing with all the associated password management headaches
The Wingtip IT staff configured the Web application for their public website to allow mous access but also to make logging into the site an available option They configured a trust within the farm to the Windows Live ID service and then configured the Web application to use Windows Live ID as its identity provider When customers attempt to log into the Wingtip public website, they are redirected to the Windows Live ID site and prompted to enter their Windows Live ID credentials Once authenticated by Windows Live ID, the customer is then redirected back to the Wingtip public website with an established identity
SharePoint Foundation introduces a new infrastructure for service applications that replaces
the SSP architecture from SharePoint Server 2007 In SharePoint 2010, service applications are used to facilitate sharing resources across sites running in different Web applications and different farms The new service application architecture also provides the means for scaling
a SharePoint farm by offloading processing cycles from the front-end Web servers over to dedicated application servers
Trang 32SharePoint Foundation 11
A key benefit of this new architecture is that you can treat a service application as a pluggable component Once you install and create a service application, you can configure it for several different deployment scenarios In simple farms, an instance of the service application can run on each front-end Web server In more complex farms, such as the one shown in Figure 1-6, a service application can be configured to run on a separate application server or in a farm of application servers
Application Server
Application Server Farm
FIguRe 1-6 SharePoint farms run service applications in addition to Web applications.
A service application targeting SharePoint 2010 must be written to a specific set of ments For example, a service application must query the configuration database about its current deployment configuration and adjust its behavior accordingly
Trang 33require-When a service application runs across the network on a dedicated application server, it relies on a proxy component on the front-end Web server The proxy component is deployed along with the service application and provides value by abstracting away the code required
to discover where the service application lives on the network The service application proxy component provides additional value by encapsulating the Windows Communication
Foundation (WCF) code used to execute Web service calls on the target service application.The proxy-based design of service applications provides flexibility in terms of deployment and configuration For example, you can configure a proxy in one farm to communicate with
a service application in another farm The proxy simply consults the configuration database and discovers the correct address for the application server running the service application The implication here is that the new service application architecture makes it much easier to share resources across farms while still controlling what services are made available and how they are consumed
Four built-in service applications ship with SharePoint Foundation, as shown in Figure 1-7 When a new farm is created, SharePoint Foundation automatically creates and configures two
important service applications: Application Discovery and Load Balancer Service Application and Security Token Service Application The other two service applications built into SharePoint Foundation are Business Data Connectivity Service and Usage and Health data collection,
which you can create manually or by running the Farm Configuration Wizard available in the SharePoint 2010 Central Administration site
FIguRe 1-7 SharePoint Foundation includes four standard service applications.
Unlike the SSPs in SharePoint 2007, service applications were designed with developer extensibility in mind Any SharePoint developer with the proper knowledge and incentive can create a service application that can plug into any SharePoint 2010 farm
Trang 34SharePoint Server 2010
SharePoint Server 2010 is really just a piece of software that’s been written to run on
SharePoint Foundation Every installation of SharePoint Server 2010 begins with an lation of SharePoint Foundation After installing SharePoint Foundation, the installation for SharePoint Server 2010 then installs its own templates, components, and service applications.Microsoft sells different editions of SharePoint Server 2010 using several different SKUs SharePoint Server 2010 Standard Edition supplies core functionality such as enterprise search, content publishing, user profiles, and My Sites SharePoint Server 2010 Enterprise Edition extends the standard edition by adding extra functionality for security, business intelligence, managed metadata, and rich integration with Microsoft Office client applications
instal-To help you understand some of the additional functionality SharePoint Server 2010 layers
on top of SharePoint Foundation, Table 1-3 lists the service applications that SharePoint Server 2010 installs as well as the edition of SharePoint Server 2010 required to use each service application
TaBle 1-3 SharePoint Server 2010 Service applications
Application Registry Services Standard
Trang 35Now that you understand the high-level architecture of a SharePoint farm, you need to know how SharePoint Foundation creates and manages sites within the scope of a Web application Let’s start by asking a basic question: What exactly is a SharePoint site?
This question has many possible answers For example, a site is an endpoint that is accessible from across a network such the Internet, an intranet, or an extranet A site is also a storage container that allows users to store and manage content such as list items and documents
In addition, a site is a customizable entity that allows privileged users to add pages, lists, and child sites Finally, a site is a securable entity whose content is accessible to a configurable set
of users
As a developer, you can also think of a site as an instance of an application For example, the scientists at Wingtip Toys use a SharePoint site to automate the business process of approving
a new toy idea When Wingtip scientists have new ideas for a toy, they describe their ideas
in Microsoft Word documents, which they then upload to a document library in the site The approval process is initiated whenever a scientist starts a custom approval workflow on one
of those documents
A site can also be used as an integration point to connect users to back-end data sources such as a database application or a line-of-business application such as SAP or PeopleSoft The Business Connectivity Services that ship with SharePoint Foundation make it possible to establish a read-write connection with a back-end data source One valuable aspect of the Business Connectivity Services architecture is that this external data often appears to be a native SharePoint list There are many user scenarios and developer scenarios in which you can treat external data just as you would treat a native SharePoint list
Site Collections
Every SharePoint site must be provisioned within the scope of an existing Web application However, a site can’t exist as an independent entity within a Web application Instead, every site must also be created inside the scope of a site collection
A site collection is a container of sites Every site collection has a top-level site In addition to
the top-level site, a site collection can optionally contain a hierarchy of child sites Figure 1-8 shows a Web application with three site collections The first site collection contains just a top-level site The second contains one level of child sites below the top-level site The third contains a more complex hierarchy with three levels
Trang 36SharePoint Foundation 15 Web Application
http://Intranet.wingtip.com
Site Collection
/sites/operations Site Collection
(root)
Child Site
/WestDivision
Child Site
/EastDivision
Top-level Site
(root)
Child Site
/Reports2009
Child Site
/Reports2009
Child Site
/ProfitLoss
Child Site
/Expenses
FIguRe 1-8 Each site collection has a top-level site and can optionally contain a hierarchy of child sites.When a company begins using SharePoint Foundation or SharePoint Server 2010, one of the first questions that comes up is how to partition sites across site collections For example, should you create one big site collection with lots of child sites, or should you create many individual site collections? This decision is usually best made after thinking through all the relevant issues discussed in the next few paragraphs You must gain an understanding of how partitioning sites into site collections affects the scope of administrative privileges, security boundaries, backup and restore operations, and site design
You could be asking yourself why the SharePoint Foundation architecture requires this special container to hold its sites For starters, site collections represent a scope for admin-istrative privileges If you’ve been assigned as a site collection administrator, you have full administrative permissions within any existing site and any future site created inside that site collection
Think about the requirements of site management in a large corporation that’s provisioning thousands of sites per year The administrative burden posed by all these sites is going to be more than most IT staffs can deal with in a timely manner The concept of the site collection
is important because it allows the IT staff to hand off the administrative burden to someone
in a business division who takes on the role as the site collection owner
Let’s walk through an example The Wingtip Toys IT staff is responsible for provisioning new site collections, and one of the Wingtip business divisions submits a request for a new site Imagine the case where the Wingtip Sales Director has put in a request to create a new Team site for his sales staff A Wingtip IT staff member would handle this request by creating
a new site collection with a Team site as its top-level site
Trang 37When creating the new site collection, the Wingtip IT staff member would add the Wingtip Sales Director who requested the site as the site collection owner The Wingtip Sales Director would have full administrative privileges inside the site collection and could add new users, lists, and pages without any further assistance from the Wingtip IT staff The Wingtip Sales Director could also add child sites and configure access rights to them independently of the top-level site.
A second advantage of site collections is that they provide a scope for membership and the configuration of access rights By design, every site collection is independent of any other site collection with respect to what security groups are defined, which users have been added as members, and which users are authorized to perform what actions
For example, imagine that the Wingtip IT staff has provisioned one site collection for the Sales department and a second site collection for the Accounting department Even though some users within the Accounting department have administrative permissions within their own site collection, there’s nothing they can do that will affect the security configuration of the Sales site collection SharePoint Foundation sees each site collection as an island with respect to security configuration
A third reason for site collections is that they provide a convenient scope for backup and restore operations You can back up a site collection and later restore it with full fidelity The restoration
of a site collection can take place in the same location where backup was made Alternatively,
a site collection can be restored in a different location—even inside a different farm This technique for backing up a site collection and restoring it in another location provides one possible strategy for moving sites and all the content inside from one farm to another
A final motivation for you to start thinking about in terms of site collections is that they vide a scope for many types of site elements and for running custom queries For example, the server-side object model of SharePoint Foundation provides you with the capability to run queries that span all the lists within a site collection However, there is no query mecha-nism in the SharePoint server-side object model that spans across site collections Therefore,
pro-if your application design calls for running queries to aggregate list data from several dpro-iffer-ent sites, it makes sense to add sites to the same site collection when they contain lists that must be queried together
differ-Imagine a case in which the West Division of the Wingtip Sales team has four field offices The Wingtip Sales Director could create a child site for each field office below a site that was created for the West Division Now assume that each child site has a Contacts list that is used
to track sales leads By using programming techniques shown later in this book, you can execute queries at the scope of the West Division site that would aggregate all the Contacts items found across all of its child sites You could execute the same query at a higher scope and get different results For example, if you executed the same query scoped to the top-level site, it would aggregate all the Contacts found throughout the site collection, including both the West Division and the East Division
Trang 38SharePoint Foundation 17Customizing Sites
SharePoint Foundation provides many user options for configuring and customizing sites If you’re logged into a site as the site collection owner or as a site administrator, you can per-form any site customization options supported by SharePoint Foundation If you’re logged into a site without administrative privileges in the role of a contributor, however, you won’t have the proper permissions to customize the site Furthermore, if you’re logged in as a
contributor, SharePoint Foundation uses security trimming to remove the links and menu
commands that lead to pages with functionality for which you don’t have permissions
If you’re logged into a standard Team site as a site administrator, you should be able to locate and drop down the Site Actions menu in the top-left corner of the page This menu provides commands that allow you to edit the current page; to create new pages, lists, and child sites;
to configure security; and to navigate to the Site Settings page shown in Figure 1-9
FIguRe 1-9 The Site Settings page is accessible to site administrators in any site.
The Site Settings page provides links to pages that allow you to perform various administrative and customization tasks Notice that the Site Settings page for a top-level site contains one section for Site Administration and a second section for Site Collection Administration The Site Settings page for child sites doesn’t include the section for Site Collection Administration You can see in Figure 1-9 that there are several sections of links, including Users and Permissions, Look and Feel, Galleries, and Site Actions, which provide links to various other administrative pages for the current site If you’re new to SharePoint Foundation, you should take some time
to explore all the administrative pages accessible through the Site Settings page Also keep
in mind that Figure 1-9 shows only the links on the Site Settings page of a Team site running within a SharePoint Foundation farm If the site were running in a SharePoint Server 2010 farm, there would be additional links to even more site administration pages that are not part of the standard SharePoint Foundation installation
Trang 39Creating and Customizing Pages
The support for wiki page libraries and Web Parts is an enabling aspect of SharePoint
Foundation Business users with no experience in Web design or HTML can quickly add and customize Web pages
Although SharePoint 2007 supports wiki page libraries, this support has been significantly enhanced in SharePoint Foundation An example of the increased support is evident when you create a standard Team site As part of the provisioning process, SharePoint Foundation automatically creates a new wiki library at the path of SitePages off the root of the site, and
it adds a wiki page named Home.aspx It additionally configures Home.aspx to be the home page of the site, so it becomes the first page users see when navigating to the site
Customizing the home page is simple for any user who has the proper permissions The user can enter edit mode using either the Site Actions menu or the Ribbon Once in edit mode, the user is free to simply type text or copy and paste from another application The Insert tab
in the Ribbon also makes it easy for the user to add tables, links, and images
Web Part technology also plays a prominent role in page customization Web Parts are based
on the idea that developers supply a set of visual components that users can add and move around in their pages Every site collection has a Web Part Gallery, which contains a set of Web Part template files This set of Web Part template files determines which types of Web Parts can be added to pages within the site collection
Although earlier versions of SharePoint technologies supported Web Parts, they were not
as flexible as SharePoint Foundation because Web Parts could be added only to Web Part pages SharePoint Foundation now makes it possible to add Web Parts anywhere inside a wiki page When you’re editing the content of a wiki page, you can place the cursor wherever you’d like and add a new Web Part using the Insert tab in the Ribbon The new Web Part appears inline along with your other wiki content This inline Web Part capability, combined with the wiki editing experience, can go a long way toward making SharePoint sites look less boxy—a common complaint about previous versions
Creating and Customizing Lists
The Site Actions menu provides several different commands for creating new pages and new lists, such as New Page, New Document Library, and New Site If you click the More Options command in the Site Actions menu, SharePoint Foundation displays the Create dialog shown
in Figure 1-10 The SharePoint Foundation Create dialog provides a user interface built using Silverlight, which allows a user to filter through the available templates for creating pages, lists, and child sites Figure 1-10 shows a filtered view of the templates available for creating tracking lists in the Create dialog
Trang 40SharePoint Foundation 19
FIguRe 1-10 The SharePoint Foundation Create dialog is implemented using a Silverlight application.
In addition to list templates, the standard collaboration features of SharePoint Foundation also include templates for creating several different types of document libraries Besides the standard document library type, there are also more specialized document library types for wiki page libraries, picture libraries, and InfoPath form libraries
What’s appealing to SharePoint users is that once they create a new list, it’s immediately ready to use SharePoint Foundation provides instant gratification by including page
templates as part of the list template itself, making it possible to create each new list and document library with a set of pages that allow users to add, view, modify, and delete items and documents
Once a list has been created, SharePoint Foundation gives a user the flexibility to further customize it SharePoint Foundation provides a List Settings page for each list and document library Figure 1-11 shows a typical List Settings page It provides a set of links to secondary pages that allow the user to modify properties of a list such as its title and description and
to configure other important aspects of the list, including versioning, workflow, and security permissions The List Settings page also provides links to add and manage the set of columns behind the list