Read an Excerpt
Beginning SharePoint 2010 Development
By Steve Fox
John Wiley & SonsCopyright © 2010 John Wiley & Sons, Ltd
All right reserved.
Chapter OneIntroduction to SharePoint 2010
WHAT YOU'LL LEARN IN THIS CHAPTER:
* Getting familiar with the core functionality and features of SharePoint * Understanding the basics of SharePoint architecture * What's available to developers in SharePoint 2010
SharePoint is an exciting Web-based technology. In its fourth version, SharePoint has undergone quite an evolution since the 2003 release, and the types of things you can do with SharePoint run far and wide. Those who have had the chance to see the product grow up will be surprised and happy with many of the changes that are now built into the platform. In fact, existing SharePoint developers will witness what arguably is a significant change in the features and functionality that SharePoint provides, as well as an evolution in the tools supported and the developer community that rallies around the technology. Aspiring SharePoint developers will realize there is quite a bit of power in the platform that you should be able to put into practice by the end of this book.
SharePoint has matured into a first-class platform that will enable you to build and deploy a wide array of solutions, as well as take advantage of the build-and-publish model that SharePoint users and developers have come to enjoy. In fact, SharePoint 2010 offers such a wide array of features that it is challenging for any one person to claim to be an expert across all of the SharePoint workloads. You will need to dedicate some time to becoming an expert, but the journey will be worth it.
With that in mind, this chapter introduces you to what SharePoint is and examines some of the high-level features for the developer. This chapter will also describe the capabilities that make SharePoint a platform that is interesting and compelling for you, the developer, to learn. Specific topics include the types of platform services to expect, data programmability, and the ways in which you can build and deploy a SharePoint solution. Toward the end of this chapter, you'll be introduced to Central Administration, where you'll find an array of administrative capabilities for SharePoint.
GETTING TO KNOW SHAREPOINT
Microsoft describes SharePoint 2010 as the business productivity platform for the enterprise and the Internet. To provide you with an idea of the types of things that you can do with SharePoint, Figure 1-1 breaks down SharePoint into three separate areas:
* Collaborate - As you move throughout this book, you'll see the notion of collaboration is a very strong theme for SharePoint. This is because SharePoint is about bringing people together through different types of collaboration, such as enterprise content management (ECM), Web content management (WCM), social computing through the use of wikis or blogs, creating dashboards to fulfill your business intelligence (BI) needs, and so on.
* Interoperability - SharePoint is also about bringing this collaboration together through interoperability. This means Office client and Web-based document integration, and the capability to build and deploy Office business applications (OBAs) - custom solutions that integrate line-of-business (LOB) data with SharePoint and Office, integrating with Web 2.0 technologies, or deploying applications to the cloud. It also means enhanced security through an evolved security model called Claims-Based Authentication that helps facilitate integration with other line-of-business (LOB) systems.
* Platform - As you'll see, SharePoint is a platform that supports not only interoperability and collaboration but also extensibility, through a rich object model, a solid set of developer tools, and a growing developer community.
These are three key themes that you will find crop up throughout most discussions of SharePoint and implicitly through many of the capabilities you'll get to explore throughout this book.
At its essence, SharePoint is a Web-based platform that provides the following:
* A set of native capabilities to support productivity and collaboration
* An extensible set of APIs and services
* A configuration engine that provides rich administrative abilities
However, depending on the role of the person who is using SharePoint (for example, the end user versus the developer versus the IT professional), the stated definition may take on a slightly different hue.
For example, for the end user, SharePoint enhances productivity by providing a core set of connected applications that essentially act as the Web-based application platform. The applications enable people to connect using wiki sites, workspaces, lists, document libraries, and integration with Microsoft Office applications, such as Outlook, Excel, and Word 2010.
From an organizational point of view, the unified infrastructure enables the organization to rally around a central point of collaboration - be it through an organizational portal, a team site, or a personal My Site. It also enables organizations to integrate LOB systems, such as SAP, Siebel, PeopleSoft, and Microsoft Dynamics, into the information worker experience through SharePoint.
The response to business needs arrives through the capability to use SharePoint as a toolset in the everyday work lives of an organization's employees - for example routing documents through managed processes, providing BI dashboards, or supplying audit tracking for documents in the Record Center. In essence, SharePoint 2010 represents a platform that offers the organization a lot of functionality to do many different things, with collaboration lying at the heart of them.
By stating that SharePoint is the platform for the enterprise and the Internet, Microsoft is implying that SharePoint has predominantly excelled in two spaces.
The first (and historically predominant) is the enterprise, which means that many large companies are attracted by what SharePoint offers, and are attracted to its lower cost compared to competitive products or technologies. This is because, for example, the platform is tightly integrated with Office, other Microsoft technologies (such as SQL Server and Silverlight), and external technologies and LOB systems.
While the enterprise has been an historical stronghold for SharePoint, there have been some interesting movements into the small and medium-sized business (SMB) space for SharePoint as well. This is evidenced by the fact that SharePoint comes in a variety of flavors and editions, as shown in Figure 1-2, and some of these can be leveraged by SMB developers to deliver some great experiences for SharePoint consumers. (Note that these were the editions as of this writing, and may be subject to change. For the latest editions, see http://sharepoint2010.microsoft.com.)
For example, among the different SharePoint editions shown in Figure 1-2 is SharePoint Foundation 2010. SharePoint Foundation (roughly equivalent to Windows SharePoint Services 3.0 in the 2007 release) is a free version of SharePoint and offers a baseline set of capabilities such as a set of site templates, security and administration, and web collaboration capabilities. Further, SharePoint Server 2010 (which is roughly equivalent to Microsoft Office SharePoint Server (MOSS) in 2007) is an edition that provides richer capabilities built into the platform such as a wider array of server-side services and collaboration options. You need to pay for SharePoint Server 2010, but the key is that these different editions offer you some choice as to where you want to start and the types of solutions you can build. Thus, companies have great flexibility when deciding upon what flavor of SharePoint to implement.
Because SharePoint is essentially a Web-based technology, you interact with SharePoint from your Internet browser. The Web-based experience is managed through an intranet, an extranet, or the Internet. For example, Figure 1-3 shows the SharePoint 2010 interface invoked from the Internet Explorer browser. (SharePoint is cross-browser, so you can use other Internet browsers such as Safari or Firefox with SharePoint.) This view is the default Team Site template (one of the site templates that ships with SharePoint) that is typical of a SharePoint intranet site.
As you can see in Figure 1-3, the main portion of the page consists of three different components:
* Some text ("Hello World!!!"),
* A link to Microsoft Office documents
* A default image
Also note that, down the left-hand side of the page, you have the Quick Launch navigation pane, which enables you to link to other functionality and sites within the SharePoint site. A ribbon at the top (very similar to the Office 2007 and 2010 Office client ribbon) provides centralized groups of elements that also load different functionality into the main content window. There is also a search option that connects you to other core SharePoint sites, functionality, and content within the site located in the top right of the page. And, lastly, you also have a set of other links, such as one to your My Site on this Web site, located in the upper right-hand corner of the page. As you'll find out throughout this book, SharePoint is very user-friendly. The view you see in Figure 1-3 can be edited and customized by the user, it can be integrated with Office documents, and it can be branded with a specific theme.
Thus, the Web-based experience that SharePoint provides intrinsically facilitates an out-of-the-box experience and integrates core (as well as external) applications and functionality that end users can employ during their daily work lives.
In Figure 1-4, you'll note that the default view has changed. This is because the site is now in Edit mode, which enables you to customize the SharePoint site. In this view, you can see that the user has clicked a part of the SharePoint page, and is now trying to insert an instance of the Content Editor Web part (which provides HTML and source-code editing capabilities) from the Authoring Web part category. The fact that you can quickly put a site into Edit mode, make some changes, and then save those changes back to the server is one of the great advantages of SharePoint.
While the experiences in Figure 1-3 and Figure 1-4 are the out-of-the-box default intranet site experiences (for viewing and editing), SharePoint also offers a full publishing-to-the-Web experience. This manifests in a special publishing template to meet your WCM needs, and provides you with templates, theming, a default site experience, workflow, and so on, so that you can create and publish content to your Internet Web sites.
You may be surprised to learn that innumerable companies are using SharePoint for their Internet-facing Web sites. For example, Figure 1-5 shows the Ferrari Internet Web site that is built using SharePoint. You'll also note that the site is rendered in Firefox.
For organizations, this can provide a one-stop shop for leveraging the SharePoint infrastructure both for internal sites, to manage your day-to-day project needs, and as an external publishing workflow and infrastructure to manage your publicly facing sites as well. The key point is that SharePoint provides the infrastructure for both intranet and Internet publishing and development, as well as many different options provided through a set of product editions to map to a host of scenarios and budgets.
As you'll see throughout this book, the native SharePoint experience is, in many ways, customizable. For example, Figure 1-4 shows the default site that SharePoint creates for you. However, you can apply your own master page to this default view to customize and brand the user's experience. This could be as simple as changing the colors, or it could be as deeply branded as the Ferrari site. You could even reconstruct the navigation through the use of Silverlight to simply leverage the SharePoint infrastructure and re-create your own customized user experience through the user interface (UI). And this is just the tip of the iceberg.
ADDRESSING THE NEEDS OF THE DEVELOPER
If you define SharePoint as a business productivity platform, you may be wondering exactly where the developer fits into this description. Although it seems like a convenient and common-sense way of viewing SharePoint from an end-user perspective, what about the needs of the developer? To understand how SharePoint applies to the developer, you must get past the surface definition and drive toward the platform capabilities. Here, you'll begin to see some interesting and compelling pivots for the developer.
Let's look at a practical example. As you have seen, a business productivity platform implies having a platform for end users to make them more productive in their day-to-day work lives - and SharePoint can certainly do that. In short order, it can be used as an application for end users. For example, a Human Resources (HR) department might use SharePoint to manage employee reviews, or a sales team might use it to manage a monthly sales-forecasting dashboard for BI.
In both of these scenarios, SharePoint represents an end-user application (or bundle of applications), but developers are not necessarily called out at this level. However, because SharePoint represents a platform, you know that you can build on this platform, or extend its capabilities.
So, when your HR manager comes to you and asks you to design a SharePoint site collection that integrates data from SQL Server or SAP, you get excited. When that same HR manager asks you to map a custom document template to a SharePoint 2010 content type (that also pulls data in from PeopleSoft), you become equally excited. And when the sales manager asks you to get data from an Excel 2010 worksheet and then render that data inside of a Silverlight application in SharePoint, you really start to jump up and down.
Extension and Enrichment for Developers
While SharePoint 2010 represents a set of connected applications (such as dashboards, document libraries, and the like), it still has a vast array of opportunities for developers to extend and enrich that end-user experience at multiple levels. This experience is obviously important when you think about SharePoint in the context of the enterprise developer. However, when the independent software vendors (ISVs) begin to think about that custom experience they want to deploy to their customers, it becomes vital that they have a reliable platform beneath their feet that they can deploy to and use to customize their SharePoint solutions. Their business depends on this stability and predictability. Thus, SharePoint 2010 has done a very good job of providing a scalable platform that supports multiple types of developers with different end goals and design ambitions.
So, SharePoint provides both an end-user paradigm (where the applications that make up SharePoint serve the needs of the end user) and a development paradigm (where developers can develop on top of SharePoint).
In a paper available through Forester Research (www.forrester.com/rb/Research/ now_is_time_to_determine_sharepoints_place/q/id/45560/t/2) entitled "Now Is the Time to Determine SharePoint's Place in Your Application Development Strategy," John R. Rymer and Rob Koplowitz reinforce this model. The two authors propose that SharePoint has an application level, where end users integrate with the out-of-the-box collaboration and productivity applications. They then add a customization layer, where either power users or developers can begin to customize the SharePoint experience for the end user. And lastly, they have a third layer, which is the application development layer.
It is at this application development layer where things get very interesting for developers. Here is where you'll find the solution developer who builds and deploys (or integrates through existing SharePoint artifacts) applications or business solutions - such as creating a SharePoint list that is capable of reading and writing data into an external LOB system, such as SAP or Siebel, or a Silverlight-enabled business application that is deployed as a Web part into your SharePoint infrastructure.
Excerpted from Beginning SharePoint 2010 Development by Steve Fox Copyright © 2010 by John Wiley & Sons, Ltd. Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.