You are previewing Inside Microsoft® SharePoint® 2010.
O'Reilly logo
Inside Microsoft® SharePoint® 2010

Book Description

Build custom SharePoint 2010 solutions with deep architectural insights from the experts.

Get a detailed look inside SharePoint 2010—and master the intricacies of developing intranets, extranets, and Web-based applications. Guided by an author team with in-depth knowledge of SharePoint architecture, you'll gain task-oriented guidance and extensive code samples to help you build robust business solutions.

Discover how to:

  • Master fundamental development techniques for SharePoint Foundation

  • Deploy your SharePoint application as a sandboxed solution for more stable and security-enhanced code

  • Create page templates, master pages, Web Parts, custom controls, and event handlers

  • Develop custom field types, site columns, content types, and list definitions

  • Query SharePoint lists with the LINQ-to-SharePoint provider

  • Use the Client Object Model in JavaScript and Microsoft Silverlight applications

  • Customize the Enterprise Content Management (ECM) capabilities in SharePoint 2010

  • Configure and extend Business Connectivity Services (BCS) and Enterprise Search

  • Table of Contents

    1. Inside Microsoft® SharePoint® 2010
    2. Dedication
    3. A Note Regarding Supplemental Files
    4. Foreword
    5. Acknowledgments
    6. Introduction
      1. Who This Book Is For
      2. System Requirements
      3. Code Samples
      4. Support for This Book
      5. Questions and Comments
    7. 1. SharePoint 2010 Developer Roadmap
      1. SharePoint Foundation
        1. SharePoint Foundation Architecture
        2. SharePoint Farms
          1. SharePoint 2010 Central Administration
        3. Web Applications
        4. Service Applications
        5. SharePoint Server 2010
        6. Sites
          1. Site Collections
        7. Customizing Sites
          1. Creating and Customizing Pages
          2. Creating and Customizing Lists
        8. SharePoint Designer 2010
        9. Site Customization vs. SharePoint Development
      2. Windows PowerShell Boot Camp for SharePoint Professionals
        1. Learn Windows PowerShell in 21 Minutes
          1. Writing Windows PowerShell Scripts
        2. The Windows PowerShell Integrated Scripting Environment (ISE)
        3. The SharePoint PowerShell Snap-in
      3. Conclusion
    8. 2. Sharepoint Foundation Development
      1. The Server-Side Object Model
        1. Creating the Hello World Console Application
        2. Enabling the SharePoint Developer Dashboard
      2. Developing SharePoint Solutions
        1. Developing a SharePoint Solution Using a Class Library Project
        2. The SharePoint Root Directory
        3. Creating a Feature Definition
          1. Creating the Feature.xml File
          2. Element Manifests
          3. Adding a Feature Receiver
        4. Creating a Solution Package
          1. The Manifest.xml File
          2. Activation Dependencies
          3. Generating the Solution Package File
          4. Using Windows PowerShell Scripts to Automate Tasks in Visual Studio
          5. Installing and Deploying a Solution Package
          6. Retracting and Removing a Solution
          7. Updating a Solution
        5. Feature Upgrade Enhancements in SharePoint 2010
          1. Updating a Feature Definition with Upgrade Actions
          2. Adding Code Behind Custom Upgrade Actions
          3. Upgrading Feature Instances
      3. Conclusion
    9. 3. SharePoint Developer Tools in Microsoft Visual Studio 2010
      1. Life Before SharePoint Developer Tools
      2. Getting Started with the SharePoint Developer Tools
        1. Using SharePoint Explorer
          1. Creating a SharePoint Project
          2. Creating a Feature
        2. Adding a Feature Receiver
      3. Adding a SharePoint Project Item
      4. Deployment and Testing
      5. Working with Mapped Folders
      6. Conclusion
    10. 4. Sandboxed Solutions
      1. Understanding the Sandbox
        1. Building a Basic Sandboxed Solution
        2. Understanding the Architecture
      2. Understanding Solution Restrictions
        1. Designing a Sandboxed Solution
      3. Understanding Full-Trust Proxies
      4. Administrating Sandboxed Solutions
        1. Using Central Administration Tools
        2. Validating Sandboxed Solutions
        3. Using Windows PowerShell for Administration
        4. Using Site Collection Tools
      5. Conclusion
    11. 5. Pages and Navigation
      1. SharePoint Foundation Integration with ASP.NET
      2. ASP.NET Fundamentals
      3. SharePoint Web Applications
      4. Web Application Configuration Files
        1. Debugging SharePoint Projects
          1. Debugging SharePoint Projects
      5. The Virtual File System of a Site
      6. Page Templates and Ghosting
      7. Application Pages
        1. Differentiating Between Site Pages and Application Pages
          1. Differentiating Between Site Pages and Application Pages
      8. Master Pages
        1. Understanding v4.master
          1. Understanding v4.master
          2. Creating a Site Page That Links to a Master Page
          3. Creating an Application Page That Links to the Master Page
      9. Creating Site Page Templates
      10. Creating Pages in Sandboxed Solutions
      11. The Module SharePoint Project Item Type
        1. Editing the elements.xml File Manually
          1. Editing the elements.xml File Manually
      12. The SandboxedSolutionPages Sample Project
      13. Creating Web Part Pages
      14. Creating Output References to Integrate Silverlight Applications
      15. Creating Pages in Farm Solutions
      16. Navigation Support for Application Pages
      17. Custom Breadcrumb Navigation Using a Site Map
      18. Creating a Reusable Branding Solution
      19. Deploying a Custom Master Page
      20. Deploying CSS Files and Images to the Style Library
        1. Adding a Feature Receiver to Apply Branding Attributes
          1. Adding a Feature Receiver to Apply Branding Attributes
          2. Adding an Event Receiver to Brand Child Sites
      21. Conclusion
    12. 6. Controls and Web Parts
      1. Developing with Controls
        1. The WingtipControls Sample Project
        2. Safe Mode Processing and Safe Controls
        3. Using a Custom Control to Create a Menu
        4. User Controls
          1. Creating New User Controls in a SharePoint Solution
          2. Adding User Controls to Pages
        5. Delegate Controls
          1. Creating a Delegate Control with a User Control
          2. Creating a Delegate Control with a Custom Control
      2. Developing Web Parts
        1. Web Part Fundamentals
          1. The WingtipWebParts Sample Project
          2. The Role of the Web Part Manager
          3. SharePoint 2003 Web Parts
          4. The Web Part Gallery
          5. Deleting Web Part Template Files at Feature Deactivation
          6. Programming with the SPLimitedWebPartManager Class
        2. Web Part Output Rendering
          1. Creating Visual Web Parts
          2. Rendering Output Using an XSLT Transform
        3. Persistent Properties
        4. Custom Editor Parts
        5. Web Part Verbs
        6. Web Parts Connections
          1. Connected Web Parts Using the SPLimitedWebPartManager Class
        7. Asynchronous Processing
          1. Understanding Asynchronous Tasks
          2. Creating and Registering Asynchronous Tasks
          3. The AsynchRssReader Web Part
        8. Conclusion
    13. 7. Lists and Events
      1. Creating Lists
        1. Fields and Field Types
          1. Lookup Fields and List Relationships
        2. Views
        3. Site Columns
        4. Content Types
          1. Programming with Content Types
          2. Creating Custom Content Types
      2. Working with Document Libraries
        1. Creating a Document Library
        2. Adding a Custom Document Template
        3. Creating Document-Based Content Types
        4. Programming with Documents
        5. Creating Documents with Code
      3. Creating and Registering Event Handlers
        1. Event Receiver Classes
        2. Registering Event Handlers
          1. Creating an Event Receiver Project Item
          2. Programmatic Event Registration
        3. Programming Before Events
          1. Validating Field Values
        4. Programming After Events
      4. Conclusion
    14. 8. Templates and Type Definitions
      1. Field Type Definitions
        1. Creating Custom Field Types
          1. Creating the Class for a Custom Field Type
          2. Validating User Input Values
          3. Deploying a Custom Field Type
        2. Creating a Custom Field Control
          1. Custom Field Types with Multicolumn Values
          2. Custom Field Types with Custom Properties
      2. List Definitions
        1. Creating Site Column Definitions
        2. Creating Content Type Definitions
          1. Additional Content Type Metadata
        3. Creating List Definitions
        4. Feature Activation Dependencies
      3. Site Definitions
        1. Configurations and Web Templates
        2. ONET.XML: The Site Definition Manifest
        3. The Global Site Definition
        4. Creating and Initializing Sites
          1. Feature Stapling
        5. Creating a Site Provisioning Provider
      4. Conclusion
    15. 9. Accessing Data in Lists
      1. Using the Basic List Object Model
      2. Querying Lists with CAML
        1. Querying Joined Lists
        2. Querying Multiple Lists
        3. Throttling Queries
      3. Introducing LINQ
        1. LINQ Overview
        2. Understanding LINQ Language Elements
          1. Understanding Generic Collections
          2. Understanding Extension Methods
          3. Understanding Lambda Expressions
          4. Understanding Projections
      4. Working with LINQ to SharePoint
        1. Generating Entities with SPMetal
          1. Understanding the DataContext Class
          2. Using Parameters.xml to Control Code Generation
        2. Querying with LINQ to SharePoint
        3. Adding, Deleting, and Updating with LINQ to SharePoint
      5. Working with Document Libraries
        1. Using the Basic Library Object Model
        2. Working with Open XML
          1. Understanding Document Packages
          2. Using the Open XML SDK 2.0
      6. Conclusion
    16. 10. Client-Side Programming
      1. Understanding Client Object Model Fundamentals
        1. Understanding Contexts
        2. Loading and Executing Operations
      2. Working with the Managed Client Object Model
        1. Handling Errors
        2. Understanding Authentication and Authorization
        3. Creating, Updating, and Deleting
        4. Working Asynchronously
      3. Working with the Silverlight Client Object Model
        1. Introducing Silverlight Development
        2. Asynchronous Programming with Silverlight
        3. Error Handling in Silverlight
        4. Passing Parameters to Silverlight
        5. Creating a Custom Silverlight Host
      4. Working with the JavaScript Client Object Model
        1. Setting Up a Basic Page
        2. Handling Errors in the JavaScript Client Object Model
        3. Running Code on Page Load
        4. Debugging JavaScript
        5. Working with AJAX
        6. Using Object-Oriented JavaScript
        7. Working with jQuery
      5. Working with WCF Data Services
        1. Getting Started with WCF Data Services
        2. Using WCF Data Services in Visual Studio
      6. Conclusion
    17. 11. Creating and Developing Workflows
      1. What Is Workflow?
        1. SharePoint Workflow Fundamentals
          1. Tasks
          2. Lists/Libraries and Content Types
          3. Document Sets
          4. Sites
          5. SharePoint Designer
          6. Visual Studio 2010
          7. Visio 2010
          8. Windows Workflow Foundation
        2. The User Experience in a SharePoint Workflow
      2. Creating Custom Workflows
        1. SharePoint Designer 2010
        2. Getting Started
          1. Workflow Types
            1. Reusable Workflows
            2. Site Workflows
            3. List Workflows
          2. Steps
            1. Impersonation Step
          3. Actions
          4. Conditions
          5. Save a Workflow
          6. Publish a Workflow
          7. Association Columns
          8. Visio
          9. Avoiding Rube Goldberg Emulation
          10. A Poor Man’s Event Receiver
        3. Creating a Workflow with Visio and SharePoint Designer
          1. Deploying an SPD Workflow
          2. SPD Workflow Summary and Recommendation
      3. Developing Custom Workflow Components
        1. Developing Custom Actions
          1. Developing Sandboxed Actions
          2. Developing Full-Trust Workflow Actions
        2. Developing Custom Workflow Templates
          1. A Quick Primer on WF Development
          2. Creating a New Workflow Template in a SharePoint Project
          3. Deploying a Workflow Template to a Production Environment
          4. Creating and Waiting on Tasks
          5. Understanding Workflow Input Forms
          6. Creating Workflow Input Forms
      4. Conclusion
    18. 12. SharePoint Security
      1. Authentication, Authorization, and Identities
        1. User Information List
        2. Users and Groups
        3. Application Pool Identities
        4. SHAREPOINT\SYSTEM Account
          1. Escalation of Privilege
        5. Delegating User Credentials
      2. User Impersonation with the User Token
        1. Securing Objects with SharePoint
        2. Rights and Permission Levels
        3. Handling Authorization Failures with SPUtility
      3. Claims-Based Security
        1. Claims Architecture
        2. User Claims
        3. Custom Claims Providers
      4. Conclusion
    19. 13. Business Connectivity Services
      1. Introducing Business Connectivity Services
      2. Creating Simple BCS Solutions
        1. Creating External Content Types
        2. Creating External Lists
      3. Understanding External List Limitations
      4. Understanding BCS Architecture
        1. Understanding Connectors
        2. Understanding Business Data Connectivity
        3. Managing the BDC Service
        4. Understanding the BDC Server Runtime
        5. Understanding the Client Cache
        6. Understanding the BDC Client Runtime
        7. Introducing the Secure Store Service
        8. Understanding Package Deployment
      5. Understanding Authentication Scenarios
        1. Configuring Authentication Models
          1. Understanding Passthrough Authentication
          2. Understanding RevertToSelf
          3. Understanding Secure Store Options
        2. Accessing Claims-Based Systems
        3. Accessing Token-Based Systems
      6. Managing Client Authentication
      7. Creating External Content Types
        1. Creating Operations
        2. Creating Relationships
        3. Defining Filters
      8. Using ECTs in SharePoint 2010
        1. Creating Custom Forms
        2. Using External Data Columns
        3. External Data Web Parts
        4. Creating a Profile Page
        5. Searching External Systems
        6. Supplementing User Profiles
      9. Using ECTs in Office 2010
        1. Using the SharePoint Workspace
        2. Understanding Outlook Integration
        3. Using Word Quick Parts
      10. Creating Custom BCS Solutions
        1. Using the BDC Runtime Object Models
        2. Using the Administration Object Model
      11. Creating .NET Assembly Connectors
      12. Conclusion
    20. 14. Enterprise Content Management
      1. ECM in SharePoint Server 2010
        1. “Featurization” of ECM Capabilities for Wide Use
        2. ECM Site Templates
      2. Document Management
        1. Large Lists
        2. Check-in/Checkout
        3. Document Sets
          1. Creating Document Sets Declaratively
        4. Document IDs
          1. Creating Custom Document ID Providers
      3. Records Management
        1. Declaring Records
        2. Content Organizer
      4. Web Content Management
        1. Page Rendering Process
        2. Creating New Page Types
        3. Content Aggregation with the Content Query Web Part
          1. Creating Custom CQWP Styles
      5. Managed Metadata
        1. Term Sets
          1. Creating Term Sets Programmatically
          2. Creating Managed Metadata Columns
          3. Finding Terms and Writing to Metadata Columns
          4. Extending LINQ Entity Models to Support Managed Metadata Columns
        2. Enterprise Content Types
      6. Conclusion
    21. 15. SharePoint Search
      1. Introducing Search-Based Applications
      2. Understanding Search Architecture
        1. Understanding the Search Service Application
        2. Understanding the Indexing Process
        3. Understanding the Query Process
        4. Introducing Search Web Parts
        5. Introducing the Search Object Models
      3. Creating Ranking Models
        1. Creating a Custom Ranking Model
          1. Working with Managed Property Identifiers
          2. Determining Weight Values
          3. Understanding Length Normalization
          4. Introducing Transforms
        2. Using a Custom Ranking Model
      4. Customizing Search Centers
        1. Adding New Tabs
        2. Customizing Search Core Results
          1. Working with Displayed Results
          2. Working with the Query Pipeline
      5. Working with Keyword Query Syntax
      6. Working with SQL Full-Text Search
      7. Creating .NET Assembly Connectors for Search
        1. Search-Enabling a Model
        2. Implementing Security in Search Results
        3. Crawling the .NET Assembly Connector
      8. Conclusion
    22. Index
    23. About the Authors
    24. Copyright