Krause / Dring / Langhirt | SharePoint 2010 as a Development Platform | E-Book | www.sack.de
E-Book

E-Book, Englisch, 1164 Seiten

Krause / Dring / Langhirt SharePoint 2010 as a Development Platform


1. ed
ISBN: 978-1-4302-2707-6
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark

E-Book, Englisch, 1164 Seiten

ISBN: 978-1-4302-2707-6
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark



SharePoint is gaining recognition as a full-fledged application server with many features and enhancements that specifically allow non-developers to create sophisticated intranet sites. However, with the 2010 release, Microsoft's SharePoint increasingly becomes a compelling development platform. The strong application programming interface (API), its highly extensible nature, and its foundation on the underlying .NET Framework all generate 'the perfect storm' to make it one of the most powerful web development platforms available. However, with power comes complexity. The wide range of usage scenarios make it difficult for developers to grasp the full ability of this next-generation platform. This book takes an in-depth, all-encompassing approach to programming concepts, the extensibility interfaces, and how to embrace SharePoint as a toolkit full of features available to web developers. Take an in-depth look into the internals of SharePoint. Create sophisticated applications using SharePoint controls and databases. Understand the API and use in conjunction with ASP.NET to extend SharePoint. SharePoint is more than a portal and more than an intranet. Harness its capabilities and put it to work for you.

Joerg Krause has been working with software and software technology since the early 1980s, starting with a ZX-81 and taking the first steps using BASIC and assembler language. He studied information technology at Humboldt University Berlin, Germany, but left early to start his own operation in the 1990s. He is the author of several books about Online Marketing, PHP, ASP.NET, and SharePoint. He s MCP for .NET technology and SharePoint development. He currently works as a freelance consultant and software developer for Microsoft Technologies. Joerg can be reached at joerg@krause.net and you can get more information at http://www.joergkrause.de.

Krause / Dring / Langhirt SharePoint 2010 as a Development Platform jetzt bestellen!

Weitere Infos & Material


1;Title Page;1
2;Copyright Page;2
3;Contents at a Glance;3
4;Table of Contents;4
5;About the Author;11
6;About the Technical Reviewer ;13
7;Acknowledgments;14
8;Introduction;15
8.1;What Does This Book Cover?;15
8.2;Conventions Used in This Book;15
8.3;Who Is This Book For?;16
8.4;Prerequisites;16
8.5;How This Book Is Organized;16
8.6;Support;17
8.7;Welcome to SharePoint Development;17
8.7.1;SharePoint Applications;18
8.7.2;The SharePoint Community;20
8.7.3;Windows SharePoint Foundation for Developers;20
8.7.3.1;The Execution Environment;20
8.7.3.2;The Data Layer;20
8.7.3.3;The Business Logic Layer;21
8.7.3.4;The User Interface Layer;21
8.7.3.5;The Security Layer;22
8.7.3.6;The Developer Toolbox;23
8.7.4;Microsoft SharePoint Server for Developers;23
8.7.4.1;Content;23
8.7.4.2;Search;23
8.7.4.3;Dashboards;24
8.7.4.4;Forms and Workflows;24
8.7.4.5;Community;24
8.7.4.6;Content Publishing;24
8.7.5;Applications Make the World Go Round;25
9;PART 1 Basic Tasks;26
10;CHAPTER 1 Developer Basics;27
10.1;Before You Start;27
10.2;Setting Up a Development Environment for SharePoint;28
10.2.1;Working Outside a Server;28
10.2.1.1;Considering Remote Development;29
10.2.2;Installation Scenarios;29
10.2.2.1;Developer Workstation on Windows Vista or Windows 7;30
10.2.2.2;Steps for Vista SP1 Only;31
10.2.2.3;Installing Required Windows Features;31
10.2.2.4;Installing Visual Studio 2010;35
10.2.3;Team Development;35
10.2.4;Optimizing Your Development Experience;35
10.2.5;Preparing to Use .NET 3.5;36
10.3;SharePoint’s Developer Support at a Glance;37
10.3.1;Bridging the Gap;38
10.3.2;Connecting Your Systems;38
10.3.3;Advantages of SharePoint Functions;40
10.3.3.1;Understanding the API;40
10.3.4;Critical Tasks;42
10.3.5;Debugging the Server;42
10.3.5.1;Looking into the Event Log for SharePoint;43
10.3.5.2;Looking into the SharePoint and IIS Logs;43
10.3.5.3;Using Common Debugging Techniques;44
10.3.6;The Developer Dashboard;44
10.3.6.1;Activating the Developer Dashboard Using stsadm;44
10.3.6.2;Activating the Developer Dashboard Using PowerShell;45
10.3.6.3;Activating the Developer Dashboard Using Code;46
10.3.6.4;Working with the Developer Dashboard;46
10.3.6.5;Making Your Code Dashboard-Aware;47
10.3.7;Debugging the Client;49
10.3.7.1;Using Fiddler to Understand What’s Going on the Wire;49
10.3.7.2;Using Developer Tools to Investigate What’s Running in the Browser;51
10.4;Introducing Visual Studio 2010’s SharePoint Support;52
10.4.1;Visual Studio 2010;52
10.4.1.1;Preparing Visual Studio;53
10.4.1.2;The SharePoint Development Templates;53
10.4.1.3;Adding Items to a Project;56
10.4.1.4;Investigating a Package;57
10.4.1.5;The Feature Designer;57
10.4.1.6;Working with SharePoint Designer Workflows;58
10.4.1.7;Importing Packages;58
10.4.1.8;Creating a Package;58
10.4.1.9;Building and Deploying;59
10.4.2;SharePoint Designer 2010 vs. Visual Studio 2010;59
10.5;SharePoint Designer 2010 for Professional Developers;60
10.5.1;Installation Hints;61
10.5.2;Features at a Glance;61
10.5.2.1;SharePoint Designer Rights;61
10.5.2.2;New Dashboard Interface;62
10.5.2.3;Simplified Object Creation;63
10.5.2.4;Easy Use of Content Types;63
10.5.2.5;Resource Management;64
10.5.2.6;XSLT Views;65
10.5.2.7;Accessing Data Sources;65
10.5.2.8;Managing Business Data Connectivity Services;65
10.5.2.9;Managing Workflows;65
10.5.2.10;Master and Site Pages;66
10.6;SharePoint as a Development Toolkit and Framework;66
10.6.1;Command-Line Tools;66
10.6.1.1;psconfig.exe;66
10.6.1.2;stsadm.exe;66
10.6.1.3;SPMetal.exe;67
10.6.2;Graphical Tools;67
10.6.2.1;psconfigui.exe;67
10.7;Handling 64-Bit Quirks;67
10.7.1;Programming SharePoint Using a Console Application;67
10.7.2;Programming SharePoint Using ASP.NET;68
10.7.2.1;Preparing ASP.NET for the x64 Platform;69
10.7.2.2;Configuring IIS to Run with the Right Account;70
10.8;Summary;72
11;CHAPTER 2 Architecture;74
11.1;The Architectural View;74
11.1.1;SharePoint 2010 Foundation;75
11.1.2;SharePoint Server;76
11.1.3;Why Develop with the SharePoint Platform?;76
11.2;The Technical Integration;76
11.2.1;IIS and ASP.NET;77
11.2.1.1;What Is ASP.NET?;77
11.2.1.2;From ISAPI to ASP.NET;77
11.2.1.3;The IIS 7 Integrated Pipeline;78
11.2.2;ASP.NET Extensibility;82
11.2.2.1;Modules, Handlers, and IIS;82
11.2.2.2;The Provider Model;84
11.2.2.3;The Configuration Model;85
11.2.2.4;Virtual Path Provider;85
11.2.3;SharePoint Integration with ASP.NET;86
11.2.3.1;Understanding the Web Application;86
11.2.3.2;Understanding the Configuration;89
11.2.3.3;Using the Virtual Path Provider;90
11.2.4;SharePoint and Ajax;91
11.2.4.1;What Is Ajax?;91
11.2.5;Security Model;91
11.2.5.1;Safe Mode;92
11.2.5.2;Safe Controls;92
11.2.5.3;Manipulating web.config to Add Safe Controls Programmatically;92
11.2.5.4;Making a Web Part Safe by Default;93
11.3;The Foundation’s Object Model;94
11.3.1;Data-Related Building Blocks;95
11.3.1.1;Lists and Document Libraries;95
11.3.1.2;Files and Documents;98
11.3.1.3;Columns and Field Types;100
11.3.1.4;Queries and Views;105
11.3.2;Deployment- and Maintenance-Related Building Blocks;108
11.3.2.1;Features;108
11.3.2.2;Web Sites and Site Collections;113
11.3.3;Building Blocks to Create the UI;116
11.3.3.1;Pages and UI Support Elements;116
11.3.3.2;Ribbon;118
11.3.3.3;Web Parts;120
11.3.4;Control Flow, Action, and Events;121
11.3.4.1;Event Handling;121
11.3.4.2;Alerts;123
11.3.4.3;Workflows;124
11.4;The Administrative Object Model;126
11.4.1;Overview of Namespaces;126
11.4.2;An Administrative View;127
11.4.2.1;The Database Architecture;128
11.4.2.2;The Server Architecture;130
11.4.2.3;Working with Top-Level Objects;131
11.4.3;The Administrative Server Object Model Organization;133
11.4.3.1;Physical Hierarchy;134
11.4.3.2;Content Hierarchy;135
11.4.3.3;Services Hierarchy;137
11.5;Summary;138
12;CHAPTER 3 Accessing the API;139
12.1;Finding the Entry Points;139
12.1.1;Establishing the Site Context;140
12.2;Utilities, Helper Classes, and Support Classes;141
12.2.1;Examining the Namespaces;141
12.2.2;SPUtility Class Examples;141
12.2.2.1;Formatting a Date Using SPUtility.FormatDate;141
12.2.2.2;Getting the 14 Hive File System Path;142
12.2.2.3;Getting the Full (Absolute) URL;142
12.2.2.4;Redirecting to Another Page;143
12.2.2.5;Formatting Scalar Data;146
12.2.3;Common Utility Classes;147
12.2.3.1;The DateOptions Class;147
12.2.3.2;The SPUrlUtility Class;147
12.2.3.3;The SPHttpUtility Class;147
12.2.3.4;The SPDiffUtility Class;147
12.3;Object Disposal Issues;147
12.3.1;Best Practice Advice;147
12.3.1.1;Handling Objects Used in a Publishing Web;149
12.3.1.2;Disposing of Objects and Collections;151
12.3.1.3;Objects Owned by SharePoint;153
12.3.2;Example of Incorrect Disposal;154
12.3.3;Finding Incorrectly Disposed-Of Objects;155
12.3.4;SharePoint Security: Users and Roles;155
12.3.4.1;Security Primer;155
12.3.4.1.1;Authentication;155
12.3.4.1.2;Access;159
12.3.4.1.3;Search;160
12.3.4.2;Users, Groups, and Roles;160
12.3.4.2.1;Retrieving Users;161
12.3.4.2.2;Retrieving the Current User;162
12.3.4.2.3;Getting a Specific SPUser Object;163
12.3.4.2.4;Working with Groups;163
12.3.4.3;Security Issues in Custom Code;165
12.3.4.3.1;Running with Elevated Privileges;166
12.3.4.3.2;Securing Objects;169
12.3.4.3.3;Handling Authorization Failures;173
12.3.4.3.4;Using Helper Classes;175
12.4;The Isolated Programming Style;176
12.4.1;Console-Based Applications;177
12.4.1.1;Creating a Console Application;177
12.4.1.2;Controlling a Console Application Using Parameters;179
12.4.1.3;Handling Output of a Console Application;182
12.4.1.4;Using Object Constructors;182
12.4.1.5;Console Example;183
12.4.2;Windows Forms and WPF Applications;185
12.5;Summary;185
13;CHAPTER 4 Data Access;186
13.1;Organizing Data in Lists;186
13.1.1;Lists and Their Elements;186
13.1.1.1;Lists and Content Types;187
13.1.1.2;Content Type Elements;188
13.1.2;Working with Lists;188
13.1.2.1;Creating a List Programmatically;190
13.1.2.2;Adding Fields to the List;192
13.1.2.3;Changing Field Properties;193
13.1.2.4;Enumerating the Fields Collection;194
13.1.2.5;Adding Items to the List;194
13.1.2.6;Working with Collections;195
13.1.2.7;Working with Attachments;196
13.1.2.8;Handle Huge Lists;200
13.1.3;Define and Use Views;201
13.1.3.1;Modifying an Existing View;204
13.1.3.2;Creating a New View Programmatically;205
13.1.4;Custom Field Types;206
13.1.5;Content Types;207
13.1.5.1;Difference between Lists and Libraries;207
13.1.5.2;Parts of a Content Type;207
13.1.5.3;When to Use Content Types Programmatically;210
13.1.6;Item- and List-Level Event Receivers;210
13.1.6.1;Synchronous vs. Asynchronous Events;210
13.1.6.2;List Item Events;211
13.1.6.3;List Events;212
13.1.7;Developing and Deploying an Event Receiver;213
13.1.7.1;The Elements.xml;215
13.1.7.2;The Event Handler Code;215
13.2;Document Libraries and Document Sets;218
13.2.1;Libraries, Folders, and Documents;218
13.2.1.1;Example: Reading a File from the Shared Documents Library;218
13.2.1.2;Example: Adding a Folder to a Library;220
13.2.1.3;Example: Saving Data to Libraries;220
13.2.1.4;Example: Deleting a File;221
13.2.2;Working with Office Documents;222
13.2.2.1;Enriching a Word Document with Placeholders;223
13.2.2.2;Creating Documents from Templates;225
13.2.2.3;Working with Open Packaging Convention Packages;225
13.2.2.4;Creating the Report;226
13.2.3;Document Sets;229
13.2.3.1;Advantages of Document Sets;230
13.2.3.2;Prepare Document Sets;230
13.2.3.3;Access a Document Set Programmatically;233
13.2.3.4;Reading the Properties;234
13.2.3.5;Example: Checking Whether an Item Is in a Set;235
13.3;Query Data Using CAML and LINQ;235
13.3.1;CAML vs. LINQ;235
13.3.2;Obsolete Methods in SharePoint 2010;236
13.3.2.1;Avoid Using SharePoint Data Providing Web Services;236
13.3.2.2;Avoid Direct Calls to owssvr.dll;236
13.4;Query Data Using CAML;236
13.4.1;Understanding CAML;236
13.4.1.1;Using CAML to Retrieve Data;237
13.4.1.2;How to Create a CAML Query;238
13.4.1.3;The Query Schema;239
13.4.1.4;Working with Lists, Joins, and Projections;241
13.4.1.5;Using List Joins and Projections in Site Templates;245
13.5;Understanding LINQ;245
13.5.1;Examining the LINQ Basics;245
13.5.1.1;Architecture of LINQ;246
13.5.1.2;Keywords;247
13.5.1.3;Enumerations;247
13.5.1.4;Operators;247
13.5.1.5;Simple Queries;248
13.5.1.6;Aggregators;250
13.5.1.7;Selectors;251
13.5.2;LINQ to SharePoint;251
13.5.2.1;Understanding the LINQ to SharePoint Provider;252
13.5.3;Creating the Layer with SPMetal.exe;254
13.5.3.1;Where to Get SPMetal?;254
13.5.3.2;How to Use SPMetal?;255
13.5.3.3;Advanced Configuration;255
13.5.3.4;What SPMetal Generates;256
13.5.4;Using LINQ;259
13.5.4.1;Example: Reading Data;259
13.5.4.2;Example: Read Joined Data;261
13.5.4.3;Example: Inserting Items Using EntityList;261
13.5.4.4;Example: Deleting Items;262
13.5.4.5;Example: Updating Properties Using the ForEach Pattern;263
13.5.5;Advanced List Examples;263
13.5.5.1;Handle Queries Containing Functions;264
13.5.5.2;Customize the Mapping;264
13.5.5.3;Track Changes;267
13.5.5.4;Declare Your Own Type Classes;270
13.5.5.5;Examine Relationships;270
13.5.5.6;Understanding LINQ to CAML Conversion;274
13.6;Summary;275
14;CHAPTER 5 External Data Access;276
14.1;Introducing External Data Access;276
14.2;Query Data Using Data Services;277
14.2.1;The WCF Data Services Framework;277
14.2.2;Introducing REST;278
14.2.2.1;What About SOAP?;278
14.2.2.2;Constraints and Opportunities;279
14.2.2.3;Addresses for Resources;279
14.2.2.4;Reading the Response;279
14.2.3;Install and Use WCF Data Services;281
14.2.3.1;Download the Data Services Update;282
14.2.3.2;Installing the Package;282
14.2.3.3;Programming WCF Data Services with SharePoint;282
14.2.4;Data Services URIs and URI Parameters;285
14.2.4.1;Options for Data Representation;288
14.2.5;Querying Data;288
14.2.5.1;Examples;288
14.2.5.2;Work with Data Services;289
14.3;External Data: Business Connectivity Services;291
14.3.1;Business Connectivity Architecture at a Glance;291
14.3.2;External Content Types;292
14.3.2.1;Create an External Content Type Using SharePoint Designer;292
14.3.2.2;Manage Appropriate Security Settings;297
14.3.2.3;Access External Data;298
14.3.2.4;Create an External List Using the Browser UI;299
14.3.3;Access External Data Through the Object Model;300
14.3.4;Access External Data Through the Client Object Model;301
14.4;Highly Efficient Data Access;301
14.4.1;Using LINQ to SQL;301
14.4.1.1;Understanding the Content Database;301
14.4.1.2;Creating SQL Views for SharePoint Lists;305
14.4.1.3;Querying with LINQ to SQL;309
14.4.1.4;Limitations of This Method;312
14.4.1.5;Conclusion;313
14.4.2;Efficient Access to Huge Lists;313
14.4.2.1;Using Paging in Advanced Scenarios;314
14.5;Summary;315
15;CHAPTER 6 Web Parts;316
15.1;Fundamentals;316
15.1.1;Usage Scenarios;316
15.1.2;Distinctions Between SharePoint and ASP.NET Web Parts;317
15.1.3;Web Part Primer;318
15.1.3.1;Creating a Simple Web Part;319
15.1.3.2;Built-In Web Parts;320
15.1.3.3;Web Part Properties;321
15.1.3.4;Web Part in a Chrome;321
15.1.3.5;Securing Web Parts;322
15.1.4;Visual Web Parts;328
15.1.4.1;Understanding the Project Structure;330
15.1.4.2;Running Visual Web Parts in a Sandbox;333
15.1.4.3;Creating Visual Web Parts;333
15.2;Understanding ASP.NET Web Parts;335
15.2.1;How It Works;336
15.2.1.1;The Zone Concept;339
15.2.1.2;Structure of a Web Part Page;340
15.2.2;SPWebPartManager;344
15.2.2.1;WebPartZone;344
15.2.2.2;EditorZone;344
15.2.2.3;CatalogZone;344
15.2.2.4;ConnectionsZone;345
15.2.2.5;WebPart’s Class Hierarchy;345
15.3;Advanced Web Part Development;346
15.3.1;Personalizing Web Parts;346
15.3.2;Customizing the Property Pane;347
15.3.2.1;Understanding Properties;348
15.3.2.2;Global Settings;350
15.3.3;Editing Complex Properties with Editor Parts;350
15.3.3.1;Using Editor Parts to Edit Properties;350
15.3.3.2;Creating a Custom Editor Part Example;354
15.3.3.3;Editing Complex Properties Using a Pop-Up;364
15.4;Connectable Web Parts;368
15.4.1;Understanding Data Connections;368
15.4.2;Developing Connected Web Parts;369
15.4.2.1;Creating the Web Part Definition Files;369
15.4.2.2;Coding a Connected Web Part;371
15.4.3;Advanced Connection Scenarios;377
15.4.3.1;Using Generic Interfaces;377
15.4.3.2;Enhancing Web Parts Using Ajax;382
15.4.4;The Web Part Page Services Component;387
15.5;Creating Private Actions Using Verbs;387
15.5.1;Adding Entries to the Web Part Drop-Down Menu;387
15.5.2;Using Client Script to Handle Menu Clicks;388
15.5.3;Adding Server-Side and Client-Side Handlers;389
15.6;Asynchronous Web Parts;390
15.6.1;Making a Web Part Asynchronously;390
15.6.2;Creating an Asynchronous Data Source;394
15.7;Best Practices for Developing Web Parts for SharePoint;396
15.7.1;Avoiding Error-Prone Web Parts;396
15.7.1.1;Handling All Exceptions to Prevent Web Part Page Failures;396
15.7.1.2;Checking Permissions Before Rendering Your Web Part;397
15.7.1.3;Validating Properties Before Saving Changes to the Database;397
15.7.1.4;Specifying Custom Error Messages When Appropriate;397
15.7.1.5;Validating All User Input;398
15.7.2;Optimizing Performance;398
15.7.2.1;Registering the Client-Side Script Shared by Multiple Web Parts to Improve Performance;398
15.7.2.2;Techniques to Improve Web Part Performance;399
15.7.3;Supporting the End User;399
15.7.3.1;Specifying Whether Web Part Properties Can Be Exported;400
15.7.3.2;Supporting SharePoint Designer and the Visual Studio Design-Time Experience;401
15.7.3.3;Making Properties User-Friendly in the Tool Pane;401
15.7.3.4;Encoding All User Input Rendered to the Client;402
15.7.3.5;Checking Web Part Zone Properties Whenever You Attempt to Save Changes;403
15.7.3.6;Using Simple Types for Custom Properties You Define;403
15.7.3.7;Making Properties Independent of Each Other If They Both Appear in the Tool Pane;404
15.7.3.8;Making Web Parts Easily Searchable in the Galleries;404
15.7.3.9;Providing a Preview of Your Web Part for the Web Part Gallery;404
15.7.3.10;Localizing Your Custom Properties;405
15.7.3.11;Supporting Anonymous Access;405
15.7.3.12;Help Using Resources;405
15.8;Summary;406
16;CHAPTER 7 Templates;407
16.1;Templates Overview;407
16.2;Column Templates;408
16.3;List Templates;411
16.3.1;List Definitions vs. List Templates;412
16.3.2;Custom List Definitions;412
16.3.3;List Template Definition Files;416
16.3.3.1;The List Element;416
16.3.3.2;The ContentTypes Element;417
16.3.3.3;The Fields Element;418
16.3.3.4;The Views Element;420
16.3.3.5;Forms;425
16.3.4;Using List Templates;426
16.4;Site Templates;428
16.4.1;Visual Studio 2010 Support;429
16.4.2;SiteTemplate vs. SiteDefinition;430
16.4.3;Site Definition Structure;431
16.4.3.1;webTemp.xml;431
16.4.3.2;default.aspx;435
16.4.3.3;Onet.xml;437
16.4.4;Using a Site Definition;445
16.4.4.1;stsadm.exe;445
16.4.4.2;Create Workspace or Site Collection via the UI;446
16.4.4.3;Custom Code;447
16.5;Summary;448
17;CHAPTER 8 Application Techniques;449
17.1;Application Pages;449
17.1.1;Creating Application Pages Using Visual Studio;449
17.1.2;Using the Base Class;452
17.1.3;Using Inline Code;452
17.1.4;Using Code-Behind;454
17.1.5;Using the Master Page;454
17.1.6;Integrating Application Pages;455
17.1.7;Security Considerations;455
17.2;Resources and Localization;456
17.2.1;Resource Primer;456
17.2.1.1;Defining Resources in SharePoint;457
17.2.1.2;Usage Scenarios in SharePoint;459
17.2.2;Using Resources in Web Parts;459
17.2.2.1;Using Resources for Static Data in Web Parts;460
17.2.2.2;Using Resources for Localization with Embedded Resource Files;463
17.2.2.3;Using Resources to Localize Web Part Attributes;464
17.2.2.4;Using Resources for Linked Data;465
17.2.2.5;The Resource Manager;468
17.2.3;Using Resources to Localize a Feature;469
17.3;The Event Model;471
17.3.1;The Event Receiver Principles;471
17.3.2;Events at a Glance;471
17.3.3;Events at the Deployment Stage: Feature Receivers;472
17.3.3.1;Creating a Feature with the Application Page’s Navigation;473
17.3.3.2;Creating the Feature Receiver;474
17.3.3.3;Registering the Event;477
17.3.4;Events at the Site and Site Collection Levels;478
17.3.4.1;Defining the Event Receiver;479
17.3.4.2;Creating a Web Event Receiver Class;480
17.3.4.3;Dealing with Error Conditions;481
17.4;Sending E-mail;482
17.4.1;Sending E-mail Using ASP.NET;482
17.4.2;Using SharePoint’s Mail-Sending Classes;483
17.4.3;Sending E-Mail from a WCF Service;485
17.5;Custom Helper Classes;486
17.5.1;Data Manager Functions;486
17.5.1.1;Getting a Web with Elevated Privileges;486
17.5.1.2;Getting a List Instance;487
17.5.1.3;Getting a List with a Data Model Behind the Scenes;487
17.5.1.4;Extension Methods Elaborated;493
17.5.1.5;Caching Queries to Improve Performance;498
17.6;Summary;499
18;CHAPTER 9 Solution Deployment;500
18.1;SharePoint Features;500
18.2;Solution Packages;504
18.3;Sandboxed Solutions;508
18.3.1;Restrictions of Sandboxed Solutions;508
18.3.2;The Sandbox Architecture;510
18.3.3;Life Cycle of a Sandboxed Solution;510
18.3.3.1;Deploying a Sandboxed Solution;512
18.3.3.2;Upgrading a Sandboxed Solution;512
18.3.4;Monitoring Sandboxed Solutions;513
18.3.5;Sandboxed Solution Validators;515
18.3.6;Sandboxed Solution Full-Trust Proxies;516
18.4;Deploying Solution Packages Using PowerShell Cmdlets;518
18.4.1;PowerShell and SharePoint 2010;521
18.4.1.1;PowerShell Cmdlets for SharePoint 2010 Overview;522
18.4.1.2;Getting Help: What Are Cmdlets Good For?;523
18.4.2;Deploying a Farm Solution Package;523
18.4.3;Deploying a Sandboxed Solution using PowerShell;524
18.5;Deploying Solution Packages Using stsadm;524
18.5.1;Adding a Solution Package;525
18.5.2;Removing Solutions;526
18.5.3;Installing Features;526
18.6;Creating a Solution Package Step by Step;527
18.6.1;Step 1: Creating the Folder Structure;527
18.6.2;Step 2: Building the Feature;528
18.6.3;Step 3: Creating a Solution Definition;529
18.6.4;Step 4: Creating a DDF;530
18.6.5;Step 5: Creating the Solution Package;530
18.7;How To: Creating a Solution Package Using Visual Studio 2010;531
18.7.1;Using the Project Templates;532
18.7.2;Site and Security Level for Debugging;533
18.7.3;Adding SharePoint Items and Features to Your Project;533
18.7.4;Editing Your Features;535
18.7.5;Editing Your Solution Package;538
18.7.6;Project Properties and Deployment Configuration;540
18.7.7;Debugging the Solution;542
18.7.8;Packaging the Solution;543
18.8;How To: Creating a Sandboxed Solution Using Visual Studio 2010;544
18.8.1;Debugging the Solution;546
18.8.2;Creating a Full-Trust Proxy;547
18.8.2.1;Deploying the Full-Trust Proxy DLL to the GAC;551
18.8.2.2;Registering the Full-Trust Proxy Using a Feature Receiver;552
18.8.2.3;Using the Full-Trust Proxy to Extend a Sandboxed Solution;553
18.8.3;Creating a Solution Validator;555
18.9;Upgrading Custom Developed Solutions to SharePoint 2010;562
18.9.1;Backward Compatibility Mode;563
18.9.2;Reasons for Upgrading;563
18.9.3;Upgrading a VSeWSS Solution;564
18.9.4;Upgrading a WSP Package;567
18.9.5;Upgrading Custom Solutions;569
18.9.6;Using Existing SharePoint 2007 Code in SharePoint 2010;569
18.9.7;Deprecated APIs;570
18.10;Summary;571
19;PART 2 User Interface;572
20;CHAPTER 10 Extending the User Interface;573
20.1;Master Pages;573
20.1.1;Master Page Types;575
20.1.1.1;System Master Page (Default Master Page);575
20.1.1.2;Site Master Page (Custom Master Page);576
20.1.1.3;Application Master Pages;577
20.1.1.4;Dialog Master Pages;585
20.1.1.5;Content Pages vs. Application Pages;589
20.1.1.6;Conclusion;589
20.1.2;Master Page Tokens;590
20.1.2.1;Dynamic Tokens;590
20.1.2.2;Static Tokens;591
20.1.3;Master Page Gallery;592
20.1.4;Example: Applying a Master Page Recursively;593
20.2;Navigation;596
20.2.1;Navigation Controls;596
20.2.1.1;Top Link Bar Navigation;597
20.2.1.2;Quick Launch Navigation;599
20.2.1.3;Breadcrumb Navigation;601
20.2.1.4;Tree View Navigation;602
20.2.2;Understanding ASP.NET Site Map Providers;602
20.2.3;SharePoint Foundation Navigation Providers;604
20.2.3.1;The SPNavigationProvider Class;605
20.2.3.2;The SPSiteMapProvider Class;605
20.2.3.3;The SPContentMapProvider Class;605
20.2.3.4;The SPXmlContentMapProvider Class;605
20.2.4;SharePoint Server Navigation Providers;606
20.2.5;Example: Browsing Through Navigation Providers;608
20.3;Themes;609
20.3.1;Understanding Themes;610
20.3.1.1;Customization Levels;610
20.3.1.2;Applying Fonts and Colors;611
20.3.1.3;Dynamic Stylesheets;611
20.3.1.4;Correlation with Office THMX Files;612
20.3.1.5;Separation of Design and Implementation;612
20.3.2;SharePoint Theming;612
20.3.2.1;Themes in SharePoint 2010;612
20.3.2.2;Theming Prerequisites;613
20.3.2.3;Theme Colors and Variations;613
20.3.2.4;Dynamic Stylesheets;614
20.3.2.5;Applying Themes;617
20.3.2.6;Creating Themable Application Pages;618
20.4;Extending the UI;622
20.4.1;Custom Actions;622
20.4.2;Custom Action Examples;627
20.4.2.1;Listing All Custom Actions;627
20.4.2.2;Extending Site Settings;630
20.4.2.3;Adding Nested Menus;631
20.4.3;Using Ribbons;635
20.4.3.1;Adding a Button;637
20.4.3.2;Removing a Button;638
20.4.3.3;Replacing a Button;638
20.5;Summary;639
21;CHAPTER 11 Using Web Controls;640
21.1;Overview;640
21.2;Field Controls;641
21.2.1;Understanding the BaseFieldControl Base Class;642
21.2.2;Custom Field Controls;647
21.2.2.1;Field Type Definition;648
21.2.2.2;XSL Stylesheets for Custom Fields;650
21.2.2.3;The Field Class;651
21.2.2.4;The Field-Rendering Control Class;652
21.2.2.5;The Field-Rendering Template;654
21.2.2.6;Getting the Custom Field to Work;655
21.2.3;Custom Field Properties;655
21.2.3.1;Field Editor User Control: Web Form (ASCX);657
21.2.3.2;Field Editor User Control: Code-Behind (CS);658
21.3;Input Form Controls;660
21.3.1;Sections;660
21.3.2;Text Controls;661
21.3.3;Check Boxes and Radio Buttons;662
21.3.4;Using Validator Controls;663
21.3.4.1;InputFormRequiredFieldValidator;664
21.3.4.2;InputFormCompareValidator;665
21.3.4.3;InputFormRangeValidator;665
21.3.4.4;InputFormRegularExpressionValidator;665
21.3.4.5;InputFormCustomValidator;666
21.3.5;Security Trimming;666
21.3.5.1;Deriving from SPSecurityTrimmedControl;668
21.4;Pickers and Selector Controls;668
21.4.1;Useful Controls;668
21.4.1.1;Schedule Picker;671
21.4.1.2;People Picker;673
21.4.2;Implementing Custom Pickers;678
21.4.2.1;The Data Source;679
21.4.2.2;Dialog Editor Class;681
21.4.2.3;Dialog Picker Class;683
21.4.2.4;Query Control Class;685
21.4.2.5;Getting the Custom Picker to Work;687
21.5;Toolbar and Ribbon Controls;689
21.5.1;Toolbar Control;689
21.5.2;Ribbon Control;691
21.5.2.1;Ribbon Basics;691
21.5.2.2;Ribbon Controls Overview;697
21.5.3;Customizing the Ribbon;703
21.5.3.1;Prerequisites for a Custom Ribbon;703
21.5.3.2;Creating a Feature with a Ribbon Definition;703
21.5.3.3;Creating an Application Page and Displaying the Ribbon Bar;704
21.5.3.4;Creating Client-Side JavaScript Code for a PageComponent Implementation;708
21.5.3.5;Implementing Server-Side Event Handlers;710
21.6;Data Controls;711
21.6.1;Working with the SPGridView Control;711
21.6.1.1;Example: Implementing a Grid for a SharePoint List;712
21.6.1.2;Example: Using the DataTable Class;714
21.6.1.3;Example: Adding Custom Menus;715
21.6.1.4;Example: Enabling Sorting;716
21.6.1.5;Example: Enabling Sorting and Filtering Using a LINQ Data Source;718
21.6.2;Working with the JS Grid Control;719
21.6.2.1;Features;720
21.6.2.2;Example: Using the JS Grid Control;722
21.7;Summary;726
22;CHAPTER 12 Client Programming;727
22.1;Understanding the Client Object Model;727
22.1.1;Getting Started;729
22.1.1.1;JavaScript Applications;731
22.1.2;Namespaces Overview;731
22.1.3;The Client Context;733
22.1.3.1;Authentication Modes;733
22.1.3.2;Client and Value Objects;734
22.1.3.3;Automatically Obtaining Object Identity;734
22.1.4;Working with Data;735
22.1.5;Data Loading and Querying;736
22.1.6;Differences and Limitations;738
22.1.6.1;Absolute and Relative URLs Within the Constructors;739
22.1.6.2;Different Data Types;739
22.1.6.3;Specifying the Authentication Mode;739
22.1.6.4;Using the Digest Web Control;739
22.1.7;Summary;740
22.2;Using the Dialog Framework;740
22.2.1;Working with Modal Pop-Up Dialogs;740
22.2.2;Using Callback Functions and Return Values;743
22.2.3;Building Dialog Pages;745
22.3;Working with Status Information and Notifications;748
22.3.1;Status API;748
22.3.2;Notification API;750
22.4;Development Best Practices;751
22.4.1;Preparing Visual Studio for JavaScript;751
22.4.1.1;Workaround to Enable JavaScript IntelliSense in Custom Application Pages;752
22.4.1.2;Using JavaScript IntelliSense Within JS Files;754
22.5;Programming Examples;755
22.5.1;Common Pitfalls;755
22.5.1.1;Objects Cannot Be Accessed Until They Are Loaded;755
22.5.1.2;Not All Values Are Retrieved;757
22.5.1.3;The Difference Between Value Objects and Client Objects;759
22.5.2;Accessing Webs and Sites;761
22.5.2.1;How to Retrieve Site and Web Properties;761
22.5.2.2;How to Retrieve Specific Properties Only;762
22.5.2.3;How to Update Properties;763
22.5.3;Accessing Lists;766
22.5.3.1;How to Retrieve All SharePoint Lists in a Web Site;766
22.5.3.2;How to Retrieve List Field Information;767
22.5.3.3;How to Create a New SharePoint List;768
22.5.3.4;How to Modify an Existing SharePoint List;769
22.5.3.5;How to Delete a SharePoint List;770
22.5.4;Accessing List Items;771
22.5.4.1;How to Retrieve All Items in a SharePoint List;771
22.5.4.2;How to Retrieve List Items Using CAML Queries;772
22.5.4.3;How to Create a New List Item;774
22.5.4.4;How to Update a List Item;775
22.5.4.5;How to Delete a List Item;776
22.5.5;Accessing Users and Roles;776
22.5.5.1;How to Add Users to a SharePoint Group;777
22.5.5.2;How to Retrieve Members of a SharePoint Group;778
22.5.5.3;How to Create a Role;779
22.5.5.4;How to Add Users or Groups to Roles;780
22.5.5.5;How to Create a New SharePoint Group and Assign the Group to a Role;782
22.5.5.6;How to Break the Role Inheritance;783
22.5.6;Accessing Web Parts;785
22.5.6.1;How to Update the Title of a Web Part;785
22.5.6.2;How to Add a Web Part to a Page;788
22.5.6.3;How to Delete a Web Part from a Page;790
22.5.7;Advanced Examples;792
22.5.7.1;How to Use Exception-Handling Scope;792
22.5.7.2;How to Use Conditional Scope;795
22.5.7.3;How to Access Large Lists;796
22.6;Summary;798
23;CHAPTER 13 Integrating Silverlight;799
23.1;Introducing Silverlight;799
23.1.1;Being Prepared for Silverlight;800
23.1.2;The Architecture of Silverlight;800
23.1.2.1;The Client Library;801
23.1.2.2;The Core Libraries;801
23.1.2.3;The Presentation Core;801
23.1.3;Silverlight and XAML;802
23.1.3.1;Describing a Silverlight UI Using XAML;802
23.1.3.2;Events;804
23.2;Silverlight Hosting and Distribution;810
23.2.1;Setup and Deployment;810
23.2.1.1;Treat Silverlight as an External Application;810
23.2.2;Cross-Domain Security;810
23.2.2.1;Managing the Client-Access Policy;811
23.2.2.2;Creating an HTTP Request Forwarder;812
23.2.2.3;Activating the Handler Using an External Application Provider;813
23.2.3;Integrating Silverlight;816
23.2.3.1;Using Silverlight in an Application Page;817
23.2.3.2;Using Silverlight in a Web Part;820
23.3;Accessing SharePoint Data;822
23.3.1;Using the SharePoint Client Object Model;822
23.3.2;Executing Queries;823
23.3.3;Example: Reading List Data from SharePoint and Writing Changes Back;823
23.3.4;Example: Accessing Lists;828
23.3.4.1;Retrieving All SharePoint Lists in a Web Site;828
23.3.4.2;Retrieving List Field Information;830
23.3.4.3;Creating a New SharePoint List;833
23.3.4.4;Retrieving List Items Using CAML Queries;836
23.3.5;Example: Accessing Users and Roles;837
23.3.5.1;How to Add Users to a SharePoint Group;837
23.4;Summary;841
24;CHAPTER 14 Integrating Charts and Maps;842
24.1;Data Access Scenarios;842
24.2;Integrating Charts;843
24.2.1;Understanding Microsoft Chart Controls;843
24.2.1.1;Prerequisites;844
24.2.1.2;Features;847
24.2.1.3;Setting Up;847
24.2.2;Using Microsoft Chart Control;849
24.2.2.1;Chart Elements;849
24.2.2.2;Working with Data;851
24.2.2.3;Conclusion;865
24.2.3;Using the Google Chart API;865
24.2.3.1;Chart Types;866
24.2.3.2;Using the Google Chart API with SharePoint;869
24.2.4;Using the Google Visualization API;872
24.2.4.1;Chart Types;875
24.2.4.2;Using the Google Visualization API with SharePoint;877
24.3;Integrating Map Services;877
24.3.1;Bing Maps;878
24.3.1.1;Integrating Bing Maps into Application Pages;878
24.3.1.2;Integrating Bing Maps into Web Parts;880
24.3.1.3;Populating Bing Maps Using the JavaScript Client Object Model;882
24.3.2;Google Maps;885
24.3.2.1;Integrating Google Maps into Application Pages;886
24.3.2.2;Integrating Google Maps into Web Parts;889
24.3.2.3;Populating Google Maps Using the JavaScript Client Object Model;890
24.3.3;Bing Maps vs. Google Maps;893
24.3.3.1;Limitations When Using SSL/HTTPS;893
24.3.3.2;Licensing;894
24.4;Summary;894
25;PART 3 Advanced Techniques;896
26;CHAPTER 15 Forms Services and InfoPath;897
26.1;Internals of InfoPath Forms;897
26.1.1;InfoPath Form Template;898
26.1.1.1;Form Definition Files;900
26.1.1.2;Form Schema File (XSD);904
26.1.1.3;Form Views (XSL);907
26.1.1.4;Form XML Template (XML);908
26.1.2;InfoPath Form Data;908
26.2;Designing Browser-Enabled Form Templates;909
26.2.1;Defining the Data Structure;910
26.2.2;Designing the Form Templates;911
26.2.3;Adding Rules and Validation;912
26.2.4;Accessing External Data;914
26.2.5;Forms Security;918
26.2.6;Enabling Browser Support;920
26.2.6.1;Setting Form Compatibility;920
26.2.6.2;Configuring Interface Options for InfoPath Forms Services;922
26.2.6.3;Configuring Submit Options;923
26.3;Deploying InfoPath Forms to SharePoint;924
26.3.1;Using InfoPath Forms in SharePoint;925
26.3.2;Publishing and Deploying Using the InfoPath Wizard;926
26.3.2.1;Publishing Form Templates to Document Libraries;927
26.3.2.2;Publishing Form Templates as a Separate Content Type;927
26.3.2.3;Publishing Form Templates as Administrator-Approved Templates;928
26.3.2.4;Publishing Form Templates to a Network Location;929
26.3.3;Embedding Forms into SharePoint Features;930
26.3.4;Deploying Forms Using Command-Line Utilities;932
26.3.4.1;stsadm.exe;932
26.3.4.2;PowerShell Cmdlets;933
26.3.5;Deploying Forms with Code;934
26.4;Programming InfoPath Forms;935
26.4.1;Attaching Managed Code;935
26.4.2;InfoPath Object Model;937
26.4.2.1;Events;938
26.4.2.2;Accessing the Form Data;940
26.4.2.3;Maintaining State in Browser-Based Forms;942
26.4.2.4;Accessing Views;942
26.4.2.5;Handling Errors;943
26.5;InfoPath Forms Services;943
26.5.1;Preparing InfoPath Forms Services Support;943
26.5.1.1;State Service;944
26.5.1.2;Configuring InfoPath Forms Services;944
26.5.2;Configuring Libraries;946
26.5.3;Managing Form Templates;947
26.5.4;Displaying Forms in the InfoPath Form Web Part;947
26.5.5;Customizing the Browser View Using XmlFormView;949
26.5.5.1;Integrating XmlFormView in an Application Page;949
26.5.5.2;Accessing the XmlForm Object;951
26.5.6;Integrating InfoPath Forms with the Environment;953
26.5.6.1;Property Promotion and Demotion of XML Documents;953
26.5.6.2;Web Part Connection Parameters;956
26.5.6.3;Passing Parameters from SharePoint to InfoPath Forms;956
26.6;Summary;959
27;CHAPTER 16 Workflows;960
27.1;Workflows in SharePoint;960
27.1.1;SharePoint Workflow Basics;961
27.1.1.1;Workflow Building Blocks;961
27.1.1.2;Workflow Architecture;962
27.1.1.3;SharePoint Workflow Life Cycle;966
27.1.2;Using Workflows in SharePoint;968
27.1.2.1;SharePoint Out-Of-the-Box Workflows;968
27.1.2.2;Associate Workflows with SharePoint Items;969
27.1.2.3;Starting Workflows;972
27.1.2.4;Managing and Monitoring Running Workflows;973
27.1.2.5;User Interaction Using Tasks;976
27.1.3;Tools for Workflow Development;977
27.1.3.1;Visio 2010: Process Design;978
27.1.3.2;SharePoint Designer 2010: Declarative Workflow;979
27.1.3.3;Visual Studio 2010: Custom Workflows;984
27.1.3.4;Tool Comparison;986
27.2;Workflows with SharePoint Designer;987
27.2.1;Creating Workflows with SharePoint Designer;988
27.2.1.1;Declaring a Workflow using Actions and Conditions;988
27.2.1.2;Actions and Conditions;991
27.2.1.3;Working with Steps and Branches;996
27.2.1.4;Working with Tasks;996
27.2.1.5;Source Files of SharePoint Designer Workflows;998
27.2.2;Developing Custom Activities for SharePoint Designer;999
27.2.2.1;Setting Up the Visual Studio Solution;999
27.2.2.2;Implementing the Activity Class;1002
27.2.2.3;Describing a SharePoint Designer Action in the .ACTIONS File;1006
27.2.2.4;Applying Settings to the Configuration;1010
27.3;Custom Workflows with Visual Studio;1010
27.3.1;Understanding Workflow Foundation;1011
27.3.1.1;WF Activities and Their Facets;1011
27.3.1.2;Dependency Properties and Activity Binding;1015
27.3.1.3;Correlation Tokens;1017
27.3.2;SharePoint Workflow Object Model;1017
27.3.2.1;SPWorkflow;1020
27.3.2.2;SPWorkflowTemplate;1020
27.3.2.3;SPWorkflowAssociation;1020
27.3.2.4;SPWorkflowManager;1022
27.3.2.5;SPWorkflowTask;1022
27.3.2.6;SPWorkflowModification;1022
27.3.2.7;SPWorkflowEventReceiver;1023
27.3.2.8;SPItemKey;1023
27.3.3;Developing Workflows with Visual Studio 2010;1023
27.3.3.1;Modeling the Workflow;1024
27.3.3.2;Developing the Workflow;1024
27.3.3.3;Deploying Workflows;1033
27.3.3.4;Using ASPX Workflow Forms;1035
27.3.3.5;Integrate InfoPath Forms with Workflows;1043
27.4;Summary;1046
28;CHAPTER 17 Administrative Tasks;1047
28.1;Introduction;1047
28.1.1;Why Automate Tasks?;1048
28.2;Creating Objects;1049
28.2.1;Creating a Web Application;1049
28.2.2;Creating a Site Collection;1051
28.2.3;Creating a Web;1053
28.3;Working with Site Configurations;1055
28.3.1;Working with Site Properties;1055
28.3.2;Maintaining Settings in web.config Programmatically;1057
28.3.3;Setting Up the Configuration;1058
28.3.4;Accessing the Current Settings;1060
28.4;Working with Features;1061
28.5;Working with Site Information;1066
28.6;Retrieving the Configuration Database;1067
28.7;Summary;1068
29;CHAPTER 18 Enterprise Features;1069
29.1;Enterprise Search;1069
29.1.1;Search Products;1069
29.1.2;Preparing Index and Query Services;1070
29.1.3;Query Results from the Index;1071
29.2;User Profiles and My Sites;1074
29.2.1;Using User Profiles;1075
29.2.2;Work Within the Context of My Sites;1077
29.2.3;Personalize a User’s Settings;1077
29.3;Web Content Management;1078
29.3.1;Working with SPPublishingWeb Class;1079
29.3.2;Content Deployment;1080
29.3.3;What’s New in SharePoint 2010 Web Content Management;1082
29.3.3.1;Page Authoring Experience;1083
29.3.3.2;Rich Media Integration;1083
29.3.3.3;Content Query Web Part;1084
29.3.3.4;Web Analytics;1084
29.4;Advanced Document Management and Metadata;1084
29.4.1;Document Management;1084
29.4.1.1;Working with Metadata Navigation;1085
29.4.1.2;Working with Metadata Taxonomies;1086
29.4.2;Check In and Check Out;1088
29.4.3;Versioning;1089
29.5;Records Management;1090
29.5.1;Moving Documents to the Records Center Using the API;1091
29.5.2;Maintain Retention Policies;1092
29.6;Summary;1094
30;Index;1095



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.