Setting Up the Development Environment for SharePoint 2010 on Windows Vista, Windows 7, and Windows Server 2008

SharePoint 2010

Published: May 2010

When you create or customize SharePoint solutions, it is usually best to develop the solution on a local computer where Microsoft SharePoint Server 2010 or Microsoft SharePoint Foundation 2010 is installed. This article describes how to install a development environment with Microsoft SharePoint 2010 and Microsoft Visual Studio 2010. The development environment that you create by using these instructions will not support SharePoint farm installations, and you should not host active production sites with this configuration. These instructions enable you to get started with an environment that is specifically suited to developing SharePoint custom solutions.

For a Windows PowerShell script that installs and configures all of the prerequisites and products that you will need to get started with SharePoint Server 2010 development, see SharePoint 2010 Easy Setup Script.

The requirements for a development environment are less stringent and costly than the requirements for a production environment, and the guidelines in this topic do not support a production environment installation. You have several options for preconfiguring the operating system of a local computer on which you will install SharePoint 2010 for development purposes. The choice that you make will be determined by factors specific to your organization and environment (such as budget, the size of your development team, and the operating systems that you and your organization are already using).

In any development environment, you should use a computer with an x64-capable CPU, and at least 2 gigabytes (GB) of RAM to install and run SharePoint Foundation; 4 GB of RAM is preferable. You should use a computer with 4 GB of RAM to install and run SharePoint Server; 6 GB to 8 GB of RAM is preferable.

Following are the options:

  • Install SharePoint on Windows Server 2008 Service Pack 2 x64 (or Windows Server 2008 R2 x64).
  • Use Microsoft Hyper-V and install SharePoint on a virtual machine running a Windows Server 2008 Service Pack 2 x64 (or Windows Server 2008 R2 x64) guest operating system.
  • Install SharePoint on Windows 7 x64, Windows Vista Service Pack 1 x64, or Windows Vista Service Pack 2 x64.
  • Use Microsoft Hyper-V and install SharePoint on a virtual machine running a Windows 7 x64, Windows Vista Service Pack 1 x64, or Windows Vista Service Pack 2 x64 guest operating system.

You must install the WCF Hotfix for Microsoft Windows. The hotfix is available for Windows Server 2008 Service Pack 2, Windows Vista Service Pack 1, and Windows Vista Service Pack 2 and for Windows Server 2008 R2 and Windows 7.

If you are using Windows Vista Service Pack 1 or Windows Vista Service Pack 2, install the hotfix for ASP.NET on IIS 7.0 (KB967535). This hotfix, which has already been installed on Windows 7, Windows Server 2008 Service Pack 2, and Windows Server 2008 R2, updates the ASP.NET common language runtime (CLR) to recognize a new option of optimizing compilations. To take advantage of this option, set the optimizeCompilations property of the <compilation> tag in your web.config file to true:

<compilation optimizeCompilations="true">

This change significantly improves the initial page load time after you have installed a solution to the bin directory.

You must install the ADO.NET Data Services Update for .NET Framework 3.5 SP1 to enable REST-based data services. This update is available for Windows Server 2008 Service Pack 2, Windows Vista Service Pack 1, and Windows Vista Service Pack 2 and for Windows Server 2008 R2 and Windows 7.

Windows 7 and Windows Vista cannot be used for production deployments of SharePoint 2010. If you use Windows 7 or Windows Vista for your development environment, you should have access to a test environment that has the same operating system installed as your production environment. Windows 7 and Windows Vista are recommended only for developer workstations and should be used only for stand-alone installations. You can use a separate Microsoft SQL Server instance, but you should not configure your installation as a SharePoint farm and you should not host active sites on this configuration.

SharePoint requires your operating system to have certain prerequisites installed before installation begins. For this reason, SharePoint includes a PrerequisiteInstalle.exe tool that installs all of these prerequisites for you. If your developer workstation is set up with the Windows Server 2008 Service Pack 2 or Windows Server 2008 R2 operating system, you can install SharePoint 2010 by running the PrerequisiteInstaller.exe tool (which is included with SharePoint 2010) to install the prerequisites that SharePoint needs, and then run Setup.exe. However, you cannot use PrerequisiteInstaller.exe on Windows 7 or Windows Vista. For those operating systems, you must follow the additional instructions in this section.

Because the default installation works only for Windows Server 2008, you must edit one configuration file and install many of the prerequisites manually. You must perform each of the following steps while logged on with an account that has administrator access on the local computer. These steps assume that you received the SharePoint 2010 distribution as a single compressed executable file named SharePointFoundation.exe for SharePoint Foundation 2010 and setup.exe for SharePoint Server 2010.

To set up a developer workstation

  1. Copy the SharePointFoundation.exe (or setup.exe) installation file to a folder on the computer where you are installing SharePoint and doing your development, such as in the following path:c:\SharePointFiles
  2. Extract the installation files by opening a Command Prompt window, and then typing the following command at the directory location of the folder where you copied the installation files in the previous step.For SharePoint Foundation 2010:

    c:\SharePointFiles\SharePoint /extract:c:\SharePointFiles

    For SharePoint Server 2010:

    c:\SharePointFiles\OfficeServer /extract:c:\SharePointFiles

  3. Using a text editor such as Notepad, open the installation configuration file, config.xml, located in the following path: c:\SharePointFiles\files\Setup\config.xmlAdd this line inside the <configuration> tag:

    <Setting Id="AllowWindowsClientInstall" Value="True"/>
  4. Save the configuration file.
  5. Review the complete configuration file. It now looks similar to the following for SharePoint Foundation 2010. The complete configuration file will be longer for SharePoint Server 2010 (and therefore the text below cannot replace the contents of that file), but should use the same setting for the AllowWindowsClientInstall attribute.

      <Package Id="sts">
        <Setting Id="SETUPTYPE" Value="CLEAN_INSTALL" />
      <DATADIR Value="%CommonProgramFiles%\Microsoft Shared\Web Server
       Extensions\14\Data" />
      <Logging Type="verbose" Path="%temp%" Template="Microsoft Windows
       SharePoint Services 4.0 Setup *.log" />
      <PIDKEY Value="PIDKey Value" />
      <Setting Id="UsingUIInstallMode" Value="1" />
      <Setting Id="SETUP_REBOOT" Value="Never" />
      <Setting Id="AllowWindowsClientInstall" Value="True"/>

    All of the text in this configuration file is case-sensitive. If you do not edit the configuration file as described in the previous step or if you do not save the configuration file, when you try to run the installation you see the error message shown in Figure 1.

    Figure 1. Setup is unable to proceed error message

    Setup is unable to proceed

  6. If you are using Windows Vista Service Pack 1 or Windows Vista Service Pack 2, you must install the following prerequisites:
  7. If you are using Windows Vista Service Pack 1, Windows Vista Service Pack 2, or Windows 7, install the following additional prerequisites:
  8. Manually enable each of the required Windows Features. You can do this quickly by copying and running the following command in a Command Prompt window.
    Caution note Caution
    The following text contains line breaks.

    start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;^
  9. Verify that the required Windows Features are enabled. The command in the previous step enables all of the required features in the Internet Information Services section of the Windows Features dialog box (which you can access through the Programs section in Control Panel). Use Figure 2 and Figure 3 to check that you have enabled all of the required Windows Features. If any features are missing in your operating system, return to the Internet Information Services section of the Windows Features dialog box and enable them.
    Note Note
    The following figures represent one Windows Features dialog box on a computer running the Windows 7 operating system. They have been broken into two figures for the sake of readability. The list of Windows Features will look the same on Windows Vista.
    Figure 2. First part of Windows Features list from Windows 7

    First part of Windows Features list 

    Figure 3. Second part of Windows Features list from Windows 7

    Second part of Windows Features list

  10. Restart your computer to complete the changes that you made to Windows Features.
  1. To install SharePoint Server 2010 or SharePoint Foundation 2010, open a Command Prompt window, and then type the following at the command prompt:

  2. Accept the Microsoft Software License Terms.
  3. On the Choose the installation you want page, click Standalone to install everything on one developer workstation.
    Figure 4. Installation type choice

    Installation type choice

  4. If any errors occur in the installation, review the log file. To find the log file, open a Command Prompt window, and then type the following commands at the command prompt. The log file is displayed at the end of the directory listing.

    cd %temp%
    dir /od *.log
    Tip Tip
    A link to the log file also appears when the installation is complete.
  5. After the installation is complete, you are prompted to start the SharePoint Products and Technologies Configuration Wizard. If you are using a local instance of Microsoft SQL Server 2008, install the Microsoft SQL Server 2008 KB 970315 x64 before starting the wizard. If your development environment uses a remote instance of Microsoft SQL Server 2008 or if it has a pre-existing installation of Microsoft SQL Server 2008 on which KB 970315 x64 has already been applied, this step is not necessary. With the wizard open, do the following:
    1. Install SQL Server 2008 KB 970315 x64.
    2. After the Microsoft SQL Server 2008 KB 970315 x64 installation is finished, complete the wizard.
  6. Alternatively, you can choose not to run the wizard by clearing the SharePoint Products and Technologies Configuration Wizard check box and closing the completed installation dialog box. Install SQL Server 2008 KB 970315 x64, and then manually start the SharePoint Products and Technologies Configuration Wizard by opening a Command Prompt window and executing the following command:

    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\psconfigui.exe
Caution note Caution
The SharePoint Products and Technologies Configuration Wizard may fail if you are using a computer that is joined to a domain but that is not connected to a domain controller. If you see this failure, connect to a domain controller either directly or through a Virtual Private Network (VPN) connection, or sign in with a local account that has administrative privileges on the computer.

After the configuration wizard is complete, you see the new SharePoint site.

Figure 5. New SharePoint site

New SharePoint site

After you set up a working development environment on a physical host computer, you can store your setup as a virtual computer, so that others can use it, or so that you can reuse this “clean” installation at a later date. Alternatively, you can set up a development environment on a newly created virtual machine. The Hyper-V role in Windows Server 2008 Service Pack 2 provides infrastructure and management tools that enable you to create multiple server environments on a single host. For more information, see Getting to Know Hyper-V: A Walkthrough From Initial Setup to Common Scenarios. For a useful Windows PowerShell script that enables you to create a virtual hard drive (VHD) out of an existing Windows Server 2008 image, see Install-WindowsImage PowerShell Script on MSDN Code Gallery.

If you are using Windows 7, you can also create a VHD on which SharePoint is installed in Windows Hyper-V, and then configure Windows 7 with BDCEdit.exe so that it boots directly to the operating system on the VHD. This improves performance because the virtualization layer is not present. It also enables you to use VHD differencing disks (VHDs that contain only elements that differ from a single base installation), which save disk space and make it easier to roll back changes. See Deploy Windows on a Virtual Hard Disk with Native Boot to learn more about this kind of configuration.

If you choose to create a single server installation on a virtual computer, the standard memory requirements still apply. Your virtual computer requires at least 2 GB (preferably 4 GB) of RAM. Virtualization also gives you the opportunity to create a server farm that includes more than one machine. In a farm installation of SharePoint Server 2010, each machine requires at least 1.5 GB (preferably 2 GB) of RAM. You could run a fully functional domain infrastructure on a setup installation such as the following example installation:

  • Two virtual computers, each with 2 GB of RAM
  • Domain controller and Microsoft SQL Server 2008 running on one computer
  • SharePoint Server 2010 and two Web applications (including Central Administration) running on another computer



SharePoint Server 2010 Development VM for VirtualBox or VMWare



  • Your workstation must be running a 64bit processor with Hardware Virtualization enabled
  • You must have enough memory, disk space, and processor power to run the VM and hold all snapshots
  • You must have access to and appropriate licensing for (ex: MSDN Subscription) above products
  • You must have time (about 8 hours) to install everything.  
    • Hints:
      • Look for “Wait” for good break points
      • Snapshots can be used to create other virtual machines or to test minimally installed environments

How To

  • Download the Software Listed Above
  • Install VirtualBox and the Extension Pack or VMWare
  • Create a new virtual machine named “sps2010” for Windows 2008 (64bit)
    • 4096 GB RAM
    • 40.45GB dynamically expanding boot hard disk
    • Mount the Windows Server 2008 R2 ISO
    • Enable RDP support
  • Start the sps2010 virtual machine
  • The Windows Server 2008 R2 installer should begin
    • Select Windows Server 2008 R2 Standard (Full Installation)
    • Select New Installation
  • Set a new administrator password
    • pass@word1
  • Install VirtualBox Guest Additions or VMWare Tools
    • Auto Reboot
  • Authenticate Windows
  • Rename the server to sps2010
    • Note: If you forget this step, you will have a randomly named server.
      I have included instructions for aliasing and configuring a randomly named server.
  • Shut down and take a Snapshot named “Windows Install”
  • Enable Remote Desktop for all versions
  • Add Roles
    • Active Directory Domain Service
    • You will get a Windows Update is not enabled warning.
    • Select “Close this wizard and launch the Active Directory Domain Services Installation Wizard”
    • Ignore the “Operating System Compatibility” warning
    • Select “Create a new domain in a new forest”
    • FQDN: sp.local
    • Forest functional level: Windows Server 2008 R2
    • Ignore DHCP warning
    • Ignore DNS warning, click Yes
    • Use same password as admin user above
    • Reboot on completion
  • Add Roles
    • Server Roles
      • Application Server
      • Web Server (IIS)
    • Application Server / Role Services
      • Web Server (IIS) Support
    • Web Server (IIS) / Role Services
      • Leave Default Selections
    • Install
  • Windows Update: Turn on auto updates
    • Install Updates and Long Wait
    • Reboot when prompted
  • Open Active Directory Administrative Center
    • Create a user
      • Full Name: User
      • User SamAccount: sp\user
      • pass: same as admin above
      • Password Options: Password never expires
  • Stop and Disable the following Services
    • DFS Namespace
    • DFS Replication
  • Shut down, snapshot “DC and IIS”, and start virtual machine
  • Mount the SQL Server Iso from the Virtual Box Devices menu
  • Open Active Directory Administrative Center
    • Create a user
      • Full Name: spservice
      • User SamAccount: sp\spservice
      • pass: same as admin above
      • Password Options: Password never expires
  • Start SQL Server Setup
    • Installation
    • New Install
    • Continue
    • Ignore DC and Firewall warnings
    • All Features with Defaults
    • Continue
    • Server Configuration / Service Accounts
      • Use the same account for all SQL Server services
        • specify the sp\spservice account and password created above
    • Continue
    • Analysis Services Configuration
      • Account Provisioning
        • Add Current User
    • Reporting Services Configuration
      • Install the SharePoint integrated mode default configuration
    • Continue then Wait
  • Shut down, snapshot “SQL Server”, and start virtual machine
  • Open SQL Server Configuration Manager
    • SQL Server Network Configuration
      • Protocols for MSSQLSERVER
        • Enable Named Pipes
  • If your server is randomly named – not sps2010
    • DNS Manager
      • Forward Lookup Zones
        • sp.local
          • Add a new alias
            • Name: sps2010
            • FQDN: Browse to splocal\servername
              • servername will be a randomly generated value
  • Mount the SharePoint Server 2010 iso
  • Start the Prerequisites installer
  • Start the SharePoint Install
    • Enter your Enterprise license key
    • Wait
    • Run the Configuration Wizard
    • Create a new server farm
    • Configuration Database
      • Server: sps2010
      • Name: SharePoint_Config
      • Username: sp\spservice
      • Password: same as above
    • Farm Security Settings
      • Passphrase: same as admin password above
    • Central Admin Web App
      • Port: 8000
      • Auth: NTLM
    • Short Wait
  • IE will open to the central administration website.
    • Login as administrator
    • Move the central admin site from the Trusted Sites zone to the Local Intranet Zone
  • Shut down, snapshot “Base SharePoint”, and restart
  • Configure Alternate Access Mappings
  • Run the Farm Configuration Wizard from Central Administration
    • Use existing managed account
    • All items should be checked except for Lotus Notes
    • Create Root Site Collection
      • New Web Application
        • Name: sps2010
        • Port: 80
        • Path: change “80” to “sps2010”
        • URL: http://sps2010
        • Create a new app pool
          • Name: SharePoint – sps2010
          • Configurable: sp\spservice
        • Database server: sps2010
        • Database name: sps2010_Content
        • CEIP: No
      • Title: Sps2010
      • Template: Publishing \ Publishing Portal
      • Primary admin: sp\administrator
  • Set the browser home page to http://sps2010
  • Configure Search from Central Admin
    • Central Admin \ Manage service applications \ Search Service Application (first one)
      • Content Sources
        • Local SharePoint Sites
          • Schedule incremental every 5 minutes and start a full crawl
  • Open http://sps2010 in IE
    • Add sp\administrator to the Approvers and Members groups
    • Validate that the following work
      • Approval process
      • Both search scopes
      • My Site
      • Profile
  • Shut down, snapshot “SharePoint Configured”, and restart

This Part covers Application, Office Web Apps, and Mail Server installation


  • Boot up the virtual machine
  • In VirtualBox or VMWare, share the folder on the host machine where the install files are
    • In VirtualBox, Shared Folders appear under Network\VBOXSVR
  • Run the SharePoint Designer Install
    • Close when prompted to go online
  • Open SharePoint Designer
    • Select Use Standard Settings
    • Close SharePoint Designer
  • Mount the Office Professional Plus iso
  • Run the Setup
    • Enter your license key
    • Click through the Install
    • Do not go online, close.
  • Add mx record to DNS Server
    • Open DNS Manager
      • Forward Lookup Zones \ sp.local
        • Right-click \ New Mail Exchanger (MX) …
          • Leave Host domain blank
          • FQDN of mail server: sps2010.sp.local
          • priority: 10
  • Install hMailServer (lightweight alternative to Exchange)
    • Browse to the mapped folder containing the hMailServer executable and run it
      • Use external database engine
      • Create a new hMailServer database
      • Microsoft SQL Server
        • DB address: sps2010
        • DB name: hMailServer
        • Use Windows Auth
      • Service: SQL Server (MSSQLSERVER) (MSSQLSERVER)
      • Password: same as admin password from part1
      • Finish
    • Now hMailServer Administrator should be open
      • Connect to administrator on localhost
      • Add Domain
        • Domain: sp.local
        • Advanced
          • Catch-all address: administrator@sp.local
        • Save
      • Add User
        • Address: administrator
        • Password: same as admin password from part1
        • Administration level: Server
        • Active Directory Tab
          • Domain: sp.local
          • User Name: administrator
        • Save
      • Settings \ Advanced
        • Default Domain
          • sp.local
        • Administration password
          • same as admin password from part1
        • IP Ranges
          • Add
            • Name: sp.local
            • Lower IP:
            • Upper IP:
        • Save
      • Exit
  • Configure administrator user’s email address and remove password expiration
    • Open Active Directory Administrative Center
      • Users
        • Administrator
          • General\Email: administrator@sp.local
          • Account\Account Options: check “Password never expires”
  • Disable IE ESC
    • Server Manager / Configure IE ESC / Administrators = Off
    • This will prevent the about:internet trusted site prompt within Outlook
  • Reset the Internet Explorer home page to http://sps2010
  • Open Outlook 2010
    • Configure Email account
      • Name: Admin
      • Email: administrator@sp.local
  • Configure SharePoint outgoing mail server
    • Open SharePoint Central Administration
      • System Settings
        • Configure Outgoing Email settings
          • Outbound SMTP server: sps2010
          • From address: no-reply@sp.local
  • Configure User Profile Sync
    • Add spservice user to the local administrator group
      • Open Active Directory Administrative Center
        • Users \ spservice \ Add to group
          • Administrators
            • This is necessary to start the User Profile Synchronization Service
    • Grant Replicate Directory Changes permissions on sp.local to sp\administrator
      • Open Active Directory Users and Computers
      • Right-click sp.local and select Delegate Control
    • Grant Full Control rights to Network Service on the C:\Program Files\Microsoft Office Servers\14.0 directory
      • This prevents Application Event Log warning event ids: 1015, 1001, and 1004
      • More Info
    • Open SharePoint Central Administration
      • Application Management
        • Manage Services on Server
          • Start the User Profile Service
            • Use the spservice username and password
          • Start the User Profile Synchronization Service
            • Use the spservice username and password
          • Reset IIS (cmd\iisreset)
        • Manage Service Applications
          • User Profile Service Application
            • Before continuing, make sure the Forefront Identity Manager Service has started
              • Task manager \ services \ services
              • If not, you will receive an error: “MOSS MA not found”
            • Synchronization \ Configure Synchronization Connections
              • Create New Connection
                • Connection Name: sp local users
                • Forest Name: sp.local
                • Account Name: sp\spservice
                • Password: same as before
                • Populate Containers
                  • Navigate to SP
                    • Check Users (first one)
            • Synchronization \ Start Profile Synchronization
              • Start Full Synchronization
              • Wait for this to complete
                • Refresh the page until it says Synchronizing, then wait for about 20 minutes until idle
              • Verify that the sp\administrator profile contains the updated email address.  If not, manually populate.
  • Open SharePoint Workspace
    • Create a new account
      • Name: Admin
      • E-mail: administrator@sp.local
      • check “Allow me to recover my account later”
      • Finish
  • Install Visual Studio 2010
    • Mount the Visual Studio 2010 Premium CD iso
    • Run the installer
    • Install Full
      • Good thing we allocated enough disk space 🙂
    • Ignore the “SQL Server Express Service Pack 1” install error
      • We installed the full version of SQL Server, not SQL Express
    • Finish and do not check for updates
    • Set to run as administrator
      • Browse to the Visual Studio 2010 shortcut in the start menu
        • Right-click the shortcut and select properties
        • Select Advanced…
        • Check “Run as Administrator”
        • OK, OK.
  • Install Visual Studio Team Explorer 2010
    • Mount the Visual Studio Team Explorer 2010 CD iso
    • Run Setup.exe from the CD
    • Step through the install
    • Finish
  • Install Visual Studio 2010 Service Packs – SP1 at time of article
    • Run the VS10sp1 installer
    • Step through the install
      • This downloads realtime, so make sure you have a high-speed internet connection
    • Wait a very long time for this to download and install
    • When prompted, reboot the machine
  • The remaining instructions have not yet been vetted.  Please check back later for more info.
  • Install CodeRush Express
  • Install Google Chrome
  • Install Firefox
  • Install Safari
  • Install Snagit
  • Install Firebug
  • Install Fiddler
  • Install Paint.Net
  • Install Windows Live Essentials
  • Shut down and take a snapshot named “SP Dev Workstation”
  • Start the Virtual Machine
  • Install Office Web Apps
    • Instructions coming soon
  • Shut down and take a snapshot named “SP Dev Workstation with Office Web Apps”
  • Apply any SharePoint service packs as needed
    • We do this last so you have the option of testing against different SharePoint builds and testing Service Pack deployments against existing Sites
  • Shut down the virtual machine and backup to another machine
  • Distribute to the developers in your team and enjoy!




Wonderfull: An Overview for Developers on SharePoint Online


Summary:  Learn about the developer features that are coming to SharePoint Online, strategies and patterns for successfully developing on SharePoint Online, and links to additional resources for developers to deepen their knowledge of these extensibility features.

Available in SharePoint Online

note Note:
This article is prerelease documentation for SharePoint Online and is subject to change. It describes functionality that is available in the SharePoint Online Beta program, based on Microsoft SharePoint 2010 technology, not the current SharePoint Online subscription service. For more information about the SharePoint Online Beta service, see the SharePoint Online home page for the Office 365 Beta program.

Applies to:  Microsoft SharePoint Online

Provided by:  The SharePoint Developer Documentation Team


Introduction to SharePoint Online

SharePoint Online is a cloud-based service, hosted by Microsoft, for businesses of all sizes. Instead of installing and deploying SharePoint Server on premises, any business can now simply subscribe to SharePoint Online to provide their employees with an enterprise-grade solution to create sites to share documents and insights with colleagues, partners and customers.

SharePoint Online provides sites to:

  • Manage and share important documents
  • Keep teams in sync and manage important projects
  • Stay up to date with company information and news
  • Share documents securely with partners and customers
  • Market your business using a simple public-facing website

SharePoint Online works with familiar Microsoft Office applications. It is easy to create Office documents and save them directly to SharePoint Online, or co-author documents with Office Web Apps. Users can access important documents offline or from familiar mobile devices, and set document-level permissions to protect sensitive content. With one click it is possible to communicate in real time with colleagues, customers, and partners from within SharePoint sites.

By letting Microsoft assume much of the operational burden that comes from managing the infrastructure that is associated with on-premises software, businesses can focus their resources on what is important—their businesses. Small-sized and medium-sized businesses can now take advantage of the same enterprise-strength collaboration platform that larger-sized companies do, without having to shoulder the operational and hardware infrastructure necessary to host SharePoint on-premises.

As a cloud-based service, SharePoint Online uses redundant and geographically dispersed data centers. Each data center houses a reliable and redundant infrastructure to support the service. And SharePoint Online provides businesses with the flexibility to scale resources as demands change.

SharePoint Online offers developers a flexible, robust framework for customizing and developing solutions for use in the multitenant environment of the cloud. The development features and patterns you use in developing for SharePoint Online are a subset of those available for developing for SharePoint 2010 on-premises.

This article presents an overview of the developer features that are available in SharePoint Online, introduces strategies and patterns for successfully developing on SharePoint Online, and provides links to more resources for developers to deepen their knowledge of these extensibility features.

Customization and Development Strategies

There are three basic ways to customize SharePoint Online:

  • Configuration by using the browser   Customizations that you can perform by using the SharePoint Online user interface in your browser. For example, you can edit page layouts, add and customize the default Web Parts, add lightweight Microsoft Silverlight widgets to a page, or embed jQuery code in a Content Editor Web Part.Because in-browser configurations are primarily performed by end users, they are outside the scope of this article. For more information for enterprises, see the SharePoint Online Planning Guide for Office 365 Beta for Enterprises. For more information for small businesses, see SharePoint Online Planning Guide for Office 365 Beta for Small Businesses.
  • Customization by using SharePoint Designer   Microsoft SharePoint Designer 2010 is a Web and application design program you can use to design, build, and customize your websites within SharePoint Online. With SharePoint Designer 2010, you can create data-rich webpages, build powerful no-code workflow-enabled solutions, and design the appearance and behavior (look and feel) of your site. Customizations that you can perform in SharePoint Designer are generally declarative, and can also employ client-side scripting.
  • Developing SharePoint Online solutions that contain custom code   To enable more technically complex solutions, SharePoint Online provides both server and client object models for developers. Microsoft Visual Studio 2010 provides a range of specialized templates for creating sandboxed solutions that contain a variety of SharePoint items, such as site and list definitions, workflows, Web Parts, event receivers, and content types, to include in your SharePoint solutions.

Accessing Developer Features

Be aware that SharePoint Online provides a range of user licenses, and the user license you have determines which developer features you have rights to use. Consult the SharePoint Online Developer Feature Availability Matrix in the SharePoint Online General Reference to determine the developer features your user license provides you access to.

Customizing SharePoint Online Using SharePoint Designer 2010

SharePoint Designer 2010 is the tool of choice for rapid development of SharePoint applications. Using SharePoint Designer 2010, advanced users and developers can create SharePoint solutions in response to business needs. Advanced users can compose no-code solutions that encompass a variety of common scenarios, from collaborative sites to human workflows, leveraging the building blocks that are available in SharePoint in an easy to use environment. In addition, developers can use SharePoint Designer 2010 to get a quick start on SharePoint development projects.

SharePoint Designer 2010 delivers a powerful site-authoring experience by providing one place where you can do the following, all without writing a line of code:

  • Create a SharePoint site
  • Customize the components that compose the site
  • Design the logic of the site around a business process
  • Deploy the site as a packaged solution

The tasks you perform in SharePoint Designer are generally referred to as customizations, instead of development, because tasks performed in SharePoint Designer require you to create or edit SharePoint items declaratively, instead of using server-side code. (Some tasks you perform in SharePoint Designer can employ client-side scripting.)

You should be aware of an important aspect of SharePoint Designer customization: When you are using SharePoint Designer, you are editing directly against the selected SharePoint Online site. This differs from SharePoint solution development in Visual Studio 2010, where you create and debug your solution on a local SharePoint installation, and then deploy the completed solution to the solution gallery in SharePoint Online.

SharePoint Designer is available as a free download from Microsoft. For more information, including system requirements, see Microsoft SharePoint Designer 2010 (32-bit).

SharePoint Designer Customization Areas

The business solutions you can create in SharePoint Online by using SharePoint Designer fall into the following main types of solutions.

  • Interactive data-rich user interfacesWith SharePoint Designer 2010, you can create powerful and dynamic user interfaces for your SharePoint data, and you can make them available in many places, including your SharePoint site and custom windows, panes, and fields in Microsoft Office business applications.

    The interfaces that you can create include custom views, forms, Web Parts, navigation, and custom Office client windows and task panes. This kind of flexibility enables you to create completely customized user experiences of your business data.

    You might combine multiple data sources into a single view, create dashboards with related item views, design custom forms tailored to individual roles, and customize the available toolbars and Server ribbon commands associated with the data.

  • Declarative workflows for managing business processesEvery business process in an organization consists of a set of activities that are connected based on a common business need. SharePoint declarative workflows are designed around this model by providing rules-based workflows that consist of sets of conditions and actions. You organize and run a series of actions that correspond to a work process that is based on a sequence of conditions and actions.

    By using SharePoint Designer 2010, you can create declarative, rules-based workflows that manage the business processes in an organization. Workflows automate both business application processes and human collaborative processes. Workflows for business application processes might update one data source when another data source changes; and workflows for human collaborative processes might send a document to an employee’s manager for approval.

    The declarative workflows you can build in SharePoint Designer introduce application logic to your business processes without requiring you to write code. This is made possible by the workflow designer in SharePoint Designer 2010, which allows nested logic, substeps, and more. Alternatively, you can design and share workflows by using Microsoft Visio 2010 with its flowchart templates that can be exported to SharePoint Designer 2010.

  • Connections to data that is inside or outside of SharePointWith SharePoint Designer 2010, you can connect to numerous data sources, and then integrate that data into your site and Office client applications. Your users, as a result, can see and interact with business data on your site and from within the programs you choose instead of connecting to those data sources separately.

    Directly from the ribbon, you can connect to an external database, SOAP service, REST (Representational State Transfer) service, and more. Connecting to data sources is a powerful feature of SharePoint Designer 2010 because there are so many supported options you can use to make data available to your users. With data connections, you can bring together lists and libraries, external databases and data sources via OLE DB or ODBC protocols, XML web services via SOAP, and more.

    Currently in SharePoint Online, you cannot connect external business data sources by using the Microsoft Business Connectivity Services (BCS) framework.
  • Designed and branded sitesThe final area of customization provided by SharePoint Designer 2010 is design and brand—that is, taking a consistent look and feel and applying it to your SharePoint site. You can incorporate a company logo, color scheme, headers and footers, supporting graphics, custom navigation, and more. As a result, every page on the site can be immediately recognized as a part of a larger corporate site. In SharePoint Designer 2010, you design and brand SharePoint sites by using master pages, page layouts, and cascading style sheets.

    Designing and branding a site is different from the other pillars of customization, where the focus is on creating custom business solutions. Branding is something you generally perform less often and at the top of a site collection. That custom brand is then inherited by the site collection’s subsites. The branding effort is also likely to be performed by a web designer instead of a solution creator.

    For these reasons, master pages, page layouts, and cascading style sheets are disabled by default for all users except SharePoint Online administrators. In this way, only those responsible for the site brand have access to these powerful, yet sensitive files. You can re-enable them for specific users.

Restricting Access to SharePoint Designer

The SharePoint Online administrator has the ability to restrict the tasks for which other users can employ SharePoint Designer. The SharePoint Online administrator can do the following:

  • Restrict who can detach pages from the site definition
  • Restrict who can edit master page and page layouts
  • Restrict who can edit files in URL site hierarchy
  • Prevent the use of SharePoint Designer 2010 to edit sites

Deploying Custom SharePoint Solutions

SharePoint Designer includes functionality that enables you to package the SharePoint items you have created and edited, so that you can deploy them to another server or across the enterprise, or open them in Visual Studio 2010 for additional development. The Save as Template feature enables you to save a solution as a SharePoint solution package (.wsp) file. You determine what is saved in the .wsp file. It can contain the entire contents of your site, including data sources and structure, views and forms, workflows, and Web Parts, or you can save individual components, such as a list, a view, or a workflow.

This ability to save SharePoint items in .wsp files that can be opened in Visual Studio 2010 means that a designer can create the SharePoint items in the familiar, intuitive SharePoint Designer interface and then hand it off to a developer for further development in Visual Studio 2010, a tool that developers are familiar with. Or, if you are a developer, you can use SharePoint Designer for rapid application development, knowing you do not have to redo your work because you can easily port it to Visual Studio 2010.

Read More About Customizing SharePoint Online Using SharePoint Designer 2010

For an overview of the SharePoint Designer interface and capabilities, see Introducing SharePoint Designer 2010. For a more detailed list of resources to get you started, see Getting Started with SharePoint Designer.

Developing SharePoint Online Solutions

SharePoint Online introduces the concept of the SharePoint Online administrator. The SharePoint Online administrator is the user who has permissions to perform administrative tasks for a company’s sites within SharePoint Online. (This is in contrast to farm administration duties, which in SharePoint Online are performed by Microsoft.) Because SharePoint Online administrators own and administer site collections in SharePoint Online, instead of entire farm installations, the development approach to SharePoint Online is necessarily scoped to the site collection. Because of this, two developer features form the foundation of developing for SharePoint Online:

  • Sandboxed solutions   A specialized type of the SharePoint solutions framework, sandboxed solutions provide a framework for developers to create, and for SharePoint Online administrators to upload and activate, custom code solutions to SharePoint Online. Sandboxed solutions run in an environment that has access to a core subset of the server object model. The sandboxed solutions framework gives developers access to the major objects at and below the site collection level.
  • Client object model   The client object model provides three parallel and comparable representations of the core objects in the server-side SharePoint object model: a .NET Framework managed model, a Silverlight model, and an ECMAScript (JavaScript, JScript) model. This client object models provide remote access to SharePoint data and functionality.In addition, you can use the client-side code to access the web services that SharePoint Online makes available and external data sources. Because of this, client-side code is a useful option if you need to access either objects beyond those included in sandboxed solutions, but available through a SharePoint Online web service, or external data.

Figure 1 shows these development options: use the server object model available to sandboxes solutions, or employ the client object model and client-side code to access additional data that is available through the SharePoint web services, or data from external sources.

Figure 1. SharePoint Online development options

Development options in SharePoint OnlineNotice that the SharePoint Web Part actually runs in SharePoint Online. However, the client-side code it references is downloaded to and executes on the client, employing the SharePoint client object model to connect back to SharePoint Online for data transfer.

Sandboxed Solutions in SharePoint Online

For SharePoint Online development, you use the same framework to package and deploy your custom-coded solutions that you would for an on-premises SharePoint installation: the solutions framework. When developing for SharePoint Online, you create a specific type of solution, known as a sandboxed solution. A sandboxed solution enables SharePoint Online administrators to upload their own custom code solutions.

A sandboxed solution works in much the same way as a farm (full-trust) solution. For example, sandboxed solutions enable you to bundle all the components that can be used to extend SharePoint Online into a single new file, which is called a solution file. A sandboxed solution is a deployable, reusable package that can contain a set of Features, site definitions, and assemblies that apply to sites, and that you can enable or disable individually. You can use the sandboxed solution file to deploy the contents of a Web Part package, including assemblies, class resources, Web Part description (.dwp) files, and other package components.

Sandboxed solutions differ from farm solutions primarily in how they are deployed, and the extent of access they have to the server object model. As mentioned earlier, sandboxed solutions run in a separate process that has access to a core subset of the server object model. A solution gallery is used to store all sandboxed solutions.

In addition, sandboxed solutionsare assigned a custom code access security (CAS) policy with the following permissions:

For more information about CAS policies, see Using Code Access Security with ASP.NET and Security Guidelines: .NET Framework 2.0.

Components Available in Sandboxed Solutions

You can include the following programmatic or declarative items in your sandboxed solutions:

  • Code components:
    • Feature receivers
    • Event receivers
    • Navigation
    • Web Parts (if derived from the WebPartclass)
      To use Visual Studio 2010 to create visual Web Parts that can be deployed as part of a sandboxed solutions, you must first install the Visual Studio 2010 SharePoint Power Tools. These tools are a a set of templates and extensions that provides additional functionality to SharePoint developers, and contain an item template that enables you to use a visual designer to create SharePoint Web Parts that can be deployed in a sandboxed solutions.
    • Microsoft InfoPath forms logic
    • SharePoint Designer workflow activities
    • Sandboxed solutions workflow activities
  • Declarative components:
    • Declarative workflows
    • Content types, site columns
    • Lists and list definitions
    • Visual and nonvisual Web Parts
    • Custom actions, ribbon extensions
    • Client-side technologies
    • Web templates, site pages, page layouts, and master pages

The following capabilities and elements are not supported in sandboxed solutions:

  • Access to the Internet to make web service calls
  • Access to a hard disk to read or write filesYou can, of course, read and write to lists and libraries within SharePoint Online.
  • Web application-scoped or farm-scoped Features
  • Adding assemblies to the global assembly cache
  • Running security-related functionality; for example, RunWithElevatedPrivileges or other SPSecurity methods
  • Custom Action groups
  • HideCustomAction element
  • Content type binding
  • Web Part connections

SharePoint Online Solution Development Process

The following are the basic steps in the process of creating, deploying, and activating a sandboxed solution on SharePoint Online:

  1. Develop and test the solution.To create or customize SharePoint Online solutions, you must develop the solution on a local computer where SharePoint Server 2010 or SharePoint Foundation 2010 is installed. This includes debugging the solution; you will not be able to debug the solution directly on SharePoint Online.

    After you set up your development environment, you can use Visual Studio 2010 to create your sandboxed solutions. As a tool for promoting rapid development of SharePoint solutions, Visual Studio 2010 provides such features as advanced debugging tools, IntelliSense, statement completion, and project templates. Visual Studio 2010 provides a range of specialized templates for creating SharePoint items to include in your sandboxed solutions, such as site and list definitions, workflows, Web Parts, event receivers, and content types. In addition, Visual Studio 2010 can open and edit solution package (.wsp) files that are created in SharePoint Designer 2010, enabling designers and developers to tightly collaborate on solutions through a common framework.

    For more information about setting up your development environment, including hardware recommendations, operating system and Hyper-V options, and prerequisites, see Setting Up the Development Environment for SharePoint 2010 on Windows Vista, Windows 7, and Windows Server 2008.

    For information about how to use and customize Visual Studio 2010 to maximize your efficiency, see Using Visual Studio for SharePoint Development.

  2. Deploy and activate the solution.After you create and debug your sandboxed solutions on your local computer, you must hand that solution off to your SharePoint Online administrator, if you do not have SharePoint Online administration permissions. The SharePoint Online administrator uploads the solution package (.wsp) file to the Solution Gallery for activation.

    For more information, see Deploying a Sandboxed Solution.

    To make the solution available to users, you must activate it. If your sandboxed solution package contains a Feature that is scoped to the site collection level, it is activated automatically. Any Feature that is scoped to the site level must be activated on the Manage site features page located at http://servername/site/subsite/_layouts/managefeatures.aspx.

  3. Monitor the activitated solution.Activated solutions are monitored in terms of the resources they consume. Solution performance can be monitored by using multiple types of measures including CPU execution time, memory consumption, and database query time.

Figure 2 shows the main steps of the sandboxed solution development process for SharePoint Online.

Figure 2. Sandboxed solution development in SharePoint Online

Sandboxed solution development process

Additional Solution Restrictions in SharePoint Online

Because it is a multi-tenant environment, when you upload a sandboxed solution to the Solution Gallery, SharePoint Online performs a further round of validation checks, in addition to those performed by on-premise SharePoint installations. A sandboxed solution cannot be activated if it contains code calling any of the following namespaces:

In addition, the following types and members cannot be called from code in a sandboxed solution in SharePoint Online:

Read More About Sandboxed Solutions

For information about the capabilities and elements that are available for use in sandboxed solutions, CAS policy for sandboxed solutions, and resource monitoring of sandboxed solutions, see Sandboxed Solutions Architecture.

To learn how to deploy a sandboxed solution as a SharePoint Online administrator, see Deploying a Sandboxed Solution.

For a list of the server object model types and members available in sandboxed solutions, see Microsoft.SharePoint.dll APIs Available from Sandboxed Solutions.

For a reference implementation of a sandboxed solution, see Reference Implementation: The Sandbox Execution Model.

For training on sandboxed solutions, see Sandboxed Solutions on Channel 9.

Accessing SharePoint Data Through the Client Object Models

SharePoint Online includes three client object models, each of which provides roughly the same subset of the server object model that is defined in Microsoft.SharePoint.dll. The ECMAScript, .NET Framework managed, and Silverlight client object models each include objects that correspond to major objects at the site-collection level or lower in the SharePoint hierarchy. The object models provide a consistent and easy-to-use, object-oriented system for interoperating with SharePoint data from a remote client or server.

Because code written against the client object models runs remotely on the client, it is not subject to the same restrictions as sandboxed solutions, and can, for example, access external data sources.

To improve security and performance, the client object models contain only the most relevant APIs for client development, not all the types and members that are represented in the server object model. Limiting the size of the client libraries reduces the amount of time that is required to download the libraries in the Silverlight and ECMAScript contexts. In addition, the new APIs are designed to minimize the number of roundtrips that must be implemented for common actions.

The client object models are provided through proxy .js files and managed .dll files, which can be referenced in custom applications just as other object models. The object models are implemented as a Windows Communication Foundation (WCF) service, but they use web bindings to implement efficient request batching. All operations are inherently asynchronous, and commands are serialized into XML and sent to the server in a single HTTP request. For every command, a corresponding server object model call is made, and the server returns a response to the client in compacted JavaScript Object Notation (JSON) format, which the proxy parses and associates with appropriate objects. Figure 3 shows the call and response flow for client object models.

Figure 3. SharePoint client object model architecture

SharePoint client object models architectureThe client object models share structural design traits, such as object model hierarchy, object identity, data retrieval semantics, client context, infrastructural client objects, collections, and exception handling. The object models are consistent with the server object model. So, if you are familiar with the server-side API, you can quickly learn to use the client .NET Framework managed, Silverlight, or ECMAScript API. In addition, the client object models generally have parity with each other, so when you learn one subset of the server object model, you have also learned most of the other subsets.

Programs running on the client, and using one of the client object models, can add and remove lists, add, update, and delete list items, modify documents in document libraries, create sites, manage permissions of items, add and remove Web Parts from a page, and much more.

Some supported development areas include:

  • Site collections and sites
  • Lists, list items, views, and list schemas
  • Files and folders
  • Web, list, and list item property bags
  • Web Parts
  • Security
  • Content types
  • Site templates and site collection operations

Using the Silverlight Client Object Model in SharePoint Online

You can use Silverlight, and the Silverlight client object model, to create rich, sophisticated applications within SharePoint Online. You can host your Silverlight (.xap) application in its own ASPX page, or in a Web Part. SharePoint Online includes a default Silverlight Web Part, or you can create a custom Web Part as part of a sandboxed solution.

To use the SharePoint Silverlight object model within a Silverlight Web Part, you can create a Silverlight application in Visual Studio 2010, and add your code to the Page class in the default Page.xaml.cs file of your project. After you build your project, upload the project’s application package (.xap) file to any document library you choose. Insert a Silverlight Web Part into a Web Parts page and point the URL source of the Web Part to the .xap file’s path location in the document library. The Web Part can contain custom properties that are sent to Silverlight via the InitParameters property.

Use forms-based authentication (FBA) to authenticate users against SharePoint Online.

In addition, you can use Visual Studio 2010 to create a single solution (.wsp) file that performs the following actions when deployed and activated:

  • Deploys a Web Part, based on the default Silverlight Web Part, to host your Silverlight application
  • Deploys the Silverlight application package (.xap) file, packaged as a module, to the specified document library location
  • Creates pages, which contain your Web Part embedded in them, in the site pages collection

After the solution is activated, the user can navigate to the created pages and interact with the Web Part hosting the Silverlight application. The application itself can make use of the SharePoint Silverlight object model to access SharePoint Online data remotely, even though it appears to the user to be hosted within SharePoint Online.

Using the ECMAScript Object Model in SharePoint Online

You can employ the ECMAScript object model in SharePoint Online in a similar way. You can include custom code that uses the ECMAScript object model within a script block on an .aspx page, or you can create a separate .js file to include your code and reference it from the .aspx page. For more information, see Setting Up an Application Page for ECMAScript.

Read More About SharePoint Client Object Models

For a more detailed introduction to the client object models, see Using the SharePoint Foundation 2010 Managed Client Object Model. For detailed technical information and implementation instructions, see the following sections in the SharePoint 2010 SDK:

For information about creating Silverlight client applications, see Using the Silverlight Object Model and How to: Use a SharePoint Project to Deploy a Silverlight Application.

For a reference implementation example of using the SharePoint client object models, see Reference Implementation: Client.

For API reference information, see Client Class Library and ECMAScript Class Library.

For training on the SharePoint client object models, see Client Object Model on Channel 9.

SharePoint Web Services Available in SharePoint Online

Table 1 lists the default Web services that are available in SharePoint Online. Although these, as with any external data connection, are not available for use in sandboxed solutions, you can access them through client applications such as Silverlight and ECMAScript.

Table 1. Web services available in SharePoint Online

Web service Description
WebSvcAlerts Provides methods for working with alerts for list items in a SharePoint site.
WebSvcCopy Provides services for copying files within a SharePoint site and between SharePoint sites.
WebSvcDWS Provides methods for managing Document Workspace sites and the data they containThe following method is not available in SharePoint Online:

  • FindDwsDoc
WebSvcImaging Provides methods that enable you to create and manage picture libraries.
WebSvcLists Provides methods for working with SharePoint lists, content types, list items, and files.The following method is not available in SharePoint Online:

  • AddDiscussionBoardItem
WebSvcMeetings Provides methods that enable you to create and manage Meeting Workspace sites.
WebSvcPeople Provides methods for associating user identifiers (IDs) with security groups for site permissions.
WebSvcPermissions Provides methods for working with the permissions for a site or list.
WebSvcSiteData Provides methods that return metadata or list data from sites or lists.
WebSvcsites Provides methods for returning information about the site templates for a site collection
WebSvcspsearch Provides methods for accessing Search results from client applications and web applications outside of the context of a SharePoint site.
WebSvcUserGroup Provides methods for working with users and groups.
WebSvcVersions Provides methods for working with file versions in SharePoint document libraries.
WebSvcviews Provides methods for creating, deleting, or updating list views in SharePoint Online.
WebSvcwebpartpages Provides methods for working with Web Parts.The following methods are not available in SharePoint Online:

  • AssociateWorkflowMarkup
  • ExecuteProxyUpdates
  • GetAssemblyMetaData
  • GetDataFromDataSourceControl
  • GetFormCapabilityFromDataSourceControl
  • RemoveWorkflowAssociation
  • ValidateWorkflowMarkupAndCreateSupportObjects
WebSvcWebs Provides methods for working with sites and subsites.The following method is not available in SharePoint Online:

  • CustomizeCss

SharePoint REST Interface

SharePoint Online also includes a Representational State Transfer (REST) interface that provides access to lists and libraries as a relational data service. A core concept of any RESTful interface is the resource, and in SharePoint Online, lists and items are represented as HTTP resources that can be addressed by remote URLs.

Operations in the SharePoint REST interface constitute a standard set of operations for RESTful web services. Read, Create, Update, and Delete operations are mapped directly to GET, POST, PUT, and DELETE HTTP verbs, which eliminates the need for intermediate layers between client and server.

The REST interface uses flexible URL conventions for querying data, which enable you to filter, sort, and select information from SharePoint lists directly from the browser. You can also retrieve information from SharePoint lists through multiple representations, including support for JSON, Atom, and AtomPub standards.

For more information, including example URLs that implement the REST interface, see SharePoint Foundation REST Interface.

Developers can also access the Excel Services REST API in SharePoint Online. This API enables developers to access workbook parts or elements directly through a URL. This allows for a flexible, secure, and simpler mechanism to access and manipulate Excel Services content.

The discovery mechanisms built into the Excel Services REST API also enable developers and users to explore the content of the workbook manually or programmatically by supplying an Atom feed that contains information about the elements that reside in a specific workbook. Some examples of the resources that you can access through the REST API are charts, PivotTables, and tables.

Using the Atom feed provided by the REST API is an easier way to get to the data that you care about. The feed contains traversable elements that enable any piece of code to discover what elements exist in a workbook.

For more information, see Excel Services REST API.

Comparison of SharePoint Online Features and SharePoint Server Features

The following table lists the developer features available in SharePoint Online, as compared to those available in SharePoint Server 2010.

Table 2. Developer Features Comparison: SharePoint Online and SharePoint Server 2010

Feature SharePoint Online SharePoint Server 2010 (on-premises)
Browser Configuration Available Available
SharePoint Designer customization Create data-rich interfacesManage business processes through workflow

Connect to data inside and outside of SharePoint

Design and brand

Create data-rich interfacesManage business processes through workflow

Connect to data inside and outside of SharePoint

Design and brand

Business Connectivity Services

SharePoint Solutions sandboxed solutions Farm solutionssandboxed solutions
Client Object Models Silverlight.NET Framework managed


Silverlight.NET Framework managed


Silverlight Web Part Available Available
Web services Subset of .NET SharePoint web servicesREST API

Excel Services REST API

All .NET SharePoint web servicesREST API

Excel Services REST API

InfoPath Forms sandboxed solutions forms sandboxed solutions formsAdministrative forms
Workflow Declarativesandboxed solutions workflow activities Declarativesandboxed solutions and farm workflow activities


SharePoint Online provides a compelling and flexible option for companies that want the powerful collaborative platform of SharePoint, without the operational costs that come with hosting software on-premises. And it delivers a robust, flexible development surface for developers.

This article provides a brief overview of the development options available to developers in SharePoint Online. For more information about a particular area, follow the links in this article. Also, visit the SharePoint Online Developer Resource Center frequently for updated links to more resources, including articles, training, and videos.

Additional Resources

For more information, see the following resources:

SharePoint Designer Resources

Sandboxed Solution Resources

Client Object Model Resources

Top 10 Q&A: Getting Started With Office 365

Our familiar Microsoft SharePoint Server technology delivered as an online service makes the power of the cloud work for your organization. SharePoint Online lets you create sites to share documents and information with colleagues, and customers.


  • Manage and share important documents with colleagues
  • Share personal insights and status updates with colleagues
  • Keep teams in sync and manage important projects
  • Find important documents and people easily
  • Stay up to date with company information and news
  • Create Microsoft Office documents and save them directly to SharePoint Online.
  • Protect sensitive content with document-level permissions.
  • Access important documents offline by using SharePoint Workspace.
  • Enable real-time communication with colleagues from within SharePoint Online.
  • Control service provisioning, monitoring, and reporting to simplify management through a single console.
  • Project Professional 2010 synchronizes task status with SharePoint 2010 to enable effective project collaboration with teams.

We are one week post the Office 365 launch and are flattered and excited to see all the excitement on the web about our new service. Several customers have shared with us how Office 365 is already boosting productivity with estimated cost savings of up to 50%! I wanted to continue ourtop questions series, to answer some of the great questions as we’ve been receiving on getting started with Office 365 through FacebookTwitter and right here on the Office 365 blog. Enjoy!

Q1: What is Office 365? Is it just “Office in the cloud”? Where can I learn more?

Office 365 is that and so much more! Office 365 combines the power of Office desktop apps with enterprise-grade e-mail, shared documents, instant messaging, and video and web conferencing (Exchange Online, SharePoint Online, and Lync Online) in an always-up-to-date cloud service that is backed by Microsoft and some of the best partners in the world. Further, Office 365 bring access to the Office Web Apps, which enable you to view, share and edit your Microsoft Office documents on the web with virtually any device connected to the internet. These services combine to provide you with the most comprehensive productivity solution for your business needs. Watch our professionals and small business or enterprise demos to get a taste of these services all working together.

Q2: Which Office 365 plan is right for my business? Where can I find pricing information on these plans? Can I switch between the two later on?

Office 365 offers plans tailored to meet your business’s needs, whether you are a new business, an established organization, a small office or a multinational enterprise. Office 365 for professionals and small businesses (Plan P) is designed for organizations with fewer than 25 employees and is just $6 per user per month, while Office 365 for midsize businesses and enterprises (Plans E1-E4 and K1-K2) provides larger organizations the tools they want with the IT control, security and reliability you expect from Microsoft in a range of plans from $4 (K1) – $27 (E4). And if you are a smaller org with technical know-how, you’ll be happy to know that there are no minimum seat requirements for the enterprise plans, it works for orgs of one to thousands. The small business plan is capped at 50 users and not able to be transition later on. To find which is right for you, take a look at ourprofessionals and small businesses and midsize businesses and enterprises placemats to compare the included features. For a more in depth analysis and feature list, see our Office 365 service descriptions.

Q3: I want to dig deeper into the detailed specs, features and capabilities of Office 365, such as mailbox sizes, cloud storage space, archiving, identity and details on security and service continuity policies in Office 365. What can I find this information?  

The Office 365 service descriptions are your go-to source for the nitty-gritty details about our service. These docs contain information on each of our cloud services (Exchange Online, SharePoint Online, Lync Online, Office Web Apps and Office Pro Plus) as well as detailed information on Migration, Support, Identity and Security. You can also read our security whitepaper and check out the Office 365 trust center to read about our practices.

Q4: I’m interested in buying/trying Office 365, where should I start?

The best way to begin is to make sure your company’s hardware and software meets the minimum system requirements for Office 365. Then check out our Getting Started page which will get you setup to trial or buy your Office 365 service. To make the trial and purchase process as smooth as possible, we’ve provided the following resources:

– Office 365 for professionals and small businesses Product Guide: This high-level walkthrough will guide you through how to sign up for an Office 365 subscription and how to begin using some key features.

– Office 365 for professionals and small businesses Purchase and Support Guide: This guide will help you learn more about Office 365 for professionals and small businesses and how it can benefit your organization. The guide focuses primarily on the Office 365 commerce experience and will help you to buy and manage your Office 365 subscriptions.

– Office 365 for midsize businesses and enterprises Buyer’s Guide: Guiding customers through key decisions relative to online communication and collaboration solutions, including deciding if the cloud is right for your organization and how Office 365 for enterprises can meet your productivity needs.

From there, for customers getting started with Office 365 for small businesses, watch the Product Tour and read the Introduction for Office 365 administrators help article. You can also watch the User Tour or read the Quick Start Guide to learn more about the end user experience. For larger enterprises considering Office 365, the Enterprise Admin Tour and Introduction help articles are the place to start.

Q5: I would like help getting my business setup on Office 365. Where can I go to contact a partner in my area?

We designed the Office 365 Marketplace specifically to help our customers find trusted Microsoft Office 365 experts, applications and services that enhance and easily integrate with the Microsoft Office 365 suite of products.

Q6: I have a question or issue with Office 365, where can I get help?

We provide a variety of resources including the Office 365 Community and in product self-support for our small business customers as well as some additional features, including 24/7 phone support, for our enterprise plan subscribers. An overview of the available resources can be found on our website. The Office 365 help sites are also great resources to find answers to many of the common issues encountered in our service (Small Business Help | Enterprise Help).

Q7: I’m not familiar with how to move my custom domain over to Office 365. I want to use my own domain for my email ( and my public website (

You can easily add your custom domain and use it for your Office 365 e-mail and/or public website. The below resources will walk you through this process, in either text or video form.

– Adding your domain to Office 365 for professionals and small businesses: Help Article | Custom Domain for Email Video | Custom Domain for Website Video

– Adding your domain to Office 365 for midsize businesses and enterprises: Help Article | Office 365 Technical Blog Post on most often asked questions

Q8: I’m not sure how to use SharePoint Online for my small businesses. Where can I learn more about it?

Our SharePoint Online Product Manager Ben Tamblyn has put together a great set of short videos posted to our blog explaining the service and how it can help your company be productive. If you want to dive into more how-to to understand how this works, take a look at the SharePoint Online Help & How-To section and watch these videos to learn more.

Similar help and video resources exist for Office 365 for Enterprises here and here respectively.

Q9: I am a BPOS Customer, where can I find information on the transition plans from BPOS to Office 365?

Our BPOS to Office 365 transition center has been newly updated with information on the next steps and a transition guide for a smooth move to our newest cloud service.

Q10: I have OLSB today – how Office 365 will affect me and when I can to move?

Microsoft Office 365 will replace Office Live Small Business (OLSB) as the comprehensive productivity service for small organizations. As Stephenshared last week, we will continue running the OLSB service through at least February 2012. OLSB customers do not need to take any action at this time.  We will share more details about the transition later this year.  Check out our OLSB transition center for the latest OLSB information and help content, including a self-transition guide for customers who want to move to Office 365 today.

Thanks, and leave a comment with any further questions you have on getting started with Office 365.

Post reference:

Working with SharePoint 2010 Themes


Our application involved migration of site collections on a Web application from SharePoint 2007 to 2010 environment. As we wanted to perform Visual Upgrade on site collections on an as-needed basis at the user’s request, we performed migration using PreserveOldUserExperience in stsadm. This will do the data migration but preserve the SharePoint 2007 look and feel. Later, Visual Upgrade can be used to upgrade to SharePoint 2010 look and feel. You can find more about PreserveOldUserExperience here on MSDN.

The migration basically involved 3 main steps—data migration, Visual Upgrade, and making our custom components compatible to work with the new version. After we were done with data migration, performing Visual Upgrade was simple, it was just performing Visual Upgrade from Site Settings->Site Collection Administration as shown here (click for a larger version):

Visual Upgrade in Site Collection Administration

Figure 1. Visual Upgrade in Site Settings

But just performing a visual upgrade does not make things work. There is more you need to think and work before you go for Visual Upgrade. The first thing is to work on master pages and themes. Before designing themes, you should decide if you want to go with themes or with cascading style sheets (CSS). It is always a good idea to go with one approach rather than using both because, themes might overwrite CSS sometimes and vice versa. The next sections will show you how to create and deploy a theme.

About Themes

Themes have been drastically changed in 2010. The new 2010 themes use an entirely different design. SharePoint 2007 themes used CSS and images while the new 2010 themes use the .thmx format. This means themes can be easily created using PowerPoint or any other tools which will be discussed later in this article. You will notice that the old SharePoint 2007 themes are no longer available in SharePoint 2010. When you perform migration without Visual Upgrade, the old themes are available to support the 2007 look and feel.

There are set of predefined themes available, which you can view from Site Settings->Look and Feel->Site Theme. Note that in SharePoint Server, you can customize the theme in the browser. In SharePoint Foundation, this functionality is not available. Here is a glimpse of the Site Theme in SharePoint Server (again, click for a larger view):

Site Theme in Site Collection Administration

Figure 2. Set Theme in Site Settings

Creating Custom Themes

SharePoint 2007 involved some effort to create themes as we had to deal with CSS and images. But as the themes design is changed completely in 2010, it is rather easy. Following are set of tools available which will make life easier. Here are the different ways of creating Themes.

Customize Theme Feature

Set Theme in Site Settings under the Look and Feel section is a default feature available in SharePoint Server, which will help you to customize themes. In Figure 2, you can see the option Customize Theme, which will help you to customize the theme you selected. Whenever you select a predefined theme and customize it, it creates a new theme called Custom and all the changes get applied to this custom theme. So every time you modify a predefined theme, the Custom theme gets overwritten.

Now, if you want to preserve this theme and download it locally, here are the steps that will help you to download this customized theme:

  1. View the HTML source of the page and search for /_catalogs/theme/Themed/uniqueHexId/corev4-uniqueNumber.css
  2. From the browser, navigate to http://yourServer/_catalogs/theme/Themed/uniqueHexId/theme.thmx and download the file.
  3. Rename the file MyCustomTheme.thmx

Theme Builder

You can also create themes using Theme Builder, which is available at . You can select an existing theme or
create a new theme using this tool. Here is the screenshot of Theme Builder:

Theme Builder UI

Figure 3. Theme Builder UI


Themes can also be created using PowerPoint. On the Design tab under Colors, select Create new theme colors. Customize it and save it as a thmx file. Below is a screenshot of the Create New Theme Colors Dialog:

PowerPoint Theme Dialog

Figure 4. PowerPoint Theme UI

Deploying Themes

There are multiple ways to deploy themes both through code and through the UI. The following are the different ways to deploy themes.

Theme Gallery Deployment

You can upload the thmx file that you created in PowerPoint or Theme Builder into the Theme Gallery. Deploying a theme to the Theme Gallery holds well if you’re working for a single site collection. If you need it to apply to multiple site collections, see the next method of deploying using a Feature. You can access the Theme Gallery from Site Actions->Site Settings->Themes. Once you upload it, you can go to the Set Theme screen, as shown in Figure 2 above, and set the theme. You can see the Theme Gallery below:

Theme Gallery in SharePoint 2010

Figure 5. Theme Gallery

Feature Deployment

It’s always a best practice to deploy any artifact as a Feature. This works well for multiple site collections. Here is an example of the Feature and Elements XML files.

<?xml version="1.0" encoding="utf-8" ?> <Feature Id="28E39FC9-BFE9-4FAE-9E71-C5BFEB818D2E" Title="My Custom Theme" Description="My Custom Theme" Version="" Scope="Site" Hidden="FALSE" DefaultResourceFile="core" xmlns=""> <ElementManifests> <ElementManifest Location="Elements.xml"/> </ElementManifests> </Feature>
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns=""
<Module Name="MyCustomTheme" Url="_catalogs/theme" Path="MyCustomTheme" RootWebOnly="true"> <File Url="MyCustom.thmx" Type="GhostableInLibrary" Path="MyCustom.thmx"> </File> </Module> </Elements>

For more information about deploying and installing a Feature, see Installing or Uninstalling Features. Once the Feature has been installed and activated, it will show up in the Theme Gallery that was shown in Figure 5.

Object Model Deployment

You can deploy the theme programmatically using the ThmxTheme class in the Microsoft.SharePoint.Utilities namespace. TheApplyTo method applies the theme to a site collection. Here is a code snippet:

C# Code
using (SPWeb web = site.OpenWeb()) 
{ using (ThmxTheme theme = ThmxTheme.Open(web.Site, "./_catalogs/theme/MyCustomTheme.thmx”))
 { theme.ApplyTo(web, false);
 } }

JavaScript Intellisence for SharePoint 2010 Projects

Visual Studio 2010 is really have useful and helpful capabilities from tooling prospective and it allows JavaScript developers to more productive through JavaScript Intellisence and JavaScript debugging. This post discusses about getting the JavaScript Intellisense in SharePoint 2010 projects.

1. Create an empty SharePoint 2010 project as shown below


2. Add a new module to the project and call it as Module1


3. In solution explorer if you expand the Module file then you will see sample.txt file, just rename the file example.aspx


4. Change Elements.xml file to reflect the same


5. We are adding basic HTML mark up and JavaScript to references to example.aspx page as shown below


If you want to refer any local JavaScript files then you can add below the script reference tag.

6. If you add any reference to local JavaScript files then change the elements.xml file


In this post I am referring the Jquery-1.5-vsdoc.js in examples.aspx.js which contains the comments and gives you the good intellisense while writing the JavaScript code.


Now sooner you type the function names in the .js file then you will get the intellisense




7. Now run your application, it deploys all required files into server and launches the application in browser


8. Not just Jquery, You might probably want to interact with SharePoint Client object model. To do that add the SharePoint JavaScript files as reference to the project in .js file as shown below


these js files can be found in SharePoint Hive 14 directory

If you notice the reference syntax of JavaScript files, those are just look like comments but Visual Studio refers them to give you intellisense while writing the code.


Now run your application by putting a breakpoint in the code, it will hit the code while page is being loading


So Hope this post helps you in understanding of JavaScript Intellisense and JavaScript Debugging on SharePoint Client object model and improves SharePoint development productivity.