Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested...

56
Index ■ ■ ■ 1083 A Accept HTTP header, 267 Accept request header, 260 access control lists, 138 Access Services grid, 702 Action class, 375 actions adding custom actions to menus of the SharePoint UI, 604 adding menu items as custom actions to elements.xml, code listing, 616 adding nested menus, 613 assembling web controls for hierarchical menu structures, procedure for, 613 ControlAssembly property, 613, 615 ControlClass property, 613, 615 CreateChildControls method, 614 creating custom web controls, 614 custom web control implementation for nested menus, code listing, 614 CustomAction element, 607, 615 CustomActionContainer class, 611 displaying all custom actions, 609 elements.xml with a custom action definition, code listing, 607 examples of custom actions, 609 extending the site settings page, 612 FeatureLinkSection control, 605 FeatureMenuTemplate control, 605–606, 614 GetCustomMenuItemActions method, 606 GroupId property, 609 Location and GroupID properties for StandardMenu, table of, 608 Location property, 609 OnPreRender method, 614 Page_Load method, 611 PersonalActions menu, 607 registering a web control as safe, 615 specifying custom actions for menu extension, 615 SubMenuTemplate control, 614 supported URL tokens for custom actions, table of, 608 using a Repeater control to display custom action properties, code listing, 609 activatefeature command, 507 Active Deployment Configuration property, 431 Active Directory, 9 Add method, parameter values, 171, 185 AddFieldAsXml method, 752 AddItemToList method, 126 additionalInformation parameter, 1080 AddLookup, 171 AddOnPreRenderCompleteAsync method, 370 Add-PsSnapin cmdlet, 503 addsolution command, 506

Transcript of Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested...

Page 1: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

Index

■ ■ ■

1083

■ A Accept HTTP header, 267 Accept request header, 260 access control lists, 138 Access Services grid, 702 Action class, 375 actions

adding custom actions to menus of the SharePoint UI, 604

adding menu items as custom actions to elements.xml, code listing, 616

adding nested menus, 613 assembling web controls for hierarchical

menu structures, procedure for, 613 ControlAssembly property, 613, 615 ControlClass property, 613, 615 CreateChildControls method, 614 creating custom web controls, 614 custom web control implementation for

nested menus, code listing, 614 CustomAction element, 607, 615 CustomActionContainer class, 611 displaying all custom actions, 609 elements.xml with a custom action

definition, code listing, 607 examples of custom actions, 609 extending the site settings page, 612 FeatureLinkSection control, 605

FeatureMenuTemplate control, 605–606, 614

GetCustomMenuItemActions method, 606 GroupId property, 609 Location and GroupID properties for

StandardMenu, table of, 608 Location property, 609 OnPreRender method, 614 Page_Load method, 611 PersonalActions menu, 607 registering a web control as safe, 615 specifying custom actions for menu

extension, 615 SubMenuTemplate control, 614 supported URL tokens for custom actions,

table of, 608 using a Repeater control to display custom

action properties, code listing, 609 activatefeature command, 507 Active Deployment Configuration property, 431 Active Directory, 9 Add method, parameter values, 171, 185 AddFieldAsXml method, 752 AddItemToList method, 126 additionalInformation parameter, 1080 AddLookup, 171 AddOnPreRenderCompleteAsync method, 370 Add-PsSnapin cmdlet, 503 addsolution command, 506

Page 2: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1084

Add-SPSolution cmdlet, 504 Add-SPUserSolution cmdlet, 494, 505 AddUser method, 761 administrative object model

administrative server object model, 111–112, 114

AllWebs property, 108–109 ApplicationPool property, 113 configuration database, 105 ContentDatabases property, 112 database architecture, 105 databases in a SharePoint farm, illustration

of, 105 DisplayName property, 111 Fields property, 109 getting the current top-level server farm

object, 108 HttpApplication object, 113 index databases, 105 indicating the root, 113 Instances property, 114 Local property, 111 Manage Service Application page, 114 Microsoft.SharePoint namespace, 109 objects of the Administration namespace,

103 pages as ASPX files, 113 physical objects, 111 Role property, 111 RootWeb property, 108, 113 search database, 105 server architecture for the

Microsoft.SharePoint.Administration namespace, 107

ServiceContext object, 114 Services Architecture, 114 services structure, 115 session state information, 105 Sites property, 108 SPContentDatabase object, 108, 113 SPContext class, 108 SPDatabase class, 108

SPDatabaseServiceInstance class, 107 SPDiagnosticService object, 115 SPFarm object, 107, 111 SPField object, 112 SPFieldCollection object, 109 SPHttpApplication object, 113 SPIncomingEmailService object, 115 SPList object, 109 SPListCollection object, 109 SPListItem object, 109 SPListItemCollection object, 109 SPOutboundEmailService object, 115 SPPersistedObject base class, 105 SPServer class, 107, 111 SPService class, 107, 111, 114 SPServiceInstance class, 107, 114 SPSite object, 108–109 SPSiteCollection object, 113 SPSolution class, 111 SPWebApplication object, 108, 112–113 SPWebCollection object, 109 SPWebService object, 107, 115 SPWindowsService object, 115 tight relationship between a site collection

and its root, 113 WebApplication property, 108 See also client object model

administrative tasks administrative API, 1035 AllowUnsafeUpdates property, 1044 ApplyWebConfigModifications method,

1048 assigning passwords, 1038 automating tasks, benefits of, 1036 console application for creating a site

collection from an XML file, code listing, 1039

console application for generating a new web, code listing, 1042

creating a custom site property, code listing, 1044

Page 3: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1085

creating several web sites within a site collection, 1041

creating site collections programmatically, 1039

data retrieval with a Web Part, code listing, 1054

guidelines for choosing an application type, 1035

HttpContext object, 1047 maintaining web.config settings

programmatically, 1045 Properties property, 1043 properties that modify the element-

changing procedure, table of, 1046 property bag, 1043 reading information about a site’s current

structure, 1054 retrieving values from the configuration

database, code listing, 1055 running standalone, 1035 Sequence property, 1049 SharePoint API and the deployment

framework, 1036 SPContentDatabase object, 1056 SPSite object, 1041 SPSiteDataQuery class, 1054 SPWeb object, 1041 SPWebApplication class, 1046 SPWebConfigModification class, 1046 System.Security.SecureString class, 1038 Update method, 1039, 1044 using a console application to run tasks

automatically, 1035 when administrative tasks require a

standalone solution, 1036 working with site properties, 1043 XML file for a site collection definition, code

listing, 1039 XML file for a web using the Blog template,

code listing, 1041 ADO.NET Data Services, 256, 261 Advanced category, 380 aggregators, 229 Ajax

AllowServerSideScript attribute, 69 CSS, 68 definition of, 68 Document Object Model (DOM), 68 HTML, 68 JavaScript, 68 JSON, 68 safe-mode processing, 69 XML, 68 XSLT, 68 See also JavaScript; Visual Studio 2010

alerts AlertTemplates_SMS.xml, 101 AlertTemplates.xml, 101 registering, 101 types related to the SPAlert class, 100

AllItems.aspx, 394, 402 AllowAnonymousAccess property, 384 AllowCustomization property, 382 AllowFiltering property, 701 AllowPersonalization property, 382 AllowServerSideScript attribute, 69 AllowUnsafeUpdates property, 472, 477, 1044 AllProperties property, 576 AllUserData table, most important columns,

280 AllUserData table, query result, 282 AllWebs property, 108–109 anonymous authentication, 718 Application Management page, 494 application pages, 63, 93–94

Active Deployment Configuration property, 431

adding an application page to a SharePoint project, procedure for, 429

application.master, 559–560, 563 @Assembly directive, 433 CheckRights method, 433 CodeBehind attribute, 434 Content control, 433 creating a simple layout page with inline

code, 432

Page 4: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1086

creating application pages, requirements for, 429

DynamicMasterPageFile property, 435 Inherits attribute, 433–434 internal layout pages, 432 LayoutsPageBase class, 432–434 linking to an application page, 435 main placeholder sections included in the

master page, 431 MasterPageFile attribute, 433 Microsoft.SharePoint assembly, 432 Microsoft.SharePoint.WebControls

namespace, 432 MyPageBase class, code listing, 434 .NET techniques for handling localization

and resources, 436 New Project dialog, 430 OnPreInit method, 433 Page base classes, table of properties and

methods, 433 Page class, 432 @Page directive, 433–434 Properties window, 430 RequireDefaultLayoutRights property, 434 RequireSiteAdministrator property, 434–435 safeguards for, 565 Sandboxed Solution property, 431 security considerations in custom

application pages, 435 SharePoint Customization wizard, 430 Site Actions menu, 435 Site property, 432–433 SPControl class, 433 Startup Item property, 430 UnsecuredLayoutsPageBase class, 432–435 using and changing the master page, 434 using the appropriate project template

within Visual Studio 2010, 429 using the code-behind approach, 434 Web property, 432–433 See also master pages

application platform, definition of, 3

application pools ApplicationPool property, 113 configurability of, 58 http.sys, 58 worker process, 59

applications application pools, 57–58 application resources, 437 definition of, 56 root application, 57

applicationv4.master, 563 ApplyChanges method, 329, 332, 342 ApplyWebConfigModifications method, 1048 ArgumentException, 174 <asp:Button>, 629 ASP.NET

application pages, 63 aspnet_isapi.dll, 55, 57 Central Administration, 63 configuration model, 62 ConfigurationElement class, 62 ConfigurationSection class, 62 creating a web application, 63 default.aspx, 57 definition of, 54 extending the configuration model, 66 extensibility model, 59 Forms Authentication, 136 handlers, 59, 65 handling incoming requests, 64 HTTP handlers, 60 HTTP runtime, 54 HttpContext, 60 IHttpAsyncHandler interface, 60 IHttpHandler interface, 60 integration with IIS, 54 integration with SharePoint, 63 managed code extensions, 54 managed modules, 60 modules, 59–60 native modules, 60

Page 5: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1087

PageHandlerFactory, 59 ProcessRequest, 60 provider model, 61 routing requests to the ASP.NET runtime, 64 services, 61 SPHttpApplication object, 64 SPHttpHandler, 64 SPRequestModule, 64 stsadm.exe, 63 System.Configuration namespace, 62 System.Configuration.dll assembly, 62 System.Web.IHttpModule interface, 59 understanding the relationship between

ISAPI and ASP.NET, 54 unified request-processing pipeline, 55 Virtual Path Provider, 57, 63, 67 web.config, 62, 64–65 WebPart class, 5 See also .NET

ASP.NET Web Parts adding a private Web Part page, procedure

for, 319 <asp:webpartzone> tag, 318 Browse mode, 318 Catalog mode, 318 CatalogZone, 323 class diagram of the base classes and Web

Part–specific interfaces, 317 code-behind for the custom Web Part page,

code listing, 321 Connect mode, 318 ConnectionsZone, 324 <contenttemplate> element, 318 custom Web Part page, code listing, 319 DeclarativeCatalogPart, 323 Design mode, 318 DisplayMode property, 323 Edit mode, 318 EditorZone, 323 event flow model chart, 316 ImportCatalogPart, 323 IWebActionable interface, 317, 324

IWebEditable interface, 317 IWebPart interface, 317, 324 life cycle events, table of, 315 LinkButton event handler, 322 Microsoft.SharePoint.WebPartPages

namespace, 325 OnInit, 315 OnLoad, 315 OnPreRender, 315 OnUnload, 315 overview of, 314 PageCatalogPart, 323 Panel class, 317, 324 predefined Web Part pages, 319 PreRenderComplete, 315 SPLimitedWebPartManager class, 323 SPWebPartManager class, 322–323 structure of, 319 System.Web.UI.WebControls.WebParts

namespace, 325 verb, definition of, 324 Verbs property, 324 Web Part attributes to modify properties,

table of, 325 WebControl class, 324 WebPart class, 317, 324 WebPartManager class, 318, 323 WebPartVerb class, 324 WebPartZone class, 323 zones, 318 ZoneTemplate, 323 See also Web Parts

<asp:webpartzone> tag, 318 aspnet_isapi.dll, 55 Assembly attribute, 69 Assembly Deployment property, 305 @Assembly directive, 433 <Assembly> element, 460 AssemblyInfo.cs, 306, 311, 448 <assemblies> node, 13 AssociatedMemberGroup property, 761

Page 6: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1088

asynchronous data retrieval, 720 asynchronous item-level events, table of, 190 asynchronous list-level events, table of, 191 asynchronous validation, 703 Atom Publishing Protocol (AtomPub)

code listing, 258 Attach method, 242 audiences, 138 authentication, xxiii, 57, 133, 717 AuthenticationMode property, 718 authority, 136 authorization, xxiii

<authorization> tag, 47 handling authorization failures, 151

AutoGenerateColumns property, 695

■ B backward compatibility mode, 544 Bad Request error, 267 BaseFieldControl class, 78, 625 BaseSPListItem class, 467 BaseType ID, 397 BaseValidator class, table of properties, 646 BeginGetResponse, 373 Bing client library, 334 BingWebPart.cs, 334 BingWebPartUserControl.cs, 334 BookDataManager.cs, code listing, 663 BookEditor.cs, code listing, 664 BookList property, 664 BookPickerDialog.cs, code listing, 666 BookQueryControl.cs, code listing, 669 BooksDbItem class, 288 breadcrumb navigation, 583 BreakRoleInheritance method, 768 Browse mode, 318 building blocks, data-related

APIs for lists and libraries, 72 BaseFieldControl class, 78 basic scalar types, table of, 77

classes related to the SPContentType base class, 80

classes related to the SPField base class, 78 classes related to the SPFile base class, 76 classes related to the SPList base class, 75 classes related to the SPQuery and SPView

base classes, 84 configuring columns and field types, 79 content types, 80 DataContext class, 83 document libraries, 72 field controls, 78 <FieldRef> element, 81 fields, 77 LINQ to SharePoint, 82 list template types, table of, 72 lists, 72 <Module> element, 76 queries, 82 query schema, 84 reading and writing files with Stream

objects, 75 rendering templates for controls, 78 SaveBinary method, 76 schema.xml, 75 site columns, 77 SPBaseType enumeration, 72 SPDocumentLibrary class, 74 SPField object, 77 SPFieldType enumeration, 77 SPFieldTypeDefinition class, 79 SPFile object, 75 SPFileCollection, 76 SPFileCollectionAddParameters, 76 SPFileVersion object, 76 SPFolder class, 76 SPList object, 74 SPListDataSource class, 74 SPListEventProperties class, 74 SPListEventReceiver class, 74 SPListItem object, 75, 77

Page 7: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1089

SPListItemVersion class, 75 SPListTemplate class, 72 SPListTemplateType enumeration, 72 SPMetal.exe, 83 SPQuery class, 83 SPView class, 83 SPViewCollection object, 83 SPWeb object, 75 storing data in fields, 77 using predefined lists and libraries as

templates, 72 view schema, 84 view styles, 83 views, 82

building blocks, deployment-related element files, 85 feature.xml, 85, 87 features, 85 full trust solutions, 88 sandboxed solutions, 88 site collections, 90 using a validator to check the validity of a

package, 88 web sites, 90

building blocks, UI creation application pages, 93–94 classes related to the SPEventReceiverBase

classes, 99 content pages, 93 master pages, 93, 95 ribbon, 95 Web Parts, 97

business collaboration applications, xxvi Business Connectivity Services (BCS)

accessing external data through the client object model, 279–280

adding an external list using the UI, 278 architecture of, 270 Business Data Catalog (BDC), 270 Business Data Connectivity Service link, 276 connecting LOB systems into a SharePoint

portal, 270

console application that retrieves data using a CAML query, code listing, 279

core components, list of, 271 creating an external content type using

SharePoint Designer, procedure for, 272–276

displaying external data, 277 external content types (ECT), 271 integration with Microsoft Office, 270 Northwind database, retrieving data from,

272 setting a user and assigning permissions,

276 SPList class, 279

business logic layer, xxii

■ C C#, compiling using the 2.0 compiler, 12 Cache object, 478 CanCreateItems method, 474 CanDeleteItems method, 474 canHandleCommand method, 679 Catalog mode, 318 CatalogZone, 323 Central Administration, xxiv, 11, 63, 1058 ChangeConflict property, 247 ChangeConflictException, 247 CheckedOutBy field, 1076 CheckPermissions method, 148 CheckRights method, 433 child sites, xxi chrome, rendering a Web Part in, 300 claims-based identity, 136 Click event, 364 client object model

accessing a property that has not been loaded, 739

advantages of, 711 anonymous authentication, 718 architecture of, 712 asynchronous data retrieval, 720 authentication modes, 717

Page 8: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1090

AuthenticationMode property, 718 clarifying the difference between value

objects and client objects, 743 client objects, 718, 743 ClientContext class, 717 client-side data retrieval, 719 CollectionNotInitialized exception, 721 comparison of SharePoint main objects and

client object models, table of, 716 core namespaces, 715 correctly accessing a property (C#), code

listing, 739 correctly accessing a property (JavaScript),

code listing, 739 correctly using value objects across

methods, code listing, 744 development best practices, 735 differences in data types, 723 enabling JavaScript IntelliSense in custom

application pages, 736 evolution of client access to SharePoint

data, 712 executeQuery method, 720 executeQueryAsync method, 720 FormsAuthenticationLoginInfo property,

718 HasUniqueRoleAssignments property, 741 Hidden property, 722 implementing asynchronous calls in

Windows client applications, 720 incorrectly using value objects across

methods, code listing, 744 JavaScript Object Notation (JSON), 712, 742 Kerberos, 717 key programming concept, 739 lack of support for JavaScript IntelliSense

within Visual Studio, 735 LINQ lambda expression syntax, 720 Load method, 720–721 loading data, definition of, 720 LoadQuery method, 720–721 load-query-access cycle, 739 main differences between SharePoint

objects models, table of, 724

Microsoft.SharePoint.Client namespace, 715

Microsoft.SharePoint.Client.ClientObject, 718

Microsoft.SharePoint.Client.ClientValueObject, 718

Microsoft.SharePoint.dll, 711 MicrosoftAjax.js, 736 NTLM, 717 objects and properties not retrieved by

default, table of, 743 objects as empty, 739 obtaining object identity automatically, 718 oWeb object, 739–742 pitfalls in working with, 739 preparing Visual Studio for JavaScript, 735 PropertyOrFieldNotInitializedException,

739, 741, 744 querying data, definition of, 720 referencing proxy files, 712 referencing the client object model DLLs in

a Silverlight application, 714 referencing the client object model DLLs in

a Windows application, 713 retrieving all properties of a web object,

code listing, 741 SharePoint client object namespaces, table

of, 715 SP namespace, 715 SP.ClientObject, 718 SP.ClientValueObject, 718 using client objects across methods, code

listing, 743 value objects, 743 XML request for all properties of a web

object, code listing, 741 See also administrative object model

ClientContext class, 717 constructors in the three client object

models, 723 ClientScript object, 367 cmdlets

Add-PsSnapin, 503 Add-SPSolution, 504

Page 9: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1091

Add-SPUserSolution, 505 combining, 500 compiling a list of all installed cmdlets, 503 creating and sharing, 500 definition of, 500 deploying solution packages using cmdlets,

499 Get-Help command, 504 Install-SPUserSolution, 505 naming convention for commands, 503 obtaining more information about a cmdlet,

504 Remove-SPUserSolution, 505 Uninstall-SPUserSolution, 505 See also PowerShell

CMDUI.XML, 617 Code Access Security (CAS), 98, 301 CodeBehind attribute, 434 CodePlex, 217 Collaborative Application Markup Language

(CAML) adding fields from another list, 220 building custom queries, 216 combining several joins together, 221 comparing to LINQ, 214 console application that joins two lists, code

listing, 222 creating a CAML query, 217 <FieldRef> element, table of attributes, 218 functions of, 215 GetItems method, 223 <GroupBy> element, 218 Holliday, John, 217 inner join, 221 Joins property, 221 left join, 221 ListAlias attribute, 221, 223 lookups, 220 MaxQueryLookupFields property, 221 multilookups, 220 operators for CAML queries, table of, 219 <OrderBy> element, 218

overcoming the manual construction of CAML queries, 217

ProjectedField property, 221 <ProjectedFields> element, 222 <Query> element, 218 query schema, 218 querying data from SharePoint lists, 216 schema.xml, 224 schemas, 215 security trimming, 216 ShowField attribute, 222 source types of a projected field, 222 SPFieldLookupValue object, 223 SPQuery object, 221 SPView object, 221 SPWebApplication object, 221 Type attribute, 222 understanding LINQ to CAML conversion,

253 using CAML-based joins and projections to

build views, 402 using comparison operators, 219 using joins, 220 using joins and projected fields, 222 using list joins and projections in site

templates, 224 using single quotes for attributes, 216 <Value> element, 218 XElement type, 217 See also Language Integrated Query (LINQ);

LINQ to SharePoint; LINQ to SQL CollectionNotInitialized exception, 721 column templates

building a SharePoint feature, 388 Column Creation page, 390 creating a reusable site column, procedure

for, 391 creating a template for a site column, 388 deploying and activating a feature using

stsadm.exe, 390 Elements.xml, code listing, 388 Feature.xml, code listing, 389, 394

Page 10: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1092

Field element, list of attributes, 389 Scope attribute, list of values, 389 See also list templates; site templates;

templates Columns array, 244 ComboBox control, 682 CommandDispatcher object, 675–676 CommandUIVisible property, 688 CommitAll, 1076 Common Language Runtime (CLR), xxi, 4 Complete installation, 9 concat function, 268 conditional scope

ConditionalScope class, 779 StartScope method, 779 using conditional scope (C#), code listing,

779 config.xml, 6 configuration database, types of content stored,

105 <configuration> node, 13 ConfigurationElement class, 62 ConfigurationSection class, 62 ConflictMode parameter, 246 Connect mode, 318 connection interfaces, 347 ConnectionConsumer attribute, 347, 355 ConnectionProvider attribute, 347, 353, 355 ConnectionsZone, 324 console-based applications

compiling applications running the SharePoint object model, 155

controlling console applications using command-line parameters, 157

creating, 155 Deserialize method, 159 handling output, 160 Microsoft.SharePoint.dll, 155 Properties class, 160 ReadFarm method, 161 Serialize method, 159

setting the x64 option in the Configuration Manager, 156

SharePoint grid, code listing, 161 using object constructors, 160 XDocument object, 157

Content control, 416, 433 Content Editor Web Part, 300 content pages, 556

editing, 93 <SafeControls> section, 94 unghosted or uncustomized, 93 using custom code in, 94

content placeholders, 563 Content Query Web Part (CQWP), 1072–1073 <content> tag, 557 content types, xxii, 53, 80

base types for lists and libraries, 186 configuring, 81 ContentTypes collection, 188 custom content type, 189 definition of, 166 elements of, 167, 186 FieldLinks collection, 188 Fields collection, 186 global fields, 186 handling loosely structured data, 166 predefined site columns, 187 SPContentType object, 186 SPField object, 186 SPFieldLink object, 186 treating as a form of polymorphism, 186 when to use content types

programmatically, 189 ContentDatabases property, 112 ContentDeploymentJob class, 1068 ContentDeploymentPath class, 1068 ContentPlaceHolder controls, 556–557 <contenttemplate> element, 318 content-to-content concept, 1072 <ContentType> element, 235 Content-Type HTTP header, 267

Page 11: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1093

ContentTypes collection, 188 ContentTypeTemplate property, 213 ControlAssembly property, 613, 615 ControlClass property, 613, 615 ControlledExport property, 379 ControlMode property, 628 Controls element, 674 ConvertFromDataRow method, 664 Coordinates type, 337 Coordinates.cs, 334 CoordinatesEditor.cs, 334 CoordinatesEditorPart.cs, 334 copyappbincontent command, 438 core.resx, 442, 450 Create method, 1037 CreateChildControls method, 297, 308, 312,

331–332, 337, 342, 355, 362, 367, 614, 635, 643

CreateEditorParts method, 330 CreateGroup method, 1076 CreateTerm method, 1076 CreateTermSet method, 1076 CreateViewSql method, code listing, 286 creating a web application, 63 CSS, 68 CUI.Page.CommandDispatcher class, 95, 679 CUI.Page.PageCommand class, 95 CurrentItem property, 653 custom code access policy, 305 custom field types, 185 CustomAction element, 607, 615 CustomActionContainer class, 611 CustomIndicatorField class, code listing, 634 CustomIndicatorFieldControl class, code

listing, 635 CustomIndicatorFieldEditControl.cs, code

listing, 641 CustomIndicatorFieldTemplate.ascx, code

listing, 637 CustomMapping attribute, 244 CustomMasterUrl property, 572–573 CustomPropertyToolPart class, 381

■ D dashboards, xxv data controls

JS Grid control, 702 SPGridView control, 694

<data> element, 311 data layer, xxi Data Services Update for .NET 3.5 SP1,

downloading, 261 Data Sources option, 41 DataContext class, 83, 231, 290–291 DatacontextDataContext class, 239 DataField property, 696 DataManager class

AllowUnsafeUpdates property, 472 BaseSPListItem class, 467 creating a LINQ to SharePoint layer for

existing lists, 467 creating an SPWeb Object with elevated

privileges, code listing, 466 obtaining a list instance from the current

SPWeb via the Lists property, 467 sample class providing type-safe ListItem

access, code listing, 472 serializable base class with standard fields,

code listing, 468 SPList object, 467 SPMetal object, 467

DataServiceContext class, 268 DataServiceQuery<T> property, 268 DataSourceID property, 701 DataTable class, 700 DataType property, 709 DataView class, 700 DateOptions class, 125 DateTime class, 125 ddlViews control, 182 DeactivateFeature method, 578 DeclarativeCatalogPart, 323 default.aspx, 57, 411, 420, 422

extended page, code listing, 416 skeleton page, code listing, 415

Page 12: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1094

default.master page, 299 DefaultTemplateName method, 635 DefaultView property, 180 DeleteOnSubmit method, 241 deletesolution command, 507 deploysolution command, 506 Deserialize method, 159 Design Mode, 203, 318 DetermineMasterPage method, 565 Developer Dashboard

activating using code, 22 activating using stsadm.exe, 20 activating via PowerShell, 21 trace information screen, 22 working with, 22

developer toolbox, xxiv development environment

Active Directory, 9 adding diagnostic output to your code, 23 Central Administration, 11 Complete installation, 9 config.xml, 6 configuring the necessary Windows features

for installing SharePoint, 7 Developer Dashboard, activating with code,

22 Developer Dashboard, activating with

stsadm.exe, 20 Developer Dashboard, activating with

PowerShell, 21 developing a plan for troubleshooting, 18 examining the event log, 19 examining the SharePoint and IIS logs, 19 extending the settings in the web.config file,

13 FilterPack, installing, 9 Hyper-V, 5 installation scenarios, 5 installing and configuring SharePoint using

setup.exe, 9 installing SharePoint on Windows Server

2008, procedure for, 5

installing SharePoint on Windows Vista or Windows 7, procedure for, 6

installing SharePoint on Windows Vista SP1 only, procedure for, 7

installing Visual Studio 2010, 11 learning the Microsoft internals of

SharePoint, 16 LINQ to SharePoint, 13 Microsoft.IdentityModel assembly, 9 programming against SharePoint’s internal

configuration or content databases, 15 prohibiting SharePoint installations on

Windows Vista or Windows 7 machines, 6

Reflector, 16 Roeder, Lutz, 16 running the SharePoint Products and

Technologies Configuration wizard, 10 services not normally required on a

development machine, 12 setting up, 4 setting up a Team Foundation Server, 11 setting up a virtual server on a physical

machine, 5 SharePoint object model, 14 SharePoint.exe, 6 SPMonitoredScope class, code listing, 23 SQL Server 2008 Express, 11 Standalone installation, 9 turning on developer-friendly error

messages in web.config, 18 turning tracing on and off, 20 using a remote development configuration,

5 using advanced .NET debugging methods,

20 VMware, 5 web services, 14 Windows Features dialog settings, 8 Windows Identity Foundation (WIF), 9 working against a remote server running

SharePoint, 4 dialog editor class, 664 Dialog framework, 724

Page 13: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1095

dialog master pages, 567 dialog.master, 344, 567 DialogControl property, 666 DialogFeatures parameter, 344 DialogMaster class, 346 DialogPicker classes, 661 dialogResult parameter, 728 DisplayListItem.aspx.cs, code listing, 626 DisplayMode property, 323 DisplayName property, 111, 445 Dispose method, 91 dlgframe.css, 732 document libraries

adding a folder programmatically, 199 definition of, 197 deleting a file, 200 deleting a file from a subfolder, 201 OpenBinary method, 198 OpenBinaryStream method, 198 recycling a file into the Recycle Bin folder,

200 retrieving a file from the Shared Documents

library, 197 SPDocumentLibrary object, 197 SPFile object, 198 streams, 197 uploading a file, 199

document management system (DMS) activating versioning for each list or library,

1077 additionalInformation parameter, 1080 administering metadata-based navigation,

1073 calling CommitAll after performing write

operations, 1076 CheckedOutBy field, 1076 checking out, changing, and checking in a

document programmatically, code listing, 1076

Content Query Web Part (CQWP), 1073 CreateGroup method, 1076 CreateTerm method, 1076

CreateTermSet method, 1076 creating a feature with a feature receiver,

code listing, 1081 creating a repository to retain business

documents, 1078 document set, 1072 integration with Microsoft Office client

applications, 1072 key terms when working with taxonomies,

1074 maintaining retention policies, 1080 managing metadata through content types

and document libraries, 1073 metadata taxonomies, setting and

maintaining, 1074 Microsoft.SharePoint.Taxonomy.dll, 1075 moving a document to the Records Center

using the SharePoint API, code listing, 1080

policy.xml, code listing, 1081 Records Center template, 1079 records management, 1078 retrieving a file’s history from the version

store, code listing, 1077 retrieving the current term store, code

listing, 1075 Reverse method, 1078 SendToOfficialFile method, 1080 SPFile class, 1080 unstructured silos, 1072 VersionLabel property, 1078

Document Object Model (DOM), 68 document sets

accessing programmatically, 212 activating, 209 advantages of, 209 checking whether an item is already in a set,

214 classes and structures, table of, 212 ContentTypeTemplate property, 213 definition of, 208 Document Set content type, list of settings,

211

Page 14: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1096

DocumentSet class, list of methods and properties, 212

GetDocumentSet method, 213 Microsoft.Office.DocumentManagement.dll

assembly, 209 Microsoft.Office.DocumentManagement.D

ocumentSets namespace, 212 DocumentTemplates element, 420 DoesUserHavePermissions method, 148 Domain Name System (DNS), 56 DoNotEncodeUrl, 122 DropDownList control, 181, 590 DynamicMasterPageFile property, 435, 563–

564, 566

■ E Edit mode, 318 EditorPart class, 330 EditorPartCollection, 330 EditorZone, 323 <EditZone> control, 328 element files, 85 ElementManifest node, 483 Elements.xml, 311, 348

code listing, 193, 510 column template, code listing, 388 definition of site receivers, code listing, 459 elements and attributes, table of, 484 example of, 483 feature element types, table of, 484 ListInstance element, 484 Receivers node, 194

e-mail sending e-mail using SendMail from a WCF

service, 465 sending e-mail using SendMail, code listing,

464 sending e-mail via ASP.NET, code listing,

462 SmtpClient class, 462 SPWebApplication, 463 StringDictionary, 465

System.Collections.Specialized namespace, 465

Empty SharePoint Project template, 513, 525 enable32BitAppOnWin64 property, 45 endpoints, definition of, 258 EnsureChildControls method, 332 EnsureUser method, 141 enterprise content management (ECM), xxiv Enterprise Service Bus (ESB), 42 entity identity, 233 EntitySet property, 264 EntityState property, 247 eq operator, 268 eSATA, xvii event log, examining, 19 event receivers

asynchronous item-level events, table of, 190

asynchronous list-level events, table of, 191 categorizing SharePoint events, 189 creating and deploying an event receiver,

192 Elements.xml, 193 EventFiringEnabled property, 197 handler methods, code listing, 194 HasUniqueRoleAssignments property, 196 OpenWeb method, 196 RoleDefinitions property, 196 RunWithElevatedPrivileges method, 196 SPItemEventReceiver class, 195 SPListEventReceiver class, 191 SPListItemEventReceiver class, 189 synchronous item-level events, table of, 190 synchronous list-level events, table of, 191 using an event receiver to change

permissions, code listing, 195 EventFiringEnabled property, 197 events

<Assembly> element, 460 base classes for event definitions, table of,

451

Page 15: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1097

creating a feature receiver class, code listing, 454

creating a feature receiver project, procedure for, 453

creating a feature with the application page’s navigation, 453

creating a web event receiver class, code listing, 460

definition of site receivers in elements.xml, code listing, 459

event model, overview of, 451 events fired when adding, moving, or

deleting a site or site collection, 458 feature receiver events, table of, 452 feature.xml, 458 handling error conditions by throwing an

exception, 461 inheriting from event receiver base classes,

451 Microsoft.SharePoint.dll, 451 ReceiverAssembly, 457 ReceiverClass class, 457 registering using XML files, 99 SiteDeleted, 458 SiteDeleting, 458 SPListEventReceiver type, 98 SPWebEventReceiver class, 458, 460 SPWebEventReceiver type, 98 SPWorkflowEventReceiver class, 99 Synchronization attribute, 459 <Synchronization> element, 459 using event receivers to create event

handlers, 98 web.sitemap, 453

Excel, xxv, 703 exceptions

ExceptionHandlingScope class, 777 how not to use exception-handling scope

(C#), code listing, 776 StartScope method, 778 using exception-handling scope (C#), code

listing, 777 using exception-handling scope

(JavaScript), code listing, 778

execadmsvcjobs command, 506 executeQuery method, 720, 740 executeQueryAsync method, 720, 737, 740 ExecuteRegisteredAsyncTasks method, 370 execution environment, xxi Expander element, 1052 ExportControlledProperties property, 379 Extensions class

AllowUnsafeUpdates property, 477 Cache object, 478 caching queries to improve performance,

478 CanCreateItems method, 474 CanDeleteItems method, 474 GetItemsByFieldEquals method, 474 GetItemsByQuery method, 478 GetLookup method, 477 getting a list by its internal name, 473 RootFolder.Name property, 473 SPList object, 474 SystemUpdate method, 477 Update method, 477

external content types (ECT), description of, 271

External Content Types option, 41 external data access, options for accessing

SharePoint data remotely, 255 external links, 580

■ F F5 deployment feature, 5 failedCallback parameter, 737 Fast Query Language (FQL), 1060 FAST Search Server 2010 for SharePoint, 1058 Feature Designer, 33, 450, 516 feature event receiver, 70 feature.xml, 85, 87, 89, 348

ActivateOnDefault property, 458 AlwaysForceInstall property, 458 code listing, 509 column template, code listing, 389

Page 16: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1098

ElementManifest node, 483 elements and attributes, table of, 482 example of, 482 Hidden property, 458 Scope attribute, 686

FeatureActivated event, 394, 438 FeatureDeactivated event, 394 FeatureID attribute, 510 FeatureLinkSection control, 605 FeatureMenuTemplate control, 605–606, 614 FeatureReceiver class, code listing, 394 features

activating or deactivating, 86 building a simple WPF application for

handling site features, 1049 classes related to the SPFeature base class,

87 configuring, 87 definition of, 388 Expander element, 1052 feature.xml, 87 hidden features, 1049 opening a features folder in Windows

Explorer, 482 scope levels, list of, 86 scopes of a feature, 483 SPElementDefinition class, 86 SPElementDefinitionCollection object, 86 SPFeature class, 86 SPFeatureCollection object, 86 SPFeatureDefinition object, 86 SPFeatureDefinitionCollection object, 86 SPFeatureDependency object, 86 SPFeatureProperty object, 86 SPFeaturePropertyCollection object, 86 typical content of, 481 WPF application, code listing, 1052 XAML code for the WPF application’s UI,

code listing, 1049 Features folder, 33 federated search object model, 1059 Fiddler, 740

functions of, 25 Internet Explorer Developer Toolbar,

functions of, 27 proxy settings for receiving incoming and

outgoing traffic, 26 starting, 26 support for breakpoints, 27 using your machine name as the hostname,

27 field controls

<asp:Button>, 629 BaseFieldControl class, 625 ControlMode property, 628 CreateChildControls method, 635, 643 creating a custom field type for lists, 630 creating a new list item, 626 custom field implementation, requirements

of, 630 custom field with two custom properties,

illustration of, 632 CustomIndicatorField class, code listing,

634 CustomIndicatorFieldControl class, code

listing, 635 CustomIndicatorFieldEditControl.cs, code

listing, 641 CustomIndicatorFieldTemplate.ascx, code

listing, 637 default field types for list items, 624 DefaultTemplateName method, 635 displaying or editing list items, 624 DisplayListItem.aspx.cs, code listing, 626 field editor user control, implementing,

638–639 field elements and their relationships,

illustration of, 630 field type mappings, table of, 624 field-rendering template, 637 FieldRenderingControl property, 628, 634 FieldTypeClass attribute, 632 FindControlRecursive method, 642 FindControls method, 629 fldtypes_CustomIndicatorField.xml, 631,

638

Page 17: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1099

Focus method, 636 GetValidatedString method, 634 IFieldEditor interface, table of methods, 641 InputFormSection control, 641 ItemContext property, 628 Microsoft.SharePoint.WebControls

namespace, 624 MyNewList, 626 OnSaveChange method, 643 postback event handler implementation,

code listing, 629 PropertySchema section, 632 RenderContext property, 628 RenderingTemplate web control, 637 RenderPattern section, 632 ShowToolTipCustomProperty property, 634 SPField object, 625, 634 SPFieldNumber object, 634 SPList class, 625 SPListItem object, 626 tips for getting a custom field to work, 638 ToolTipCustomProperty property, 634 Update method, 629 UpdateFieldValueInItem method, 629 user control for editing custom field

properties, 640 Value property, 635 XML file for the field type definition, code

listing, 631 XSL stylesheets for custom fields, 633 XSL template, code listing, 633 XsltListViewWebPart, 632–633

field editor user control, 638 FieldCallback, 357 fieldData parameter, 360 FieldLinks collection, 188 FieldRef element, 403 FieldRenderingControl property, 628, 634 fields, 77, 185 Fields property, 109 <FieldRef> element, 81, 218 FieldTypeClass attribute, 632

FilterDataFields property, 701 FilteredDataSourcePropertyFormat property,

702 FilteredDataSourcePropertyName property,

702 FilterExpression property, 702 FilterPack, installing, 9 FindControlRecursive method, 642 FindControls method, 629 Firefox, 68 fldtypes_CustomIndicatorField.xml, 631, 638 fldtypes.xml, Fields element in, 398 FlyoutAnchor control, 682 Focus method, 636 ForEach method, 242 foreign list, 402 FormatDate method, 119 FormDigest web control, 723 forms, xxv FormsAuthenticationLoginInfo property, 718 full trust solutions, 88 FullTextSqlQuery class, 1060 full-trust proxy

API architecture, 497 creating, 498 FullTrustProxyArgs.cs, code listing, 530 FullTrustProxyOps.cs, code listing, 531 purpose of, 497 SPProxyOperation class, 498 SPProxyOperationsArgs class, 498

■ G Gantt pane, 703 GetAvailablePageLayouts method, 1068 GetContextSite method, 118 GetContextWeb method, 118 GetCustomMenuItemActions method, 606 GetDataTable method, 707 GetDocumentSet method, 213 GetEntity method, 670 GetExtension method, 354

Page 18: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1100

GetFieldInterface method, 359 GetFieldValue method, 359 GetFileByServerRelativeUrl method, 769 GetFontFamilyMenuXml function, 683 GetFullUrl method, 120 GetGridColumns method, 709 GetGridFields method, 709 Get-Help command, 504 GetItems method, 223 GetItemsByFieldEquals method, 474 GetItemsByQuery method, 478 GetList method, 126 GetLookup method, 477 GetMappedPage method, 567 GetPublishingPages method, 1068 GetRelatedFields method, 251 GetSiteData method, 697 GetString method, 444 GetToolParts method, 381 GetValidatedString method, 634 GetXmlMapping method, 291 ghosting, definition of, 67 Global Assembly Cache (GAC), 31 global fields, 186 Google Maps, 334 grid pane, 703 GridSerializer, table of properties, 706 GridView control, 17, 180 <GroupBy> element, 218 GroupBy operator, 228 GroupedDropDownList control, 353 GroupId property, 609 groupName parameter, 670 groups

adding users to a SharePoint group (C#), code listing, 761

adding users to a SharePoint group (JavaScript), code listing, 761

AddUser method, 761 AssociatedMemberGroup property, 761

retrieving group members (C#), code listing, 762

retrieving group members (JavaScript), code listing, 762

UserCreationInformation class, 761 See also user profiles

Groups element, 674 GUIDs, 1039

GUID generator tool, 509

■ H HandleAccessDenied method, 152 handleCommand method, 679 handlers, 59, 65 HasUniqueRoleAssignments property, 196, 741 HeaderText property, 696 hidden attribute, 396 hidden features, 1049 Hidden property, 722 HiddenMenuItems property, 699 Hide method, 381 HideCustomAction element, 620 Holliday, John, 217 HomeDataContext, 269 host headers, 56 HTML, 68 HtmlDesignerAttribute, 328, 343 HtmlEncode attribute, 182 HTMLEncode method, 381 HtmlGenericControl class, 353 HTTP handlers, 60 HTTP runtime, 54 http.sys, 58 HttpApplication object, 113 HttpContext object, 60, 1047 HttpRequest, 54 HttpResponse, 54 Hyper-V, xvii, 5

■ I ICommandHandler pseudointerface, 677

Page 19: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1101

ICustomMapping interface, 244 IDesignTimeHtmlProvider interface, 380 IDisposable interface, 125 IEnumerable<T> interface, 226 IFieldEditor interface, table of methods, 641 IHttpAsyncHandler interface, 60 IHttpHandler interface, 55, 60 IHttpModule interface, 55 IImageSelectorProvider interface, 353 Image element, 366 ImageSelectorProvider.cs, 348 Import VSeWSS Project Visual Studio template,

545 ImportCatalogPart, 323 <importErrorMessage> element, 98, 311 incoming claims, 136 index databases, 105 Inherits attribute, 433–434 initFontSizeDropDownMenu function, 683 InitialTabId property, 688 InitPageComponent function, 692 inline styles, 595 inner join, 221, 402 input form controls

BaseValidator class, table of properties, 646 InputField validator controls, 646 InputFormCheckBox control, 645 InputFormCheckBoxList control, 645 InputFormCompareValidator control, 648 InputFormCustomValidator control, 649 InputFormRadioButton control, 645 InputFormRangeValidator control, 648 InputFormRegularExpressionValidator

control, 648 InputFormRequiredFieldValidator control,

647 InputFormSection and InputFormControl

controls, code listing, 643 InputFormTextBox control, 644 Permissions property, 650 PermissionsString property, 650 rich text support, 644

ShouldRender method, 651 SPLinkButton class, 651 SPSecurityTrimmedControl class, table of

properties, 650 System.Web.UI.IValidator interface, 644 <table> tag, 643 using check boxes and radio buttons, code

listing, 645 InputField validator controls, 646 InputFormCheckBox control, 645 InputFormCheckBoxList control, 645 InputFormCompareValidator control, 648 InputFormCustomValidator control, 649 InputFormRadioButton control, 645 InputFormRangeValidator control, 648 InputFormRegularExpressionValidator control,

648 InputFormRequiredFieldValidator control, 647 InputFormSection control, 641 InsertOnSubmit method, 242 Installed Templates window, 440 Install-SPUserSolution cmdlet, 505 Instances property, 114 Integrated Scripting Environment (ISE),

features of, 501 IntelliSense, 68

enabling in custom application pages, 736 executeQueryAsync method, 737 failedCallback parameter, 737 succeededCallback parameter, 737 using within JS files, 738 Visual Studio’s lack of support for, 735

internal links, 580 Internet Explorer, Developer Toolbar functions,

27 Internet Information Services (IIS), 53–54 Internet Services API (ISAPI)

applications, definition of, 56 aspnet_isapi.dll, 55, 57 authentication, 57 developing in, 54 IHttpHandler interface, 55

Page 20: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1102

IHttpModule interface, 55 IIS 6, 55 IIS 7 integrated pipeline, 55 ISAPI extensions, 55 ISAPI filters, 55 purpose of, 54 relationship between sites and virtual

directories, 56 root virtual directory, 57 sites, applications, and virtual directories in

IIS 7, 56 understanding the relationship between

ISAPI and ASP.NET, 54 unified request-processing pipeline, 55 using a host header, 56 virtual directory, definition of, 57 Virtual Path Provider, 57, 63, 67 web.config, 57

IntlDate class, 125 IPostBackEvent interface, 693 IQueryable<T> interface, 226 IRibbonMenu interface, 95 IsAllowedField method, 287 IsClientScriptBlockRegistered method, 367 IsDlg parameter, 731 isolated programming style, 117, 154 IsPopUI property, 731 isSticky parameter, 735 IssueQuery method, 670 issuer, 136 IsUrlFull method, 125 IsUrlRelative method, 125 IsUrlSafeForRedirect method, 121–122 item permissions, 137 ItemContext property, 628 IWebActionable interface, 317, 324 IWebEditable interface, 317 IWebPart interface, 317, 324 IWebPartField interface, 356 IWebPartRow interface, 356 IWebPartTable interface, 356

■ J JavaScript

asynchronous data retrieval, 720 building dialog pages, 729 client object model, 711 Dialog framework, 724 dialogResult parameter, 728 displaying an external web page as a pop-up

dialog, 725 dlgframe.css, 732 enabling JavaScript IntelliSense in custom

application pages, 736 executeQuery method, 740 executeQueryAsync method, 740 FormDigest web control, 723 IsDlg parameter, 731 IsPopUI property, 731 isSticky parameter, 735 JsGrid.debug.js, 715 JSGrid.Gantt.debug.js, 715 JSON response containing two properties of

a web object, code listing, 741 lack of support for JavaScript IntelliSense

within Visual Studio, 735 load function, 740 MicrosoftAjax.js, 736 onFailedCallback function, 740 onSucceededCallback function, 740 opening a page directly or within a pop-up

dialog, 731 <reference> directive, 738 removeNotification function, 735 returnValue parameter, 728 s4-notdlg class, 731 SharePoint:CssLink web control, 732 <SharePoint:ScriptLink> tag, 715, 735 showModalDialog function, table of

options, 726 SP.Core.debug.js, 715 SP.debug.js, 715 SP.Ribbon.debug.js, 715 SP.Runtime.debug.js, 715

Page 21: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1103

SP.UI.Dialog.debug.js, 725 SP.UI.Dialog.js, 725 SP.UI.DialogResult enumeration, 728 SPContext class, 731 supported browsers, 715 usability improvements in the SharePoint

2010 user interface, 725 using callbacks, code listing, 727 using IntelliSense within JS files, 738 window.frameElement property, table of

functions for finishing dialogs, 728 working with dialogs and return values,

code listing, 728 working with modal pop-up dialogs, 724 XML request to retrieve two properties of a

web object, code listing, 740 See also Ajax; Visual Studio 2010

JavaScript Object Notation (JSON), 68, 257, 712 joins, 220 JS Grid control

Access Services grid, 702 asynchronous validation, 703 converting DataTable data into grid

columns and fields, code listing, 708 converting results of a LINQ query to a

DataTable, code listing, 707 data validation using a widget framework,

704 DataType property, 709 default copy and paste operations, 703 displaying a JS Grid control in an

application page, code listing, 705 displaying read-only data from a data table,

705 editing and rendering tabular data, 702 EditMode enumeration, list of values, 704 embedding, 705 exporting data to Excel, 703 features of, 703 Gantt chart data view, 702 GetDataTable method, 707 GetGridColumns method, 709 GetGridFields method, 709

grid pane, 703 GridSerializer, table of properties, 706 highlighting of errors, 703 Linq2DataTable method, code listing, 707 precedence of edit mode, 704 <SharePoint:JSGrid> tag, 705 using the JS Grid control in custom pages or

controls, 704 JsGrid.debug.js, 715 JSGrid.Gantt.debug.js, 715

■ K Kerberos, 57, 717 Key property, 264 key.snk, 312 KeywordQuery class, 1060

■ L Language Integrated Query (LINQ)

advantages of, 214 aggregators, 229 anonymous type, creating, 228 architecture of, 225 comparing to CAML, 214 creating new enumerable constant data,

228 definition of, 224 GroupBy operator, 228 IEnumerable<T> interface, 226 IQueryable<T> interface, 226 keywords and the C# compiler, 226 operators and corresponding C# syntax,

table of, 226 orderby keyword, 227 overview of, 224 SelectMany operator, 228 selectors, 230 semi-efficient LINQ operators, list of, 232 syntax of, 226 understanding basic queries, 227 using lambda expressions, 230

Page 22: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1104

See also Collaborative Application Markup Language (CAML); LINQ to SharePoint; LINQ to SQL

LayoutsBasePage class, 563, 571 LayoutsPageBase class, 91, 118, 139, 433–434

full class diagram, 432 security checks provided, 432

LeadAuthorsDbItem class, 288 left join, 221, 402 libraries, xxi LimitedWebPartManager class, 769 line-of-business (LOB) applications, xvi, xxv–

xxvi LinkButton event handler, 322 linksList, 509 LINQ to SharePoint, 13, 43

Attach method, 242 ChangeConflict property, 247 ChangeConflictException, 247 Columns array, 244 combining with LINQ to Objects, 243 ConflictMode parameter, 246 creating a proxy class, 232 CustomMapping attribute, 244 DataContext class, 231 DatacontextDataContext class, 239 defining your own classes, 249 DeleteOnSubmit method, 241 deleting an item, code listing, 241 description of, 230 enforcing referential integrity, 249 entity identity, 233 EntityState property, 247 examining the current list settings, 250 example of retrieving data using LINQ, code

listing, 238 executing queries, 82 ForEach method, 242 GetRelatedFields method, 251 handling queries containing functions, 243 ICustomMapping interface, 244 inefficient queries, 231

InsertOnSubmit method, 242 Log property, 253 managing concurrency conflicts for new

columns, 245 MemberChangeConflict type, table of

properties, 248 MemberConflicts collection, 248 Microsoft.SharePoint.Linq namespace, 231 operator restrictions, 231 recycling an item, code listing, 241 Resolve method, 248 resolving conflicts, 246, 248 retrieving joined data, code listing, 240 SPMetal.exe, 232 SPRelatedField type, 251 statically generated classes, 243 SubmitChanges method, 233, 241, 246–247 tracking database changes, 246 understanding LINQ to CAML conversion,

253 understanding the LINQ to SharePoint

provider, 231 updating an item using the ForEach pattern,

242 using a custom mapping, 243 using the EntityList class, code listing, 240 writing changes to the SharePoint content

database, 233 See also Collaborative Application Markup

Language (CAML); Language Integrated Query (LINQ); LINQ to SQL

LINQ to SQL AllUserData table, most important

columns, 280 AllUserData table, query result, 282 BooksDbItem class, 288 CreateViewSql method, code listing, 286 DataContext class, 290–291 dynamically creating SQL views for

SharePoint lists, 284 dynamically generated XML mapping, code

listing, 290 GetXmlMapping method, 291

Page 23: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1105

IsAllowedField method, 287 LeadAuthorsDbItem class, 288 limitations of accessing the content

database directly, 291 managing fast queries over large SharePoint

lists, 280 method for dynamic generation of mapping

XML, 290 model classes for the two SQL views to use

with LINQ, 288 querying the number of books per lead

author, code listing, 289 querying with, 288 SPField class, 284 SQL CREATE VIEW script for the SharePoint

list Books, 285 SQL function script for converting UTC time

to local time, 284 SQL SELECT query that returns all books,

283 SQL view creation script for the SharePoint

list LeadAuthors, 285 storing datetime database values in

Universal Time Coordinated (UTC), 284

System.Linq namespace, 289 understanding the SharePoint content

database, 280 UserData built-in view, 283 using direct SQL access for best

performance, 292 See also Collaborative Application Markup

Language (CAML); Language Integrated Query (LINQ); LINQ to SharePoint

Linq2DataTable method, code listing, 707 list definition template, 34 List Definition Visual Studio 2010 project

template, 392 list definitions, 392 <List> element, 235 list permissions, 137 list templates

AllItems.aspx, 394, 402

basic list-definition structure in schema.xml, 396

building a chain of joins, 402 changing list rendering in SharePoint

Designer, procedure for, 402 ContentType, 397, 400 ContentTypes element in schema.xml, 397 creating a custom list definition, 392 creating a new list using the SharePoint API,

procedure for, 408 creating custom forms, 405 creating list templates in the SharePoint UI,

392 defining a lookup field, 399 Elements.xml for list definition deployment,

code listing, 395 FeatureActivated event, 394 FeatureDeactivated event, 394 FeatureReceiver class, code listing, 394 Field specification in schema.xml, code

listing, 398 FieldRef element, 403 Fields element in fldtypes.xml, 398 foreign list, 402 hidden attribute, 396 inner joins, 402 left joins, 402 List Definition Visual Studio 2010 project

template, 392 list definitions, 392 List element in schema.xml, 396 ListAlias attribute, 403 lookup field specification in schema.xml,

399 main.xsl, 402 MaxQueryLookupFields property, 404 onet.xml, 397, 407 primary list, 402 ProjectedFields element, 404 query specification in a view, 405 schema.xml, 393 SecurityBits attribute, 407 setting a type attribute, 396

Page 24: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1106

Solution Explorer, 392 specification of joins defined in

schema.xml, code listing, 403 specification of the Forms element in

schema.xml, 405 specifying a BaseType ID, 397 specifying the four required list forms inside

the list definition file, 394 types of, 392 Url property, 397 using a custom site definition, procedure

for, 407 using CAML-based joins and projections to

build views, 402 using custom list templates, 406 using SharePoint Designer to create a new

list from an installed list template, 408 using the SharePoint UI, procedure for, 406 ViewFields element in schema.xml, 404 viewpage.aspx page, 394 Views element in schema.xml, 400 ViewStyle element, 402 when to use, 391 XSL-based view rendering, 401 XSLT List View Web Part, 402 See also column templates; site templates;

templates List Web Part, 347 List<T> element, 170 List.Fields property, 751 ListAdministrationSelector control, 652 ListAlias attribute, 221, 223, 403 ListInstance element, 484 ListItemCollectionPosition property, 293, 780 lists, xxi, 53, 72

accessing large lists, 780 accessing list items, 755 Add method, 169, 171 AddFieldAsXml method, 752 adding a lookup, 171 adding an attachment to a list item, 176 adding fields to a list, 171

adding items to a list, 173 AddLookup, 171 ArgumentException, 174 asynchronous list-level events, table of, 191 calling DeleteObject, 754 changing field properties programmatically,

172 checking whether a list already exists, 170 classes related to the SPList base class, 75 content types, 166 copying an attachment, 179 creating a new list (C#), code listing, 752 creating a new list (JavaScript), code listing,

752 creating a new list item (C#), code listing,

758 creating a new list item (JavaScript), code

listing, 758 creating programmatically, 169 defining and using views, 180 defining custom field types, 171 deleting a list (C#), code listing, 754 deleting a list (JavaScript), code listing, 754 deleting a list item (C#), code listing, 760 deleting a list item (JavaScript), code listing,

760 deleting an existing attachment, 177 downloading a file, 178 downloading an attachment, 177 DropDownList control, 181 elements of, 165 enumerating a fields collection, 173 handling huge lists, 179 List<T> element, 170 List.Fields property, 751 ListCreationInformation class, 752 ListItemCollectionPosition property, 780 ListItemCreationInformation class, 758 metadata, 166 modifying a property of an existing

SharePoint list (C#), code listing, 753

Page 25: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1107

modifying a property of an existing SharePoint list (JavaScript), code listing, 754

OfType operator, 170, 173 OnQuickLaunch property, 170 Package object, 176 paging a large list (C#), code listing, 780 reading an attachment for a specific list

item, 175 reading an attachment via the folder

hierarchy, 176 retrieving all the items in a list (C#), code

listing, 755 retrieving all the items in a list (JavaScript),

code listing, 756 retrieving all the SharePoint lists for a web

site (C#), code listing, 750 retrieving all the SharePoint lists for a web

site (JavaScript), code listing, 750 retrieving list items using CAML (C#), code

listing, 756 retrieving list items using CAML

(JavaScript), code listing, 757 retrieving list schema information (C#),

code listing, 751 retrieving list schema information

(JavaScript), code listing, 751 SharePoint’s built-in lists, table of, 167 SPAttachmentCollection array, 175 SPBaseType enumeration, 169 SPDocumentLibrary class, 74 SPField object, 171, 173 SPFieldType enumeration, 171 SPFieldUserValueCollection object, 175 SPFile object, 175 SPList object, 74, 174 SPListCollection type, 169 SPListDataSource class, 74 SPListEventProperties class, 74 SPListEventReceiver class, 74 SPListItem object, 75 SPListItemCollectionPosition class, 179 SPListItemVersion class, 75 SPQuery object, 165, 179

synchronous list-level events, table of, 191 System.IO.Packaging namespace, 176 TemplateType property, 752 Title property, 752 Update method, 171 updating a list item (C#), code listing, 759 updating a list item (JavaScript), code

listing, 759 users creating and managing their own data

store, 165 using CAML to query data from SharePoint

lists, 216 using LINQ to filter a list, 173 Web.Lists property, 750 working with attachments, 175 working with collections, 174

ListSiteMapPath control, 584 load function, 740 Load method, 720–721 LoadControl method, 308 LoadQuery method, 720–721 Local property, 111 localization

application resources, 437 AssemblyInfo.cs, 448 copying resources using the

copyappbincontent command, 438 core.resx, 442, 450 defining a static resource per item, 440 defining a static resource per solution, 440 DisplayName property, 445 GetString method, 444 Installed Templates window, 440 LocalizedWebDisplayNameAttribute class,

code listing, 444 naming convention for resource files,

examples of, 436 preparing a project’s web resources,

procedure for, 446 provisioning resources, 437 resource files, folder locations of, 437 ResourceKey, 450

Page 26: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1108

ResourceManager class, 443, 448 Resources File project template, 440 Resources folder, 438 RESX files, 436 runtime resources, 437 satellite assemblies, 439 setting up and using resources within

SharePoint, 436 System.Configuration assembly, 443, 448 System.Resources namespace, 443 using an embedded resource in a Web Part,

code listing, 447 using resources for linked data, 445 using resources for localization with

embedded resource files, 443 using resources in Web Parts, 439 using resources to localize a feature, 449 using resources to localize Web Part

attributes, 444 using resources within SharePoint

elements, 439 using static resource files, 442 web references, 446 WebResource.axd, 446

LocalizedWebDisplayNameAttribute class, code listing, 444

LocalSPRequestWarnCount, 133 Location property, 609 LockLayout property, 382 Log property, 253 lookup fields, defining, 399 lookups, 171, 220

■ M main.xsl, 402 makecab.exe, 511

creating a cab (WSP) file, 488 example data definition file (DDF), code

listing, 488 MakeTabAvailable method, 688 Manage Service Application page, 114 managed code extensions, 54

managed modules, 60 management shell, 502 manifest.xml, 89

code listing, 510 elements and attributes, table of, 487 example of, 486

MapLayoutsVirtualPath method, 567 master pages, xxiii, 93

AllProperties property, 576 application master pages, 559 application pages and content pages

sharing the same master page, 563 application.master, 560, 563 applicationv4.master, 563 applying recursively to all child sites, 575 autorepairing master pages that contain

errors, 565 characteristics of, 556 content pages, 556 content pages versus application pages, 571 content placeholders, 563 <content> tag, 557 ContentPlaceHolder controls, 556–557 CustomMasterUrl property, 572–573 DeactivateFeature method, 578 default.master and custom.master tokens in

application pages, 563 definition of, 555 DetermineMasterPage method, 565 dialog.master, 567 dynamic tokens, 572 DynamicMasterPageFile property, 563–564,

566 example of, 556 falling back to a ghosted version of the

default master page, 565 GetMappedPage method, 567 handling in custom galleries, 95 improvements to, in SharePoint 2010, 562 layout of the placeholders within a master

page, 561 LayoutsBasePage class, 563, 571

Page 27: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1109

MapLayoutsVirtualPath method, 567 @Master directive, 556 master page gallery, 574 MasterPageFile property, 556, 563–564 MasterPageReferenceEnabled property,

565–566 MasterUrl property, 572–573 merging, 556 Microsoft.SharePoint.ApplicationPages.dll

assembly, 571 minimal.master, 571 OldCustomMasterUrl property, 578 OldMasterUrl property, 578 @Page directive, 556, 558, 563, 572 placeholder IDs in master pages, table of,

560 placeholders in dialog.master, table of, 568 Properties property, 576 redirecting default application pages to

custom application pages, 566 RequiresHighReliability property, 565 ribbon bar, 571 safeguards for application pages, 565 simple.master, 571 simplev4.master, 563, 571 site (custom) master page, 558 SPVirtualPathProvider class, 566 SPWeb object, 565 SPWebApplication class, 566–567 static master page tokens, 573 storing master pages in the master page

gallery, 574 system (default) master page, 557 System.UI.MasterPage, 556 tokens, 564 turning off dynamic master pages at the

web application level, 565 types of, 557 UnsecuredLayoutsBasePage class, 563 UpdateMappedPage method, 566 v4.master, 95, 571 ViewListsPage class, 563, 571

See also application pages master-detail pattern connection scenario, 356 MasterPageFile property, 433, 556, 563–564 MasterPageReferenceEnabled property, 565–

566 MasterUrl property, 572–573 MaximumDynamicDisplayLevels property,

581–582 MaxQueryLookupFields property, 221, 404 MemberChangeConflict type, table of

properties, 248 MemberConflicts collection, 248 merging, 556 metadata, 166

administering metadata-based navigation, 1073

calling CommitAll after performing write operations, 1076

CreateGroup method, 1076 CreateTerm method, 1076 CreateTermSet method, 1076 key terms when working with taxonomies,

1074 managed metadata, definition of, 1073 managing metadata through content types

and document libraries, 1073 Microsoft.SharePoint.Taxonomy.dll, 1075 retrieving the current term store, code

listing, 1075 taxonomies, setting and maintaining, 1074

Microsoft Management Console (MMC), 4 Microsoft Message Queuing (MSMQ), 56 Microsoft Office documents

activating the developer main tab, procedure for, 203

adding placeholders via controls, 202 creating a helper class with WordML

elements, code listing, 208 creating and storing Office documents, 201 creating documents from templates, 204 Design Mode, 203 generating template-based reports in

WordML, code listing, 205

Page 28: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1110

Microsoft.Office.DocumentManagement.dll assembly, 209

Microsoft.Office.DocumentManagement.DocumentSets namespace, 212

Open Packaging Convention (OPC), 201 OpenBinaryStream method, 204 Package object, 204 SPDocumentLibrary object, 204 System.IO.Packaging namespace, 204 using LINQ to XML, 204 XML data files and zipped packages, 201 XML Paper Specification (XPS), 204

Microsoft.IdentityModel assembly, 9 Microsoft.Office.Server.Search.Query

namespace, 1060 Microsoft.SharePoint assembly, 432 Microsoft.SharePoint namespace, 109, 118–119 Microsoft.SharePoint.ApplicationPages.dll

assembly, 571 Microsoft.SharePoint.ApplicationPages.Picker

class, 666 Microsoft.SharePoint.Client namespace, 715 Microsoft.SharePoint.Client.ClientObject, 718 Microsoft.SharePoint.Client.ClientValueObject,

718 Microsoft.SharePoint.Client.dll, 713 Microsoft.SharePoint.Client.Runtime.dll, 713 Microsoft.SharePoint.Client.Silverlight.dll, 714 Microsoft.SharePoint.Client.Silverlight.Runtim

e.dll, 714 Microsoft.SharePoint.dll, 155, 451, 711 Microsoft.SharePoint.Linq namespace, 231 Microsoft.SharePoint.Publishing.Administratio

n namespace, 1068 Microsoft.SharePoint.Search.Query

namespace, 1060–1061 Microsoft.SharePoint.SPContext class, 117–118 Microsoft.SharePoint.Taxonomy.dll, 1075 Microsoft.SharePoint.Utility namespace, 125 Microsoft.SharePoint.WebControls namespace,

118, 432, 623–624, 656, 673 Microsoft.SharePoint.WebPartPages

namespace, 299, 325, 343

Microsoft.Web.CommandUI assembly, 310 MicrosoftAjax.js, 736 minimal.master, 571 <Module> element, 76 modules, 59–60 Modules section, 420 MSDN, 16 MsdnLinkList.wsp, 512 MsdnLinks list, 508–509 ms-toolbar CSS class, 598 multilookups, 220 My Sites

displaying the latest activities of the current user, code listing, 1065

UserProfileManager class, 1065 working with My Sites programmatically,

1065 MyCustomRibbon.xml, code listing, 686 myGrid_Sorting method, 700 MyNewList, 626 MyPageBase class, code listing, 434

■ N Named Pipes, 56 NameSpace attribute, 69 namespaces

objects of the Administration namespace, 103

overview of, 103 native modules, 60 NavBarHome attribute, 420, 422 NavBarLink element, 418 NavBars element, 418 NavigateUrl property, 673 navigation

adding, modifying, or removing navigation link items, 582

breadcrumb navigation, 583 browsing through all available navigation

providers, 590 DropDownList element, 590 external links, 580

Page 29: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1111

implementing a site map provider, code listing, 585

internal links, 580 ListSiteMapPath control, 584 main navigation controls, list of, 578 MaximumDynamicDisplayLevels property,

581–582 navigation providers, 586 NavigationType property, 589 PopoutMenu web control, 583 quick launch navigation, 581 SharePoint Server navigation providers,

table of, 588 <SiteMap> element, 586 siteMapFile attribute, 587 siteMapNode hierarchy, 588 SiteMapProvider class, table of abstract

members, 585 SPContentMapProvider class, 583, 587 SPNavigationNode class, 580, 582 SPNavigationProvider class, 587 SPSiteMapProvider class, 583, 587 SPTreeView web control, 584 SPXmlContentMapProvider class, 584, 587 StartingNodeUrl property, 581 StaticDisplayLevels property, 581 top link bar navigation, 579 tree view navigation, 584 TreeView element, 590 turning on tree view navigation, 578 understanding ASP.NET site map providers,

584 UseSimpleRendering property, 581

.NET AuthenticationMode property, 718 client object model, 711 Microsoft.SharePoint.Client.dll, 713 Microsoft.SharePoint.Client.Runtime.dll,

713 .NET Framework, xviii, 4 referencing the client object model DLLs in

a Windows application, 713

See also ASP.NET New Project dialog, 430 Northwind database, retrieving data from, 272 notification API, table of functions, 734 notification area, 734 NT Lan Manager (NTLM), 57

■ O object model (SharePoint)

advantages of using, 16 architectural components of, 51 extending the platform to add more

features, 53 ObjectCache section, 67 object-relational mapping (ORM), 83, 260 objects

AllowUnsafeUpdates property, 1044 ApplyWebConfigModifications method,

1048 building a new web application, procedure

for, 1037 console application for creating a site

collection from an XML file, code listing, 1039

console application for generating a new web, code listing, 1042

console to create a new SharePoint web, code listing, 1037

Create method, 1037 creating, 1037 creating a custom site property, code listing,

1044 creating several web sites within a site

collection, 1041 creating site collections programmatically,

1039 data retrieval with a Web Part, code listing,

1054 HttpContext object, 1047 maintaining web.config settings

programmatically, 1045 Properties property, 1043 properties that modify the element-

changing procedure, table of, 1046

Page 30: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1112

property bag, 1043 reading information about a site’s current

structure, 1054 retrieving values from the configuration

database, code listing, 1055 Sequence property, 1049 SPContentDatabase object, 1056 SPFarm object, 1037 SPSite object, 1041 SPSiteDataQuery class, 1054 SPWeb object, 1041 SPWebApplication object, 1037, 1046 SPWebApplicationBuilder class, 1037 SPWebConfigModification class, 1046 Update method, 1039, 1044 working with site properties, 1043 XML file for a site collection definition, code

listing, 1039 XML file for a web using the Blog template,

code listing, 1041 Office 2010, 38 Office Communications Server, 51 OfType operator, 170, 173 OldCustomMasterUrl property, 578 OldMasterUrl property, 578 Onet.xml, 92, 397, 407, 411

adding a bug-tracking list to the list section, 423

adding a discussion board to the list section, 424

basic structure of, 417 folder location of, 417 Image Web Part specification in, 421 list view Web Part specification in, 422 ListTemplates declaration in, 419 production configuration, code listing, 422 types of components defined in, 422

onFailedCallback function, 740 OnInit, 315 OnLoad method, 315, 669 OnPreInit method, 433 OnPreRender method, 315, 369, 614, 667

OnQuickLaunch property, 170, 510 OnSaveChange method, 643 onSucceededCallback function, 740 OnUnload method, 315 Open Packaging Convention (OPC), 201 OpenBinary method, 198 OpenBinaryStream method, 198, 204 OpenWeb method, 196 optimistic concurrency, 246 <OrderBy> element, 218 orderby keyword, 227 outgoing claims, 136 Outlook, 51 oWeb object, 739, 741–742 owssvr.dll, avoiding direct calls to, 215

■ P Package object, 176, 204 Package.xml, 348 Packaging Explorer, 519 Page class, 308, 367, 432 @Page directive, 433–434, 556, 558, 563, 572 Page Viewer Web Part, 300 Page_Load method, 611 Page.LoadControl method, 673 PageCatalogPart, 323 PageComponent object, 675–676 PageFieldValue token, 1072 PageHandlerFactory, 59 PageManager object, 675 PageQueryString token, 1072 paging

accessing a complete list page by page, code listing, 292

examples of, 293 ListItemCollectionPosition property, 293 parameters required, 292 providing efficient access to huge lists, 292 SPQuery class, 293 URL parameters used in the PagingInfo

property, table of, 293

Page 31: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1113

PagingInfo property, table of URL parameters, 293

Panel class, 317, 324 PartCacheRead method, 378 PartCacheWrite method, 378 PartImageLarge property, 383 passwords

assigning, 1038 System.Security.SecureString class, 1038

PeopleEditor control creating in code, 659 populating with the username of the

current user, 659 table of properties, 657

Permission Tools tab, 37 permissions, 137, 763

Permissions property, 376, 382, 650 PermissionsString property, 650

PersonalActions menu, 607 Personalizable attribute, 325 physical objects, 111 picker controls

BookList property, 664 building usable custom pickers, 661 ConvertFromDataRow method, 664 data source for the example picker

implementation, 662 dialog editor class, 664 DialogControl property, 666 DialogPicker classes, 661 GetEntity method, 670 groupName parameter, 670 implementation of BookDataManager.cs,

code listing, 663 implementation of BookEditor.cs, code

listing, 664 implementation of BookPickerDialog.cs,

code listing, 666 implementation of BookQueryControl.cs,

code listing, 669 IssueQuery method, 670 Microsoft.SharePoint.ApplicationPages.Pick

er class, 666

Microsoft.SharePoint.WebControls namespace, 656

OnLoad method, 669 OnPreRender method, 667 people picker control, 656 PeopleEditor control, table of properties,

657 PickerDialog class, 667 PickerDialogType property, 664–666 query control class, 668 ResolvedEntities property, 660 ResultControl property, 667 Results property, 670 SearchForBooks method, 664 SelectionSet property, 660 tips for getting the custom picker to work,

670 UpdateEntities method, 659 ValidateBook method, 664 ValidateEntity method, 664 Visible property, 669

placeholders, 95, 202 content placeholders, 563 layout of the placeholders within a master

page, 561 placeholder IDs in master pages, table of,

560 placeholders in dialog.master, table of, 568

Plain Old XML (POX), 257 policy.xml, code listing, 1081 PopoutMenu web control, 583 populateFontFamilyDropDownMenu function,

683 postbacks, 26 PowerShell

activating the Developer Dashboard, 21 Add-PsSnapin cmdlet, 503 Add-SPSolution cmdlet, 504 Add-SPUserSolution cmdlet, 494, 505 administering SharePoint 2010 with

PowerShell, 502 cmdlets, 42

Page 32: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1114

compiling a list of all installed cmdlets, 503 creating and sharing cmdlets, 500 deploying a farm solution package,

procedure for, 504 deploying a sandboxed solution using

PowerShell, 505 deploying solution packages using cmdlets,

499 description of, 499 Get-Help command, 504 Install-SPUserSolution cmdlet, 505 Integrated Scripting Environment (ISE), 501 management shell, 502 managing sandboxed solutions via

command-line scripts, 494 obtaining more information about a cmdlet,

504 Remove-SPUserSolution cmdlet, 505 scripts, 500 SharePoint.ps1 script, 502 Uninstall-SPUserSolution cmdlet, 505 using .NET objects as input and output, 499 See also cmdlets

PreRender method, 692–693 PreRenderComplete, 315, 370, 373 primary list, 402 ProcessRequest, 60 Project Server, 14 Project Server Interface (PSI), 15 ProjectedField property, 221 <ProjectedFields> element, 222, 404 Properties class, 160 Properties property, 576, 1043 Properties window, 430 properties, contents of, 327 property bag, 1043 <property> element, 314 property pane

description of, 326 illustration of, 326

Property parameter, 264 property schema, 79

PropertyOrFieldNotInitializedException, 739, 741, 744

PropertySchema section, 632 props.PopulationXML property, 684 protocol moniker, 57 provider model, 61 provisioning resources, localizing solutions,

437 ProvisioningProvider, 414 psconfig.exe, 42 psconfigui.exe, 43 Publishing API

adding a new page to the site pages library, code listing, 1068

GetAvailablePageLayouts method, 1068 GetPublishingPages method, 1068 important namespaces, table of, 1066 using the PublishingWeb class, code listing,

1067 Publishing feature, 127

■ Q queries, 82 <Query> element, 218 query object model, 1060 Query property, 183 query schema, 84 quick launch bar

code listing, 418 configuring for a two-tier appearance, 419

quick launch navigation, 581

■ R RadioButtonList, 331 RaisePostBackEvent method, 693 ReadFarm method, 161 ReadOnlyAttribute, 328 ReceiverAssembly, 457 ReceiverClass class, 457 Records Center template, 1079 records management, xxiv, 1078

Page 33: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1115

<reference> directive, 738 reference.cs, 268 referential integrity, enforcing, 249 Reflector

downloading, 16 Roeder, Lutz, 16

RegisterCustomerProvider method, 366 registerWithPageManager function, 693 RegistrationId attribute, 686 RegistrationType attribute, 686 removeNotification function, 735 Remove-SPUserSolution cmdlet, 505 Render method, 331 RenderContents method, 297 RenderContext property, 628 RenderingTemplate web control, 637 RenderPattern section, 632 RenderWebPart method, 383 Repeater control, 609 Representational State Transfer (REST)

Accept request header, 260 accessing a SharePoint list as a feed, 259 advantages of, 256 architectural constraints, 258 Atom Publishing Protocol (AtomPub), code

listing, 258 comparing to SOAP, 257 description of, 257 endpoint, definition of, 258 mapping operations to HTTP verbs, 258 online introductions to, 257 resource, definition of, 258 RESTful systems, 257 routing data independently in a layered

system, 258 Uniform Resource Identifiers (URIs), 258 using to address web services, 258

RequireDefaultLayoutRights property, 434 RequiresHighReliability property, 565 RequireSiteAdministrator property, 434–435 Resolve method, 248

ResolvedEntities property, 660 ResolvePrincipal method, 154 resource, definition of, 258 Resource Description Framework (RDF), 257 ResourceKey, 450 ResourceManager class, 443, 448 ResultControl property, 667 Results property, 670 RESX files

application resources, 437 AssemblyInfo.cs, 448 copying resources using the

copyappbincontent command, 438 core.resx, 442, 450 defining a static resource per item, 440 defining a static resource per solution, 440 DisplayName property, 445 GetString method, 444 Installed Templates window, 440 LocalizedWebDisplayNameAttribute class,

code listing, 444 naming convention for resource files,

examples of, 436 preparing a project’s web resources,

procedure for, 446 provisioning resources, 437 resource files and strings, 436 resource files, folder locations of, 437 ResourceKey, 450 ResourceManager class, 443, 448 Resources File project template, 440 Resources folder, 438 runtime resources, 437 satellite assemblies, 439 System.Configuration assembly, 443, 448 System.Resources namespace, 443 using an embedded resource in a Web Part,

code listing, 447 using resources for linked data, 445 using resources for localization with

embedded resource files, 443 using resources in Web Parts, 439–440

Page 34: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1116

using resources to localize a feature, 449 using resources to localize Web Part

attributes, 444 using resources within SharePoint

elements, 439 using static resource files, 442 web references, 446 WebResource.axd, 446

retractsolution command, 507 returnValue parameter, 728 Reverse method, 1078 ribbon control

adding a button 59, 619 advantages of toolbars over ribbons, 672 available ribbon controls, table of, 680 canHandleCommand method, 679 classes related to the SPRibbon base class,

96 CMDUI.XML, 617 ComboBox control, 682 CommandDispatcher object, 675–676 CommandUIVisible property, 688 configuring, 96 Controls element, 674 creating a feature with a ribbon definition,

686 creating an application page and displaying

the ribbon bar, 687 CUI.Page.CommandDispatcher class, 95,

679 CUI.Page.PageCommand class, 95 custom PageComponent implementation in

SP.UI.MyCustomRibbon.debug.js, code listing, 691

customizing, 618, 686 defining in XML, 674 enabling custom commands on the ribbon,

code listing, 688 extended OnPreRender method for using a

custom PageComponent, code listing, 693

extending the ribbon to add functionality, 674

extracting from UsageRibbonPageComponent in SP.Ribbon.js, 690

FlyoutAnchor control, 682 GetFontFamilyMenuXml function, 683 groups and controls, 674 Groups element, 674 handleCommand method, 679 HideCustomAction element, 620 ICommandHandler pseudointerface, 677 implementing a JavaScript command

handler in custom actions, 618 implementing server-side event handlers,

693 initFontSizeDropDownMenu function, 683 InitialTabId property, 688 InitPageComponent function, 692 IPostBackEvent interface, 693 IRibbonMenu interface, 95 JavaScript functions from

SP.UI.rte.debug.js, code listing, 683 JavaScript implementation of a custom

PageComponent class, code listing, 677

MakeTabAvailable method, 688 MyCustomRibbon.xml, code listing, 686 overriding the OnPreRender method to

show the ribbon, code listing, 687 PageComponent object, 675–676 PageManager object, 675 populateFontFamilyDropDownMenu

function, 683 PreRender method, 692–693 props.PopulationXML property, 684 RaisePostBackEvent method, 693 registerWithPageManager function, 693 RegistrationId attribute, 686 RegistrationType attribute, 686 removing a button, 620 replacing a button, code listing, 620 ribbon interface (command UI), 675 SP.Ribbon.PageManager class, 95 SPRibbonCommand object, 95

Page 35: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1117

SPRibbonMenu, 95 SPRibbonMenuItem, 95 SPRibbonScriptManager class, 689 steps for building a custom ribbon in an

application page, 686 Tab element, 674 tabs, 674 top-level elements, 674 using, 617 See also toolbar control

Rich Text Editor, 300 Roeder, Lutz, 16 Role property, 111 RoleDefinitionBindings collection, 143 RoleDefinitions property, 196 roles

adding a user or group to a role (C#), code listing, 764

adding a user or group to a role (JavaScript), code listing, 764

breaking the role inheritance (C#), code listing, 768

breaking the role inheritance (JavaScript), code listing, 768

BreakRoleInheritance method, 768 creating a new SharePoint group and

assigning it to a role (C#), code listing, 766

creating a new SharePoint group and assigning it to a role (JavaScript), code listing, 766

creating a role (C#), code listing, 763 creating a role (JavaScript), code listing, 763 permission levels, 763

root application, 57 root site, xxi root virtual directory, 57 RootFolder.Name property, 473 RootWeb property, 108, 113 RowCallBack, 357 runtime resources, 437 RunWithElevatedPrivileges method, 144–145,

196

■ S s4-notdlg class, 731 <SafeControl> element, 98 <SafeControls> section, 69, 94 <SafeMode> element, 69 safe-mode processing, 69 sandboxed solutions

addressing hosted SharePoint solutions, 489 Add-SPUserSolution cmdlet, 494 allowed and disallowed functions, 490 Application Management page, 494 architecture of, 491 creating a full-trust proxy for a sandboxed

solution, 528 creating a sandboxed solution using Visual

Studio 2010, 525 creating a solution validator, procedure for,

536 creating an error page for the solution

validator, 540 debugging using SPUCWorkerProcess.exe,

527 deploying, 493 deploying a sandboxed solution using

PowerShell, 505 deploying and registering the solution

validator, 542 deploying the full-trust proxy DLL to the

GAC, 532 feature event receiver, code listing, 533, 542 FullTrustProxyArgs.cs, code listing, 530 FullTrustProxyOps.cs, code listing, 531 getting the local resource measures for

sandboxed solutions, 495 limiting to a subset of the

Microsoft.SharePoint namespace, 489 measuring the performance of, 494 performance indicators, table of, 495 registering the full-trust proxy using a

feature receiver, 533 restrictions of, 489 running with full or partial trust, 491 Sandboxed Solution property, 431

Page 36: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1118

sandboxing user code, 489 signing the DLL for GAC deployment, 529 Solution Gallery, 489, 492 SolutionValidationErrorPage.aspx, code

listing, 541 SolutionValidator class, code listing, 536 SPFullTrustProxyLog.txt, 536 SPProxyOperation class, 498 SPProxyOperationsArgs class, 498 SPUCHostService.exe, 491 SPUCWorkerProcess.exe, 491 SPUCWorkerProcessProxy.exe, 491 stages in the life cycle of a sandboxed

solution, 491 testing whether a full-trust proxy is

registered in SharePoint, 536 types of SharePoint items that can and

cannot be deployed, 489 upgrading a solution in the Solution Gallery,

493 uploading a WSP file, 493 using a full-trust proxy to extend a

sandboxed solution, 534 using PowerShell to manage sandboxed

solutions via command-line scripts, 494

validating sandboxed solutions before execution, 496

Web Part, code listing, 526, 535 writing a your own full-trust proxies, 498

satellite assemblies, benefits of, 439 SaveBinary method, 76 SaveWebPartChanges method, 770 scalar types, table of, 77 Schema property, 359 schema.xml, 75, 224, 393

basic list-definition structure in, 396 ContentType specification in, 400 ContentTypes element in, 397 Field specification, code listing, 398 Forms element in, 405 List element in, 396 lookup field specification in, 399

specification of defined joins, code listing, 403

ViewFields element in, 404 Views element in, 400

Scope attribute, 389, 686 search

accessing the index from code to retrieve the search results, 1059

Central Administration, 1058 choosing between two object models, 1059 configuring the index and query services,

1058 custom search with the query object model,

code listing, 1060 Fast Query Language (FQL), 1060 FAST Search Server 2010 for SharePoint,

1058 federated search object model, 1059 FullTextSqlQuery class, 1060 KeywordQuery class, 1060 Microsoft.Office.Server.Search.Query

namespace, 1060 Microsoft.SharePoint.Search.Query

namespace, 1060–1061 query object model, 1060 required DLLs for, 1060 search capabilities for different SharePoint

products, table of, 1062 Search Server 2010, 1058 Search Server 2010 Express, 1058 SharePoint Foundation 2010, 1058 SharePoint Server 2010, 1058 tools to implement enterprise search in

SharePoint, 1057 search database, types of content stored, 105 SearchForBooks method, 664 securable objects, 147 security

access control lists, 138 anonymous access, 135 ASP.NET Forms Authentication, 136 audiences, 138 authentication, 133

Page 37: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1119

authority, 136 authorization failures, 151 CheckPermissions method, 148 claim, defintion of, 136 claims-based identity, 136 configuring a combination of

authentication methods, 137 creating a 401 (Access Denied) HTTP

message, 152 defining group permissions, 141 DoesUserHavePermissions method, 148 EnsureUser method, 141 getting a particular user of type SPUser, 141 getting and setting the application pool

identity, 143 HandleAccessDenied method, 152 handling security issues in custom code,

143 handling the issue of two identities, 146 incoming claims, 136 issuer, 136 item permissions, 137 LayoutsPageBase class, 139 list permissions, 137 outgoing claims, 136 permissions, 137 ResolvePrincipal method, 154 retrieving the current user, 140 retrieving user collections, 139 RoleDefinitionBindings collection, 143 RunWithElevatedPrivileges method, 144–

145 searching for content, 138 securable objects, 147 Security Assertion Markup Language

(SAML), 136 security token service (STS), 136 site permissions, 137 SiteUsers method, 139 SPBasePermission enumeration, table of

values, 148 SPGroup object, 139

SPPrincipal class, 153 SPPrincipalInfo class, 153 SPRoleAssignment object, 140, 143 SPRoleDefinition object, 143, 150 SPSecurableObject class, 147 SPSecurity class, 144 SPSite class, 145 SPUser object, 134, 138–139 SPUserToken class, 145 System.Security.SecurityException, 152 SystemAccount.UserToken property, 145 understanding SharePoint’s security model,

133 users, groups, and roles, 138 using elevated-privilege code, best

practices, 146 validating a user’s identity via IIS, 133 Web Single Sign-On authentication, 136 Windows Authentication, 134 Windows Identity Foundation (WIF), 136

Security Assertion Markup Language (SAML), 136

security trimming, 216 SecurityBits attribute, 407 SelectionSet property, 660 SelectMany operator, 228 selector controls

CurrentItem property, 653 ListAdministrationSelector control, 652 SiteAdministrationSelector control, 652 SPSchedulePicker control, 654 utilizing the schedule picker, 655 WebAdministrationSelector class, 653 WebApplicationSelector control, 652 writing your own selector controls, 653

SendMail, table of parameters, 464 SendToOfficialFile method, 1080 Sequence property, 1049 Serialize method, 159 service application, 114 ServiceContext object, 114

Page 38: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1120

service-oriented architecture (SOA), 4 services, 61 Services Architecture, 114 SetFieldInterface method, 360 SetLabel method, 360 setup.inf, 512 setup.rpt, 512 shapes, 101 Shared Documents library, retrieving a file

from, 197 Shared Services Provider (SSP), 114 SharePoint 2010

activating backward compatibility mode, 544

Active Directory, 9 Ajax, 25 application page that uses the notification

API, code listing, 734 application page that uses the status API,

code listing, 733 application platform, definition of, 3 ASP.NET, xviii authentication, xxiii authorization, xxiii <authorization> tag, 47 browser support, 25 business collaboration applications, xxvi Business Connectivity Services (BCS), xxii business logic layer, xxii categories of SharePoint Web Parts, 299 Central Administration, xxiv, 11 child sites, xxi client object model, 711 Collaborative Application Markup

Language (CAML), xxii command-line tools supporting

administration and automation tasks, 42

Common Language Runtime (CLR), xxi, 4 comparing SharePoint Designer to Visual

Studio, 35 Complete installation, 9 config.xml, 6

configuring ASP.NET applications to run 64-bit code, procedure for, 45

configuring the necessary Windows features for installing SharePoint, 7

content types, xxii customizing as a development platform and

framework, xvi data layer, xxi defining user, administrator, and developer

roles, xx developer toolbox, xxiv enable32BitAppOnWin64 property, 45 evolution of client access to SharePoint

data, 712 examples of deprecated types and methods,

table of, 551 execution environment, xxi extending the settings in the web.config file,

13 FAST Search Server 2010 for SharePoint,

1058 features supported, xx Fiddler, using, 25 FilterPack, installing, 9 forcing authentication for an ASP.NET

application, procedure for, 47 forcing the application pool to use the

SharePoint administrator account, procedure for, 46

GUIDs, 1039 handling 64-bit quirks, 43 installation scenarios, 5 installing and configuring SharePoint using

setup.exe, 9 installing on Windows Server 2008,

procedure for, 5 installing on Windows Vista or Windows 7,

procedure for, 6 installing Visual Studio 2010, 11 learning the Microsoft internals, 16 libraries, xxi line-of-business (LOB) applications, xvi,

xxv–xxvi LINQ to SharePoint, 43

Page 39: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1121

lists, xxi making a console application 64-bit ready,

procedure for, 43 manually upgrading custom solutions,

procedure for, 550 master pages, xxiii Microsoft Management Console (MMC), 4 Microsoft.IdentityModel assembly, 9 Microsoft’s SharePoint 2010 web site, xviii migrating existing solutions to Visual Studio

2010 and SharePoint 2010, 544 .NET Framework, xviii, 4 notification API, table of functions, 734 notification area, 734 overview of SharePoint and its related

technologies, xix platform requirements, xvii postbacks, 26 PowerShell cmdlets, 42 prohibiting installations on Windows Vista

or Windows 7 machines, 6 psconfig.exe, 42 psconfigui.exe, 43 root site, xxi running the Products Configuration Wizard,

261 running the SharePoint Products and

Technologies Configuration wizard, 10 Search Server 2010, 1058 Search Server 2010 Express, 1058 security layer, xxiii service-oriented architecture (SOA), 4 setting authentication for an ASP.NET

application, procedure for, 48 setting up a Team Foundation Server, 11 SharePoint client object namespaces, table

of, 715 SharePoint communities, xxi SharePoint Products and Technologies

Configuration Wizard, 42 SharePoint.exe, 6 Silverlight, xxiii site collection, definition of, xxi

six layers of, xxi SPMetal.exe, 43 SQL Server, 4 SQL Server 2008 Express, 11 Standalone installation, 9 status API, table of functions, 732 status bar, 732 stsadm.exe, xxiv, 42 UI layer, xxii using as an application platform, xviii using existing SharePoint 2007 code, 550 Visual Studio 2010, xx Web Analytics, 1072 web application architecture, illustration of,

14 Web Parts, xxiii, xxvi web.config, 47–48 What’s Popular Web Part, 1072 Windows Communication Foundation

(WCF), xix Windows Features dialog settings, 8 Windows Identity Foundation (WIF), xix, 9 Windows Presentation Foundation (WPF),

xix, xxiii Windows Server 2008, 4 Windows Workflow Foundation (WF), 4 working with users, groups, and roles, 760 XAML, xxiii XML, 4 See also SharePoint API; SharePoint

Designer; SharePoint Server 2010 SharePoint API

AddItemToList method, 126 creating a new list, procedure for, 408 creating an absolute URL, 122 DateOptions class, 125 DateTime class, 125 determining if a memory leak is due to

incorrectly disposed of objects, 133 disposing of objects and collections, 129 DoNotEncodeUrl, 122

Page 40: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1122

establishing the site context or site collection context, 118

FormatDate method, 119 formatting a date, 119 formatting scalar data, table of examples,

124 GetContextSite method, 118 GetContextWeb method, 118 GetFullUrl method, 120 GetList method, 126 getting the full (absolute) URL, 120 handling the source URL with the

UseSource parameter, 121 helper classes, 119 IDisposable interface, 125 importing the Microsoft.SharePoint

namespace, 118 incorrect disposal, example of, 132 IntlDate class, 125 invoking a safe redirect, examples of, 122 isolated programming style, 117 IsUrlFull method, 125 IsUrlRelative method, 125 IsUrlSafeForRedirect method, 121–122 LayoutsPageBase class, 118 LocalSPRequestWarnCount, 133 Microsoft.SharePoint namespace, 119 Microsoft.SharePoint.SPContext class, 117–

118 Microsoft.SharePoint.Utility namespace,

125 Microsoft.SharePoint.WebControls

namespace, 118 not disposing of objects owned by

SharePoint, 131 object disposal, best practices, 125 objects used with personal pages, 132 obtaining the HTTP context of the request,

118 programming, 117 Publishing feature, 127 receiver objects not requiring disposal, 131 redirecting to another page, 121

redirecting to the built-in error and success pages, 123

returning the 14 hive file system path, 120 SPContext.Current.Site property, 118 SPDiffUtility class, 125 SPHttpUtility class, 125 SPLimitedWebPartManager object, 127 SPRedirectFlags enumeration, 121 SPRequestStackTrace, 133 SPSite class, 117 SPSiteCollection object, 130 SPUrlUtility class, 125 SPUtility class, 119, 124 SPUtility.Redirect method, 122 SPWebCollection object, 130 support classes, 119 System.Web.UI.Page.Context property, 118 TransferToErrorPage method, 123 UnsecuredLayoutsPageBase class, 118 URL-encoding operations, 122 UrlPathEncode, 122 using different entry points into the object

model, 117 using methods of the SPControl object, 118 utilities, 119 why and when SharePoint objects require

explicit disposal, 125 working with a static URL, 121

SharePoint Customization wizard, 430 SharePoint Designer, xix, xxiv

Business Data Connectivity data sources, 41 changing list rendering, procedure for, 402 changing the required permissions for, 37 comparing to Visual Studio, 35 creating a new list from an installed list

template, 408 creating an external content type,

procedure for, 272–276 creating new content types, 39 creating new lists, libraries, and workflows,

39 Data Sources option, 41

Page 41: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1123

editing a list view to reveal the underlying XSLT, 41

External Content Types option, 41 features of, 36 installing the 32-bit or 64-bit version, 37 Permission Tools tab, 37 Site Actions menu, 37 storing and deploying resources, 40

SharePoint Foundation, xix, 52 SharePoint SDK, 3 SharePoint Server 2010

capabilities of, xxiv content publishing, xxv creating a repository to retain business

documents, 1078 dashboards, xxv enterprise content management (ECM),

xxiv Excel, xxv forms, xxv Records Center template, 1079 records management, xxiv search capabilities, xxv

SharePoint:CssLink web control, 732 <SharePoint:JSGrid> tag, 705 <SharePoint:ScriptLink> tag, 715, 735 SharePoint.ps1 script, 502 Short Message Service (SMS), 98 ShouldRender method, 651 ShowField attribute, 222 showModalDialog function, 346, 726 ShowToolTipCustomProperty property, 634 Silverlight, xxiii, 260, 280

client object model, 711 Microsoft.SharePoint.Client.Silverlight.dll,

714 Microsoft.SharePoint.Client.Silverlight.Runt

ime.dll, 714 referencing the client object model DLLs in

a Silverlight application, 714 Simple Object Access Protocol (SOAP),

comparing to REST, 256

simple.master, 571 simplev4.master, 563, 571 site (custom) master page, 558 Site Actions menu, 37, 435 site collections, 90

classes related to the SPWeb and SPSite base classes, 92

common LCID values, table of, 92 configuring, 92 creating programmatically, 1039 definition of, xxi Dispose method, 91 exporting and storing site templates as

solution files (.wsp), 93 Onet.xml, 92 SPControl class, 91 SPSite object, 90 SPWeb object, 90 Update method, 90 WebTemp*.xml, 92

site columns, 77, 187 site permissions, 137 Site property, 432–433 site templates

adding a bug-tracking list to the list section of onet.xml, 423

adding a discussion board to the list section of onet.xml, 424

basic structure of the onet.xml, code listing, 417

Configuration element in webTempProject.xml, 414

Content control, 416 Content Editor Web Part specification in a

module, code listing, 420 creating a minimal site definition using

Visual Studio 2010, procedure for, 410 creating a new site using Central

Administration, procedure for, 426 creating a new site using the SharePoint

Create pages, procedure for, 426 creating a new site with stsadm.exe, 425 creating a new subsite, code listing, 427

Page 42: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1124

creating a site template, procedure for, 410 creating the development-environment

configuration, 423 default.aspx, 411, 420, 422 defining one or more configurations for a

site definition, 422 distinguishing between a site template and

a site definition, 410 DocumentTemplates element, 420 extended default.aspx page, code listing,

416 extending webTempProject.xml, code

listing, 424 Image Web Part specification in onet.xml,

421 implementing a custom FeatureActivated

event handler, 427 list view Web Part specification in onet.xml,

422 ListTemplates declaration in onet.xml, 419 Modules section, 420 NavBarHome attribute, 420, 422 NavBarLink element, 418 NavBars element, 418 onet.xml, 411 options for creating a new site from a site

definition, 425 production configuration in onet.xml, code

listing, 422 ProvisioningProvider, 414 quick launch bar, code listing, 418 site definition, basic structure, 411 skeleton default.aspx page, code listing, 415 specifying a declaration of the template as

an XML file, 412 specifying site-scoped and web-scoped

features, 423 types of components defined in onet.xml,

422 uses for, 408 using the site definition project template in

Visual Studio2010, 409 WebPartZone control, 416 webTemp.xml, 411

webTempProject.xml, list of elements and attributes, 412

See also column templates; list templates; templates

SiteAdministrationSelector control, 652 SiteDeleted, 458 SiteDeleting, 458 <SiteMap> element, 586 siteMapFile attribute, 587 siteMapNode hierarchy, 588 SiteMapProvider class, table of abstract

members, 585 Sites property, 108 SiteUsers method, 139 slots, definition of, 1072 SmtpClient class, 462 Solution Explorer, 392 Solution Gallery, 489, 492 solution packages

adding SharePoint items and features to a project, 514

building a feature, 509 configuring the security level for a solution,

514 constructing a folder structure in a working

folder, 508 creating a solution package step by step, 508 creating a solution package using Visual

Studio 2010, 512 debugging the solution, 523 deploying solution packages using

PowerShell cmdlets, 499 deploying solution packages using

stsadm.exe, 505 editing a solution in the Packaging Explorer,

519 editing the manifest in an XML editor,

procedure for, 517 elements.xml, code listing, 510 Empty SharePoint Project template, 513 example of manifest.xml, code listing, 486 example WSP solution file, 485 feature properties, table of, 518

Page 43: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1125

feature.xml, code listing, 509 FeatureID attribute, 510 linksList, 509 manifest.xml, code listing, 510 MsdnLinkList.wsp, 512 MsdnLinks list, 508–509 OnQuickLaunch attribute, 510 package properties, table of, 520 packaging the solution, 524 running makecab.exe, 511 sandboxed solutions, 489 setting the project properties, 521 setup.inf, 512 setup.rpt, 512 storing as a cabinet (CAB) file, 485 structure of, 486 TemplateType attribute, 510 transporting and installing extensions and

customizations to SharePoint servers, 485

using makecab.exe to create a cab (WSP) file, 488

using the Feature Designer to edit project features, 516

using the project templates for SharePoint solutions, 513

writing the SolutionExample.ddf file, 511 SolutionExample.ddf, 511 solutions

administering, 88 classes related to the SPSolution base class,

89 configuring, 89 feature.xml, 89 full trust, 88 manifest.xml, 89 sandboxed, 88 SPBlockedSolution object, 88 SPSolution object, 88 SPSolutionCollection object, 88 SPSolutionLanguagePack object, 88

SPSolutionLanguagePackCollection object, 88

SPSolutionValidator class, 88 SPUserSolution class, 88 SPUserSolutionCollection, 88

SolutionValidationErrorPage.aspx, code listing, 541

SolutionValidator class, code listing, 536 Source Editor, 300 SourceWebPart.cs, 348 SourceWebPart.webpart, 348 SP namespace, 715 SP.ClientObject, 718 SP.ClientValueObject, 718 SP.Core.debug.js, 715 SP.debug.js, 715 SP.Ribbon.debug.js, 715 SP.Ribbon.PageManager class, 95 SP.Runtime.debug.js, 715 SP.UI.Dialog.debug.js, 725 SP.UI.Dialog.js, 725 SP.UI.DialogResult enumeration, 728 SPAttachmentCollection array, 175 SPBasePermission enumeration, table of

values, 148 SPBaseType enumeration, 72, 169 SPBlockedSolution object, 88 SPContentDatabase object, 108, 113, 1056 SPContentMapProvider class, 583, 587 SPContentType object, 186 SPContext class, 108, 731 SPContext.Current.Site property, 118 SPControl class, 91, 433 SPDatabase class, 108 SPDatabaseServiceInstance object, 107 SPDiagnosticService object, 115 SPDiffUtility class, 125 SPDocumentLibrary object, 74, 197, 204 SPElementDefinition class, 86 SPElementDefinitionCollection object, 86 SPEncode class, 381

Page 44: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1126

SPFarm object, 107, 111, 1037 SPFeature class, 86 SPFeatureCollection object, 86 SPFeatureDefinition object, 86 SPFeatureDefinitionCollection object, 86 SPFeatureDependency object, 86 SPFeatureProperty object, 86 SPFeaturePropertyCollection object, 86 SPField object, 77, 112, 171, 173, 186, 284, 625,

634 SPFieldCollection object, 109 SPFieldLink object, 186 SPFieldLookupValue object, 223 SPFieldNumber object, 634 SPFieldType enumeration, 77, 171 SPFieldTypeDefinition class, 79 SPFieldUserValueCollection object, 175 SPFile object, 75, 175, 198, 1080 SPFileCollection, 76 SPFileCollectionAddParameters, 76 SPFileVersion object, 76 SPFolder class, 76 SPFullTrustProxyLog.txt, 536 SPGridView control, 17, 357, 359

adding custom menus, 698 AllowFiltering property, 701 AutoGenerateColumns property, 695 custom sorting implementation using

DataView, code listing, 700 DataField property, 696 DataSourceID property, 701 DataTable class, 700 DataView class, 700 declarative menu definition, code listing,

698 declarative SPGridView definition with

SPMenuField, code listing, 698 displaying data from SharePoint list items in

a grid, 694 enabling sorting and filtering using a LINQ

data source, 701 FilterDataFields property, 701

FilteredDataSourcePropertyFormat property, 702

FilteredDataSourcePropertyName property, 702

FilterExpression property, 702 GetSiteData method, 697 guidlines for using, 695 HeaderText property, 696 HiddenMenuItems property, 699 implemenation of a LINQ data source, code

listing, 701 implementing a grid for a SharePoint list,

695 myGrid_Sorting method, 700 querying the SharePoint Books list, code

listing, 696 SPGridView with bound column definitions,

code listing, 696 SPListItemCollection object, 697 SPQuery object, 697 SPSiteDataQuery parameter, 697 steps for enabling sorting, 699 using the DataTable class, 697 working with, 694

SPGroup object, 139 SPGroupedDropDownList, 351 SPHttpApplication object, 64, 113 SPHttpHandler, 64 SPHttpUtility class, 125 SPIncomingEmailService object, 115 SPItemEventReceiver class, 195 SPLimitedWebPartManager class, 296, 323 SPLimitedWebPartManager object, 127 SPLinkButton class, 651 SPList object, 74, 109, 174, 279, 467, 474, 625 SPListCollection object, 109 SPListCollection type, 169 SPListDataSource class, 74 SPListEventProperties class, 74 SPListEventReceiver class, 74, 191 SPListItem object, 75, 77, 109, 626 SPListItemCollection object, 109, 697

Page 45: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1127

SPListItemCollectionPosition class, 179 SPListItemEventReceiver class, 189 SPListItemVersion class, 75 SPListTemplate class, 72 SPListTemplateType enumeration, 72 SPMetal object, 467 SPMetal.exe, 43, 83, 232

<ContentType> element, 235 downloading, 233 generating entity classes, 233 <List> element, 235 options for modifying code generation, 234 supplying advanced configuration

parameters, 234 type mapping, table of, 236 understanding what is generated, 235 using, 234 <Web> element, 235

SPMonitoredScope class, code listing, 23 SPNavigationNode class, 580, 582 SPNavigationProvider class, 587 SPOutboundEmailService object, 115 SPPageParserFilter, 67 SPPersistedObject base class, 105 SPPrincipal class, 153 SPPrincipalInfo class, 153 SPProxyOperation class, 498 SPProxyOperationsArgs class, 498 SPQuery object, 83, 165, 179, 221, 293, 697 SPRedirectFlags enumeration, 121 SPRelatedField type, 251 SPRequestModule, 64 SPRequestStackTrace, 133 SPRibbonCommand object, 95 SPRibbonMenu, 95 SPRibbonMenuItem, 95 SPRibbonScriptManager class, 689 SPRoleAssignment object, 140, 143 SPRoleDefinition object, 143, 150 SPSchedulePicker control, 654 SPSecurableObject class, 147

SPSecurity class, 144 SPSecurityTrimmedControl class, table of

properties, 650 SPServer class, 111 SPServer type, 107 SPService class, 107, 111, 114 SPServiceInstance class, 107, 114 SPSite object, 90, 108–109, 117, 145, 1041 SPSiteCollection object, 113, 130 SPSiteDataQuery class, 1054 SPSiteDataQuery parameter, 697 SPSiteMapProvider class, 583, 587 SPSolution class, 88, 111 SPSolutionCollection object, 88 SPSolutionLanguagePack object, 88 SPSolutionLanguagePackCollection object, 88 SPSolutionValidator class, 88 SPTimer service, 11 SPTreeView web control, 584 SPUCWorkerProcess.exe, 527 SPUrlUtility class, 125 SPUser object, 134, 138–139 SPUserSolution class, 88 SPUserSolutionCollection, 88 SPUserToken class, 145 SPUtility class, 119, 124 SPUtility.Redirect method, 122 SPView object, 83, 221 SPViewCollection object, 83, 185 SPVirtualPathProvider class, 67, 566 SPWeb object, 75, 90, 384, 565, 1041

creating a new web site (C#), code listing, 748

creating a new web site (JavaScript), code listing, 749

retrieving only some site and web properties (C#), code listing, 746

retrieving only some site and web properties (JavaScript), code listing, 746

retrieving site and web properties (C#), code listing, 745

Page 46: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1128

retrieving site and web properties (JavaScript), code listing, 745

updating web site properties (C#), code listing, 747

updating web site properties (JavaScript), code listing, 747

SPWebApplication class, 463, 566–567, 1046 SPWebApplication object, 108, 112–113, 221,

1037 SPWebApplicationBuilder class, 1037 SPWebCollection object, 109, 130 SPWebConfigModification class, 1046 SPWebEventReceiver class, 458, 460 SPWebEventReceiver type, 98 SPWebPartManager class, 296, 322–323 SPWebService object, 107, 115 SPWindowsService object, 115 SPWorkflowEventReceiver class, 99 SPXmlContentMapProvider class, 584, 587 SQL Server, xix, 4 SQL Server 2008 Express, 11 Standalone installation, 9 StartingNodeUrl property, 581 StartScope method, 778–779 Startup Item property, 430 StaticDisplayLevels property, 581 status API, table of functions, 732 status bar, 732 streams, 197 StringCollection object, 185 StringDictionary, 465 stsadm.exe, xxiv, 42, 63

activatefeature command, 507 activating the Developer Dashboard, 20 adding the WSP file to the configuration

database, 506 addsolution command, 506 creating a new site with, 425 deletesolution command, 507 deploying and activating a feature, 390 deploying solution packages with, 505 deploysolution command, 506

execadmsvcjobs command, 506 requirements for running, 506 retractsolution command, 507

SubMenuTemplate control, 614 SubmitChanges method, 233, 241, 246–247 succeededCallback parameter, 737 SyncChanges method, 329, 332, 342 <Synchronization> element, 459 synchronous item-level events, table of, 190 synchronous list-level events, table of, 191 system (default) master page, typical uses for,

557 System.Collections.Specialized namespace, 465 System.Configuration assembly, 443, 448 System.Configuration namespace, 62 System.Configuration.dll assembly, 62 System.IO.Packaging namespace, 176, 204 System.Linq namespace, 289 System.Net namespace, 269, 370 System.Resources namespace, 443 System.Security.SecureString, 1038 System.Security.SecurityException, 152 System.UI.MasterPage, 556 System.Web.IHttpModule interface, 59 System.Web.UI.Control, 623 System.Web.UI.IValidator interface, 644 System.Web.UI.Page.Context property, 118 System.Web.UI.WebControls.WebPart class,

296 System.Web.UI.WebControls.WebParts

namespace, 325 SystemAccount.UserToken property, 145 SystemUpdate method, 477

■ T <table> tag, 643 TableCallback, 357 tabs, 674 TargetWebPart.cs, 348 TargetWebPart.webpart, 348 Team Foundation Server, setting up, 11

Page 47: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1129

templates column templates, 388 Installed Templates window, 440 list templates, 391 SharePoint 2010 templates, table of, 387 site templates, 408 TemplateType property, 510, 752 types of, 387 See also column templates; list templates;

site templates themes

activating a theme, 601 applying a theme to a site, 599 applying combinations of colors and fonts,

593 applying to all UI elements and controls,

594 copying the stylesheet file to the themable

style directory, 601 creating a stylesheet file with theming

attributes, 600 creating an application page that uses the

stylesheet, 603 creating themable application pages,

procedure for, 600 customization levels, table of, 592 definition of, 591 dynamic stylesheets, 596 dynamically modifying styles, 593 extending CSS files, 595 inline styles, 595 Microsoft Office themes, 594 Microsoft’s Theme Builder application, 596 ms-toolbar CSS class, 598 overview of, 592 prerequisites for using, 595 processing of themes, illustration of, 599 separating design and implementation, 594 theme color palette, 596 theming attributes of internal CSS, 598 theming attributes, table of, 597 THMX files, 594–595

tints and shades, table of values, 596 THMX files, 595 Title property, 752 tokens, 564

CustomMasterUrl property, 572 dynamic, 572 MasterUrl property, 572 static master page tokens, 573

toolbar control advantages of toolbars over ribbons, 672 ASCX user controls, 673 creating a toolbar programmatically, code

listing, 673 definition of, 672 displaying a basic toolbar, 672 Microsoft.SharePoint.WebControls

namespace, 673 NavigateUrl property, 673 Page.LoadControl method, 673 ToolBar.ascx, 672 ToolBarButton.ascx, 672 See also ribbon control

ToolboxItemAttribute, 329 ToolTipCustomProperty property, 634 top link bar navigation, 579 tracing, turning on and off, 20 TransferToErrorPage method, 123 Transmission Control Protocol (TCP), 56 tree view navigation, 584 TreeView element, 590 troubleshooting

adding diagnostic output to your code, 23 Developer Dashboard, activating using

code, 22 Developer Dashboard, activating using

stsadm.exe, 20 Developer Dashboard, activating via

PowerShell, 21 developing a plan for, 18 examining the event log, 19 examining the SharePoint and IIS logs, 19 Fiddler, using, 25

Page 48: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1130

Internet Explorer Developer Toolbar, functions of, 27

SPMonitoredScope class, code listing, 23 turning on developer-friendly error

messages in web.config, 18 turning tracing on and off, 20 using advanced .NET debugging methods,

20 Type attribute, 222, 396 TypeName attribute, 69

■ U UI layer, xxii unified request-processing pipeline, 55 Uniform Resource Identifiers (URIs), 258 Uninstall-SPUserSolution cmdlet, 505 Unit type, 337 Universal Time Coordinated (UTC), 284 UnsecuredLayoutsPageBase class, 91, 118, 432–

433, 435 unstructured silos, 1072 Update method, 90, 171, 180, 477, 629, 1039,

1044 UpdateEntities method, 659 UpdateFieldValueInItem method, 629 UpdateMappedPage method, 566 UpdatePanel, 362, 366 URL

contents of a complete URL, 57 protocol moniker, 57

Url property, 397 UrlPathEncode, 122 user interface (UI)

extending, 604 master pages, 555 navigation controls, 578 themes, 591

user profiles displaying the colleagues of the current user

in a ListBox control, code listing, 1063

displaying the latest changes of the specified user profile in a Label control, code listing, 1064

typical profile page, contents of, 1063 UserProfileConfigManager class, 1063, 1065 UserProfileManager class, 1063, 1065 using user profile properties, code listing,

1065 See also groups

UserCreationInformation class, 761 UserData built-in view, 283 UserProfileConfigManager class, 1063, 1065 UserProfileManager class, 1063, 1065 UseSimpleRendering property, 581 UseSource parameter, 121

■ V v4.master, 95, 571 ValidateBook method, 664 ValidateEntity method, 664 validator, checking the validity of a package, 88 <Value> element, 218 value objects, 743 Value property, 635 verb, definition of, 324 Verbs property, 324 VersionLabel property, 1078 view schema, 84 ViewListsPage class, 563, 571 viewpage.aspx page, 394 views

Add method, table of supported parameters, 185

application page with an Ajax-driven GridView, code listing, 180

creating a new view programmatically, 184 ddlViews control, 182 DefaultView property, 180 defining, 83, 180 DropDownList control, 181 GridView control, 180 HtmlEncode attribute, 182

Page 49: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1131

modifying an existing view, 183 Query property, 183 SPViewCollection object, 185 StringCollection object, 185 Update method, 180 view styles, 83

Views element, list of properties, 401 ViewStyle element, 402 virtual directories, definition of, 57 Virtual Path Provider, 57, 63, 67, 94 Visible property, 669 Visual Studio 2010

adding SharePoint items and features to a project, 514

building a package, procedure for, 35 checking the settings for a new project, 31 comparing SharePoint Designer to Visual

Studio, 35 configuring the security level for a solution,

514 creating a full-trust proxy for a sandboxed

solution, 528 creating a sandboxed solution, 525 creating a solution package, 512 creating a solution validator, procedure for,

536 creating an error page for the solution

validator, 540 debugging the solution, 523 debugging using SPUCWorkerProcess.exe,

527 Default configuration, 522 deploying a package, procedure for, 35 deploying and registering the solution

validator, 542 deploying the full-trust proxy DLL to the

GAC, 532 deployment and retraction steps for

deployment configuration, table of, 522

editing a solution in the Packaging Explorer, 519

editing the manifest in an XML editor, procedure for, 517

Empty SharePoint Project template, 513, 525

F5 deployment feature, 5 Feature Designer, 33 feature event receiver, code listing, 533, 542 feature properties, table of, 518 Features folder, 33 FullTrustProxyArgs.cs, code listing, 530 FullTrustProxyOps.cs, code listing, 531 Global Assembly Cache (GAC), 31 importing a package, 34 importing a VSeWSS project, procedure for,

546 importing a WSP file, procedure for, 548 installing, 11 installing the Import VSeWSS Project Visual

Studio template, procedure for, 545 investigating a package, 33 lack of support for JavaScript IntelliSense

within Visual Studio, 735 list definition template, 34 manually upgrading custom solutions,

procedure for, 550 No Activation deployment configuration,

522 package properties, table of, 520 packaging the solution, 524 registering the full-trust proxy using a

feature receiver, 533 setting the project properties, 521 SharePoint development templates for C#

developers, table of, 29 SharePoint item templates for C#

developers, table of, 32 signing the DLL for GAC deployment, 529 SolutionValidationErrorPage.aspx, code

listing, 541 SolutionValidator class, code listing, 536 SPFullTrustProxyLog.txt, 536 testing whether a full-trust proxy is

registered in SharePoint, 536 upgrading a VSeWSS solution, 545 upgrading a WSP-packaged solution, 548

Page 50: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1132

using a full-trust proxy to extend a sandboxed solution, 534

using IIS instead of the internal web server for debugging, 29

using the Feature Designer to edit project features, 516

using the project templates for SharePoint solutions, 513

Web Part, code listing, 526, 535 See also Ajax; JavaScript

Visual Web Part template, code listing, 307 VisualWebPart1UserControl.ascx, 309 VMware, 5 VSeWSS, 545

■ W WCF Data Services

Accept HTTP header, 267 accessing a data source using

nonproprietary standards, 257 accessing SharePoint lists for client

applications, 260 adding $metadata to the URL, 263 ADO.NET Data Services, 256, 261 Bad Request error (HTTP code 400), 267 basic format of the URI, 264 concat function, 268 creating an object-relational mapping to the

list, 268 Data Services Update for .NET 3.5 SP1,

downloading, 261 DataServiceContext class, 268 DataServiceQuery<T> property, 268 EntitySet property, 264 eq operator, 268 exchanging entities in JSON and Atom

formats, 267 filter expressions and operators, table of,

265 functions used in expressions, table of, 265 HomeDataContext, 269 HTTP, 257 installing, 261

investigating the source and retrieving data, code listing, 262

JavaScript Object Notation (JSON), 257 Key property, 264 object-relational mapping, 260 options to manipulate the response, table

of, 264 Plain Old XML (POX), 257 Property parameter, 264 querying data using, 256 reference.cs, 268 replacing SharePoint web services with, 257 Representational State Transfer (REST), 257 request and response MIME types, table of,

267 Resource Description Framework (RDF),

257 restricting a result set, 265 sample response in JSON format, code

listing, 260 setting the Content-Type HTTP header, 267 standards utilized, 257 syntax for retrieving data, examples of, 267 System.Net namespace, 269 typical response to a request, illustration of,

261 URI format, 261

Web Analytics, 1072 web applications

building a new web application, procedure for, 1037

console to create a new SharePoint web, code listing, 1037

Create method, 1037 SPFarm object, 1037 SPWebApplication object, 1037 SPWebApplicationBuilder object, 1037

Web Content Accessibility Guidelines (WCAG) 2.0, 1071

web content management (WCM) adding a new page to the site pages library,

code listing, 1068

Page 51: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1133

console application for deploying content between servers, code listing, 1069

content deployment from source to destination, 1068

Content Query Web Part (CQWP), 1072 ContentDeploymentJob class, 1068 ContentDeploymentPath class, 1068 content-to-content concept, 1072 embedding rich media content, 1071 GetAvailablePageLayouts method, 1068 GetPublishingPages method, 1068 important namespaces of the Publishing

API, table of, 1066 improved page-authoring experience, 1071 Microsoft.SharePoint.Publishing.Administr

ation namespace, 1068 PageFieldValue token, 1072 PageQueryString token, 1072 slots, definition of, 1072 user interface improvements in SharePoint

2010, 1070 using the PublishingWeb class, code listing,

1067 Web Content Accessibility Guidelines

(WCAG) 2.0, 1071 web controls

categories of, 623 data controls, 694 field controls, 624 input form controls, 643 Microsoft.SharePoint.WebControls

namespace, 623 overview of, 623 pickers and selector controls, 651 System.Web.UI.Control, 623 toolbar and ribbon controls, 672

<Web> element, 235 Web Part Page Services Component (WPSC),

366 Web Parts, xxiii, xxvi

Action class, 375 adding a security permission attribute to

code, 304

adding a trusted Web Part to an installation, 301

adding a Web Part to a page (C#), code listing, 772

adding a Web Part to a page (JavaScript), code listing, 772

adding controls to a custom editor pane, 330

adding the CAS policy to the current project’s package, 306

AddOnPreRenderCompleteAsync method, 370

Advanced category, 380 AllowAnonymousAccess property, 384 AllowCustomization property, 382 AllowPersonalization property, 382 ApplyChanges method, 329, 332, 342 ASCX file of a basic Web Part, code listing,

298 AssemblyInfo.cs, 306 asynchronous data fetching, 378 asynchronous data source, code listing, 373 asynchronous Web Part, code listing, 370 attributes to control the property pane,

table of, 380 BeginGetResponse, 373 benefits of, 295 best development practices, 375 Bing client library, 334 BingWebPart.cs, 334 BingWebPartUserControl.cs, 334 categories of SharePoint Web Parts, 299 checking permissions before rendering, 376 Click event, 364 ClientScript object, 367 Code Access Security (CAS), 98, 301 code-behind class of the custom editor,

code listing, 340 code-behind for the user control, code

listing, 310 coding a connected web part, 350 complete sender control, code listing, 351 connection interfaces, 347

Page 52: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1134

ConnectionConsumer attribute, 347, 355 ConnectionProvider attribute, 347, 353, 355 Content Editor Web Part, 300 ControlledExport property, 379 Coordinates type, 337 Coordinates.cs, 334 CoordinatesEditor.cs, 334 CoordinatesEditorPart.cs, 334 CreateChildControls method, 297, 308, 312,

331–332, 337, 342, 355, 362, 367 CreateEditorParts method, 330 creating a basic Web Part, procedure for,

298 creating a custom editor part, 333 creating connectable Web Parts using a data

connection, 347 creating private actions using verbs, 366 creating Visual Web Parts, 312 custom code access policy, 305 customizing the appearance of properties in

the tool pane, 381 CustomPropertyToolPart class, 381 <data> element, 311 default mapping between types and

controls, table of, 328 definition file for connected Web Parts,

code listing, 348 definition for a custom

<CodeAccessSecurity> section, code listing, 306

definition of, 296 deleting a Web Part from a page (C#), code

listing, 774 deleting a Web Part from a page

(JavaScript), code listing, 774 developing connected Web Parts, 348 DialogFeatures parameter, 344 DialogMaster class, 346 editing complex properties using a pop-up,

343 editing complex properties with editor

parts, 329 editing the AssemblyInfo.cs file, 311

editing the safe control entries using the Properties Editor, 301

editor part referencing custom controls, code listing, 341

EditorPart class, 330 EditorPartCollection, 330 <EditZone> control, 328 Elements.xml, 311, 348 encoding all user input rendered to the

client, 381 enhancing Web Parts using Ajax, 361 EnsureChildControls method, 332 ExecuteRegisteredAsyncTasks method, 370 ExportControlledProperties property, 379 Feature.xml, 348 FieldCallback, 357 fieldData parameter, 360 GetExtension method, 354 GetFieldInterface method, 359 GetFieldValue method, 359 GetFileByServerRelativeUrl method, 769 GetToolParts method, 381 Google Maps, 334 GroupedDropDownList control, 353 handling all exceptions to prevent web part

page failures, 375 handling validation errors, 332 helper class that supports private types,

code listing, 337 Hide method, 381 how to display a Web Part preview, 383 HtmlDesignerAttribute, 328, 343 HTMLEncode method, 381 HtmlGenericControl class, 353 IDesignTimeHtmlProvider interface, 380 IImageSelectorProvider interface, 353 Image element, 366 ImageSelectorProvider.cs, 348 <importErrorMessage> element, 98, 311 interfaces supporting generic connections,

356 IsClientScriptBlockRegistered method, 367

Page 53: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1135

IWebPartField interface, 356 IWebPartRow interface, 356 IWebPartTable interface, 356 key.snk, 312 LimitedWebPartManager class, 769 List Web Part, 347 LoadControl method, 308 localizing custom properties, 384 LockLayout property, 382 making a property personalizable, 326 making a Web Part asynchronous, 369 making a Web Part safe by default, 70 making web parts easily searchable, 383 manifest file for the source, code listing, 350 manifest file for the target Web Part, code

listing, 350 markup of the custom editor, code listing,

340 master-detail pattern connection scenario,

356 meta information needed for each property,

326 Microsoft.SharePoint.WebPartPages

namespace, 299, 343 Microsoft.Web.CommandUI assembly, 310 modifying the design-time behavior of a

Web Part, 300 namespace and property definition in the

.webpart file, 314 OnPreRender, 369 optimizing performance, 377 Package.xml, 348 Page class, 308, 367 Page Viewer Web Part, 300 PartCacheRead method, 378 PartCacheWrite method, 378 PartImageLarge property, 383 Permissions property, 376, 382 Personalizable attribute, 325 pop-up editor using the dialog.master

master page, code listing, 344 PreRenderComplete, 370, 373

project item file for the Bing map Web Part, code listing, 343

properties, contents of, 327 <property> element, 314 property pane, 326 RadioButtonList, 331 ReadOnlyAttribute, 328 RegisterCustomerProvider method, 366 registering a client-side script via a web

reference, procedure for, 377 registering a Web Part as a safe control, 301 registering in web.config, 98 Render method, 331 RenderContents method, 297 rendering inside a chrome, 300 RenderWebPart method, 383 restrictions concerning specific trust levels,

table of, 302 retrieving embedded resource names using

the Immediate window, 384 Rich Text Editor, 300 RowCallBack, 357 running Visual Web Parts in a sandbox, 312 <SafeControl> element, 98 sample XML file, code listing, 97 SaveWebPartChanges method, 770 saving changes to a Web Part without the

correct permissions, 382 Schema property, 359 securing, 301 security and, 98 security exception after using a disallowed

permission, 303 sending and receiving components, 347 SetFieldInterface method, 360 SetLabel method, 360 setting medium trust as the default trust

level, 305 setting the Assembly Deployment property,

305 SharePoint support for ASP.NET Web Parts,

296 showModalDialog function, 346

Page 54: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1136

Silverlight controls, 308 skeleton of an EditorPart control, code

listing, 330 Source Editor, 300 source Web Part definition, code listing, 349 SourceWebPart.cs, 348 specifying custom error messages, 376 specifying Web Part property values, 382 specifying whether Web Part properties can

be exported, 379 SPEncode class, 381 SPGridView control, 357, 359 SPGroupedDropDownList, 351 SPLimitedWebPartManager class, 296 SPWeb class, 384 SPWebPartManager class, 296 standard project structure of, 309 supporting anonymous access, 384 SyncChanges method, 329, 332, 342 System.Net namespace, 370 System.Web.UI.WebControls.WebPart

class, 296 TableCallback, 357 target Web Part, complete code listing, 354 TargetWebPart.cs, 348 throwing a WebPartPageUserException, 332 ToolboxItemAttribute, 329 understanding data connections, 347 Unit type, 337 UpdatePanel, 362, 366 updating a Web Part title (C#), code listing,

770 updating a Web Part title (JavaScript), code

listing, 771 user control’s code-behind, code listing, 337 user controls markup part, code listing, 336 using a Web Part cache to store property

values, 378 using an interface to transfer a data

structure, 347 using attributes on properties to add meta

information, 326 using the default.master page, 299

validating properties before saving database changes, 376

viewing all the named parameters at once in Visual Studio, 307

Visual Web Part class that loads a user control, 313

Visual Web Part template, code listing, 307 Visual Web Parts and the Sandboxed

Solution property, 309 VisualWebPart1UserControl.ascx, 309 Web Part definition file with basic

properties, code listing, 310 Web Part implementing IWebPartField,

code listing, 357 Web Part Page Services Component

(WPSC), 366 Web Part Property Definition, code listing,

349 Web Part that exposes data via Ajax, code

listing, 362 Web Part that receives an object of type

IWebPartField, code listing, 359 Web Part that receives data via Ajax, code

listing, 364 WebBrowsable attribute, 328, 330 WebCategoryAttribute, 327, 329 WebDescriptionAttribute, 327 WebPart class, 98, 334, 297, 379 WebPartEventHandler class, 367–368 WebPartManager class, 97, 296 WebPartPageUserException class, 376 WebPartStorageAttribute class, 379 WebPartToolPart class, 381 WebPartVerbCollection, 366, 368 WebPartZone class, 97, 299, 382 WebPartZoneManager class, 300 WebRequest class, 370 window.onload event, 345 window.onunload event, 345 wss_mediumtrust.config, 302 wss_minimaltrust.config, 302 wss_usercode.config, 302 zones, 296

Page 55: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1137

See also ASP.NET Web Parts Web property, 432–433 web references, 446 web services, 14 Web Single Sign-On authentication, 136 web sites

classes related to the SPWeb and SPSite base classes, 92

common LCID values, table of, 92 configuring, 92 Dispose method, 91 exporting and storing site templates as

solution files (.wsp), 93 Onet.xml, 92 SPControl class, 91 SPSite object, 90 SPWeb object, 90 Update method, 90 WebTemp*.xml, 92

web.config, 47–48, 57, 62, 64–65 accessing the current settings, 1048 <assemblies> node, 13 Assembly attribute, 69 client section, 66 <configuration> node, 13 enabling the execution of server-side code,

94 extending the settings in, 13 feature event receiver, 70 ghosting, definition of, 67 maintaining web.config settings

programmatically, 1045 modifying properly, 70 NameSpace attribute, 69 ObjectCache section, 67 <SafeControls> section, 69, 670 <SafeMode> element, 69 server-side section, 66 SPPageParserFilter, 67 SPVirtualPathProvider, 67 SPWebApplication class, 1046 SPWebConfigModification class, 1046

turning on developer-friendly error messages, 18

TypeName attribute, 69 WorkflowServices section, 67

Web.Lists property, 750 web.sitemap, 453 WebAdministrationSelector class, 653 WebApplication property, 108 WebApplicationSelector control, 652 WebBrowsable attribute, 328, 330 WebCategoryAttribute, 327, 329 WebControl class, 324 WebCreationInformation class, 748–749 WebDescriptionAttribute, 327 WebPart class, 5, 297, 317, 324, 379 WebPartEventHandler class, 367–368 WebPartManager class, 296, 318, 323 WebPartPageUserException class, 376 WebPartStorageAttribute class, 379 WebPartToolPart class, 381 WebPartVerb class, 324 WebPartVerbCollection, 366, 368 WebPartZone class, 97, 299, 323, 382, 416 WebRequest class, 370 WebResource.axd, 446 webTemp.xml, 411 WebTemp*.xml, 92 webTempProject.xml

Configuration element in, 414 elements and attributes, list of, 412

What’s Popular Web Part, 1072 window.frameElement property, table of

functions for finishing dialogs, 728 window.onload event, 345 window.onunload event, 345 Windows 7 Ultimate, xvii Windows Authentication, 134 Windows Communication Foundation (WCF),

xix, xxii, 56, 271 Windows Features dialog, settings for

SharePoint installation, 8 Windows Identity Foundation (WIF), xix, 9, 136

Page 56: Index [link.springer.com]978-1-4302-2707-6/1.pdf · elements.xml, code listing, 616 adding nested menus, 613 ... Forms Authentication, 136 handlers, ... verb, definition of, 324 Verbs

■ INDEX

1138

Windows Presentation Foundation (WPF), xix, xxiii

Windows Process Activation Service (WAS), 56 Windows Server 2008, xvii Windows Workflow Foundation (WF), 4 worker process, 59 workflows

classes related to the SPWorkflow base classes, 102

configuring, 102 namespaces used, 101 shapes, 101 Windows Workflow Foundation (WF)

engine, 101 WorkflowServices section, 67 WoW64 technique, 54 wss_mediumtrust.config, 302 wss_minimaltrust.config, 302 wss_usercode.config, 302

■ X XAML, xxiii XDocument object, 157 XElement type, 217 XML, 4, 68

property schema, 79 using for columns and field types, 79 using XML definition files to declare custom

fields, 79 XML Paper Specification (XPS), 204 XSLT, 68 XsltListViewWebPart, 402, 632–633

■ Z zones, 296, 318 ZoneTemplate, 323 ZoneTemplate, 323