Read an Excerpt
Professional SharePoint 2010 Development
By Tom Rizzo Reza Alirezaei Jeff Fried Paul Swider Scot Hillier Kenneth Schaefer
John Wiley & SonsCopyright © 2010 John Wiley & Sons, Ltd
All right reserved.
Chapter OneIntroduction to SharePoint 2010
WHAT'S IN THIS CHAPTER?
* Information about tools to integrate with Silverlight, LINQ, and BCS
* New features in social computing
* New features in ECM
Microsoft SharePoint Server 2010 introduces a lot of new functionality that you need to understand in order to write better applications on the platform. Beyond increasing the new features in each of the SharePoint workloads, such as collaboration or portal, Microsoft has added entirely new products to the SharePoint family, including the acquired FAST technologies for Enterprise Search and the PerformancePoint services that enhance SharePoint's business intelligence (BI) capabilities. With these new additions, the surface area of SharePoint has doubled, so this chapter will quickly introduce the new set of features in both SharePoint and the Office client.
WHAT'S NEW IN THE SHAREPOINT PLATFORM AND TOOLS
SharePoint, as a development platform, has matured over time from server APIs to web services to now supporting the latest developer technologies, such as Silverlight, LINQ, and REST APIs. Developers who build on the SharePoint platform will find some very welcome additions to the platform, which users have been requesting for a number of years, such as the ability to develop and test on client operating systems, including Windows Vista and Windows 7. You no longer need to do remote development or run a virtual server OS on your client machine to develop on SharePoint. Let's look at the top new enhancements in the platform that you can build against.
Language Integrated Query (LINQ)
In the 2008 release of Visual Studio and .NET 3.5, Microsoft introduced new technology and semantics that allow developers to write against objects that map back to a number of different datasources, even if those datasources do not store the data using object storage. Effectively, LINQ is an object mapper with special operators in the .NET languages. Therefore, you can take a relational database table, use Visual Studio to map the database to your objects, and then write to your objects. For LINQ to work, you need a provider that takes the object calls and translates them into the correct native calls of the underlying datasource, such as SQL queries for databases. With SharePoint 2010, a new LINQ provider for SharePoint converts object operations into the correct SharePoint operations using the native CAML language that SharePoint understands.
Lists are a critical part of the SharePoint platform. In fact, everything in SharePoint is powered by lists, whether it's a built-in application or your own custom application. With the 2010 release, lists have new, long-awaited functionality, including new scale limits, XSLT views for better customization, list relationships that allow cascade deletes and updates to work, and formula validation for columns in a list. There is also a new list type called the External Data List. This type of list allows you to surface external data, such as database or web service data, inside SharePoint with read/write capabilities. You'll learn more about this new type of list later in the book.
Business Connectivity Services
Business Connectivity Services (BCS) is the new name for the Business Data Catalog technologies from SharePoint 2007. BCS is greatly enhanced in the 2010 release with read/write capabilities, support for Windows Communication Foundation (WCF), and new client capabilities so that you have APIs both on the server and client, and can sync Line-of-Business (LOB) data from your backend systems to the client cache and work on that LOB data when offline. BCS will synchronize the data from the client with the server when you can reconnect. As part of the tooling, SharePoint Designer and Visual Studio include entity-modeling tools for BCS so that you can create business objects that connect to your LOB datasources from within these tools, and write your business logic for reading and writing your LOB data.
If you are using SharePoint 2007, one of the biggest challenges is trying to get Silverlight to work in a SharePoint environment. You have to modify your web.config, hack around to deploy your Silverlight application to a content viewer web part, and then hope you don't need to debug the application. Silverlight shipped after SharePoint 2007, which made it difficult for the SharePoint team to foresee the requirements of being a great Silverlight host. With the 2010 release, SharePoint has become that great Silverlight host. Built into SharePoint is a Silverlight web part; you can drag and drop this web part onto your page, point it to your Silverlight application, and start using the Silverlight application in your SharePoint environment in minutes.
Frequently, developers want to write applications that need to talk to SharePoint from a client operating system and from client applications, such as the ones in the Office suite. With the addition of Silverlight integration to SharePoint, a client object model is critical because it makes it easier for developers to write applications against a full object model, rather than trying to call web services from within their client applications. Additionally, because Silverlight runs on the client rather than running server-side, the client Object Model (OM) makes it easier for developers to build rich Silverlight applications on SharePoint. SharePoint 2007 requires you to write against untyped web services for remoting your applications. The client object model provides a more productive development experience since it provides a typesafe environment that works with the Intellisense in Visual Studio.
Web 2.0 Protocols and New Standards
Sandbox Solutions and Resource Governors
One of the biggest downsides to developing custom solutions in SharePoint 2007 is the requirement for the solution developer to be an administrator on the server. Often, IT administrators will not allow developers to access the server with the elevated privileges they need to deploy their solution, as custom web parts or other SharePoint solutions require that you place your code in the global assembly cache (GAC) or in the file system related to your SharePoint site. Plus, the administrator has no simple way to ensure that badly written code does not slow down the system, crash it, or perform malicious activities. You could implement code access security (CAS), but that requires the developer to write the code to implement it; in addition, managing CAS policies is not a simple task.
However, with SharePoint 2010, there is a new feature called Sandbox Solutions that allows for the deployment of SharePoint solutions inside a secure environment hosted in SharePoint. Because it is a secure environment, the IT administrator can control who can deploy solutions and how many resources these solutions receive through the new resource governors built into the system. For example, if a custom-developed solution is using too many CPU resources, SharePoint will automatically stop running the solution. That said, today the Sandbox Solution offers only a subset of the SharePoint object model, so while it might be a good solution for some custom applications, you will have to evaluate if there is enough functionality to meet your application needs.
Besides making SharePoint Designer (SPD) free, Microsoft has invested in making SharePoint Designer better in the 2010 release. SPD has been redesigned to have more of a SharePoint-based view than the folder-based view it previously had. Now, you can browse by the types of items you are looking for rather than just through the site hierarchy. In addition, SPD introduces a new entity modeler to make it easier for you to build BCS connections to your backend systems and model the backend data inside of the SharePoint entity system. Finally, SPD has enhanced the workflow design capabilities that import Visio diagrams into SPD and allow you to add business logic to those diagrams using the SPD Workflow Designer, and then display the graphical status of your workflow overlaid on those diagrams as part of your workflow.
SPD 2010 will continue to be a free product, which makes it an invaluable tool for any SharePoint developer, even if you just use it as a simple web design or SharePoint debugging tool.
Visio and Access Services
Two new web companions are available in SharePoint 2010, Visio Services and Access Services, in addition to the previous web companions - Excel Services and InfoPath Form Services. With Visio Services, you can design your Visio diagrams, connect those diagrams to backend systems for visualization of data, and then post those diagrams to SharePoint. SharePoint will render your diagram, with the data connectivity, through the SharePoint web experience.
Please note that the Visio web rendering is read-only, and to get the Visio Services functionality, you need a high-end version of Visio called Visio Ultimate. (Incidentally, this product is not part of the Office Ultimate suite.)
With Access Services, you can convert your Access applications to web-based applications. With the previous version of Access, Access 2007, you could take certain Access databases that were compatible with SharePoint's logical data model and export that data to SharePoint but still manipulate it from within Access. With the new capabilities that Access Services provides, you can take your Access forms and move them over to web-based forms to complete the transformation of your application.
InfoPath (Forms, List Forms, Mobile Forms)
InfoPath Form Services has a number of new enhancements, including the ability to replace list item forms for activities such as editing properties on an item. This makes it easier to build richer forms with business logic and data connectivity that work in the rich client through the new SharePoint Workspace (formerly Groove), which is covered later in this chapter, and in the browser. In addition, InfoPath Forms Services adds new mobile form capabilities that let you create forms that run across mobile devices, browsers, and Office clients.
With Visual Studio (VS) 2010, there is a major jump ahead for SharePoint developers. Previously, VS did not have much SharePoint development functionality and you had to download the community-supported Visual Studio Extensions for Windows SharePoint Services. With VS 2010, you can browse your SharePoint environment from the Server Explorer to quickly see your lists, libraries, content types, workflows, and other SharePoint artifacts. A visual Web Part Designer frees you from having to hand code HTML to add visual elements to your web parts. An entity modeling tool works with the BCS technologies that were discussed earlier so that you can model your business entities, write your business logic, and connect SharePoint to your backend systems. Finally, VS integrates SharePoint development into a team development environment with support for Team Foundation Server and easy deployment using the new Web Solution Package format, which is discussed next.
Web Solution Packages
To make it easier to package and deploy solutions, SharePoint 2010 improves the Web Solution Package (WSP) format so that it is supported across all tools, allowing you to export your site through the browser, SharePoint Designer, and Visual Studio. This means that you can quickly upgrade or downgrade your solutions between the tools, depending on the person working on the solution or the tool required to build the solution. In addition, SharePoint Online, the Microsoft-hosted version of SharePoint, supports this format so that you can move solutions from on-premises to the cloud without having to change formats or rework the package.
One of most common culprits of poorly performing SharePoint sites is poorly performing code, whether the problem is bad .NET code, bad database calls the .NET code makes, or coding errors that cause excessive CPU, disk, or memory utilization. Tracking down and figuring out where the issues are in the code was a laborious process in the 2007 release. SharePoint 2010 introduces a new developer dashboard that allows you to see all the calls made on a page right inside of the user interface. Those calls can be ones that SharePoint is making or they can be your custom code. By looking at the call stack, response times, and utilization, you can quickly uncover where your code is performing poorly and try to fix it.
WHAT'S NEW IN COLLABORATION/SOCIAL COMPUTING
Collaboration and social computing are two of the fastest changing technologies in the industry. Looking back just a few years, you'll note a number of technologies in this space did not exist, such as social tagging, microblogging, and the APIs that support these technologies. SharePoint 2010 adds new capabilities in these areas, but this space is not done innovating, so at some point you may have to build your own social capabilities on top of SharePoint 2010 to take advantage of future technology advances in this area.
Enhanced Blogs and Wikis
SharePoint 2007 introduced blog and wiki capabilities to the SharePoint product. The most interesting piece of the blog and wiki capability was the integration with the rest of the SharePoint functionality for versioning and content approval. Unfortunately, blogs and wikis were a late addition to the 2007 product, so not all of the desired functionality made it into the final release. In the 2010 product, blogs and wikis are enhanced to add new capabilities to the core blog and wiki functionality. Also, these applications can take better advantage of new 2010 capabilities, such as content rating, tagging, and feeds. In addition, records management can now be applied to blogs and wikis just like any other content in SharePoint so that you can have compliance and governance on your blog and wiki content. Finally, SharePoint also introduces enterprise wikis, which combine the content publishing and social features to provide a more robust wiki solution that has capabilities such as ratings of wiki pages.
Social Tagging and Ratings
One phenomenon on the Internet is social tagging and content rating. If you have ever used Delicious or Digg, then you've used a social tagging technology where you can search, sort, and filter by tag, track what other people are tagging, and obtain feeds on your tags related to your areas of interest. Combined with tagging, ratings help you understand the value of the content and can help filter out poor content based on other people's ratings. Both of these features are implemented in the 2010 release so that you can tag anything in SharePoint, whether it's content or people. Plus, you can rate all of your content, so if you want to find all Word documents rated with four or more stars, you can quickly search your site to find this information. There is a blurring of the line between social and Enterprise Content Management (ECM) areas, as you will see throughout this book. The two areas are converging, with social being the bottom-up technology driven by users and ECM being the top-down technology that helps with compliance in your social environment. Many of the features are shared between the two technological areas, especially tagging, where the social tag infrastructure, called folksonomies, are actually open term sets in a corporate taxonomy. Finally, as everyone always asks about this in regard to 2007: yes, SharePoint 2010 does ship with a Tag Cloud web part.
Excerpted from Professional SharePoint 2010 Development by Tom Rizzo Reza Alirezaei Jeff Fried Paul Swider Scot Hillier Kenneth Schaefer 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.