Pro SharePoint Solution Development: Combining .NET, SharePoint and Office 2007

New SharePoint 2007 Book:  

Pro SharePoint Solution Development:Combining .NET, SharePoint, and Office 2007


Overview and Goals for the Book

First and foremost, this is a book for developers. It is a book about solving common problems of information workers by extending the foundation of Office 2007 and Microsoft Office SharePoint Server 2007. After a few chapters of introductory material, for those that are either new to these tools or are not aware of what has changed with the new releases, every other chapter is a self contained problem/solution. It is not a reference book that teaches you the basics about Office or SharePoint. And our solutions are development projects, not a simple application of out-of-the-box features. The chapters explore a variety of development techniques with these technologies focusing on how they can be combined to meet a business challenge. In these solutions you will find: custom web parts, Office add-ins, SharePoint features, workflow, the Business Data Catalog, Outlook form regions, and solutions that leverage the Office Open XML file format. And that isn't a complete list.

We set out to create a book that we would want to buy. After the background knowledge, you can read any chapter in any order. Each chapter is its own development project that doesn't rely on code from a previous chapter. Each solution chapter has the same outline of stating the problem, examples of the problem in the real world, a solution overview, a solution walkthrough, extension points, and links to further reading materials. All of the code for the solutions will be available through Apress' site. We developed the solutions in VB.NET. Though we usually code in C# and the solutions could have been built that way, VB.NET's support for optional parameters makes the Office interop code much easier to read.

I'll be positing on this blog longer previews of some of the solutions in the chapter. But first thought I would start with the simple table of contents. We are now done and the book is at the printer. Should be out mid-May. Of course if you like what you see, you can always pre-order. The book is already listed on

Table of Contents

Chapter 1: Office Business Applications

In the Introduction, we set the stage for why this type of solution development is important for developers. We focus on the changing workforce and its familiarity with Office as a desktop tool. We discuss the history of these types of solutions, the various patterns, and setup the scenarios for the solutions in the book.

Chapter 2: SharePoint Products and Technologies: Overview and New Features

This chapter provides an overview for developers of Windows SharePoint Services v3 and Microsoft Office SharePoint Server 2007. We focus on repository enhancements, new features, and functionality that you want to take advantage of your solutions. For those new to SharePoint this provides a nice start with links to more reading material. For those with some exposure to SharePoint, it draws focus on the major enhancements in the new release.

Chapter 3: Microsoft Office 2007 Overview for Developers

This chapter reviews features in the Office desktop tools that we will be leveraging in the solutions. An overview of Office add-ins, XML schema support, the new ribbon interface, and the Open XML file format are just a few topics covered here.

Chapter 4: Visual Studio Tools for Office

As the last of the introductory chapters, Chapter 4 focuses on Visual Studio Tools for Office 2005 SE. These tools extend the Visual Studio development environment to support Office development. Many of our solutions leverage Office for its user interface layer, so this chapter provides an overview of the types of projects and items in VSTO that will make Office development easier.

Chapter 5: Maintaining Offline List Content from Multiple Sites

This chapter address the scenario where a user is faced with the burden of maintaining the same type of content across many SharePoint sites. Instead of making the user go to each site to make edits, we consolidate the content into an Excel smart document. This enables the user to maintain all of the content in a single worksheet and even while they are in an offline state. The solution then includes a synchronization process for the user's changes into the respective SharePoint sites.

Chapter 6: Integrating Spreadsheets into the Enterprise

This chapter highlights Microsoft Office SharePoint Server's Excel Services. The premise of the chapter is that business users often use spreadsheets to maintain calculations, yet these files are usually not integrated into the enterprise. This chapter will show developers how they can extend Excel and Excel Services with User-Defined Functions. These functions are methods of a .NET class that present themselves as native functions in Excel. This way, the spreadsheet can connect with other line of business applications in the enterprise such as databases or web services or include complex calculations that are not available in Excel. The spreadsheet is then published to Excel Services where it is rendered in a thin-client, browser interface. Of course, the business user can still tweak the calculations even after the publish. Lastly, we show how developers can reuse the calculation logic in a published spreadsheet in their own custom applications by leveraging Excel Services' web service.  

Chapter 7: Merging SharePoint List Data into Word Documents

The solution in this chapter is a lot like a new type of mail merge. Instead of merging database or Excel data into a document, the source of the data will come from SharePoint. This chapter details a solution that provides users with the ability to serialize a SharePoint contact list item into a Word document. This event happens server-side and leverages the new Open XML file format's support for custom XML parts. This feature allows us to store the list item within the file. Once the contact data is placed there, Word content controls surface it into the document.

Chapter 8: Working Collaboratively with Document Fragments

Every customer that we show the new slide libraries feature to loves it. The idea of splitting a PowerPoint presentation into individual files for each slide, allowing users to edit them simultaneously, and then merging them back is extremely efficient. The customer then usually asks if the same can be done with documents. Well this chapter includes such a solution. Simply attach a schema to a document in a library and highlight each section. Then choose an action to have the file split into individual section files in a new library. Users can then work on each section independently and merge the results back to the original (or new) location.

Chapter 9: Extending PowerPoint to Build a Presentation Based on Site Content

The solution in this chapter details how to provide the user with a tool in PowerPoint that enables them to pull SharePoint site content and automatically create slides in their presentation. In terms of development, you get exposed to creating a wizard process in the task pane, interaction with the ribbon, and details on how to work with SharePoint's web services for getting the data.

Chapter 10: Building a Presentation Server-side within a Web Part

This chapter takes a different approach to a similar problem to the one in Chapter 9. Instead of providing the user with a tool, this solution automates the generation of the entire presentation. Using the Open XML file format, it combines site content with a blank PowerPoint template stored in the site. All from a SharePoint web part.

Chapter 11: Working with Email Messages and SharePoint

This chapter focuses of providing users with a way to easily get emails and their attachments into SharePoint libraries. It features an Outlook add-in, ribbon integration, and shows how to play nice with Outlook's many inspectors. It also shows how to interact with SharePoint's web services and how to use FrontPage RPC calls to upload documents into the site.

Chapter 12: Surfacing Data from Line of Business Applications

The Business Data Catalog within MOSS supports the integration of custom applications into SharePoint through a XML application definition file. In this chapter, we take a sample application and detail how to register it with the BDC. Of course we don't stop there as other applications should be able to leverage MOSS' knowledge of the application. So we show you how to write a custom SharePoint web service that exposes the BDC object model so that MOSS can return the custom app's data to other systems. Our other system is a Outlook form region that extends the default contacts form.

Chapter 13: Taking InfoPath Forms to the Web

In this chapter, we will show you how the Form Services functionality of Microsoft Office SharePoint Server enables you to take InfoPath designed forms and present them to a user in a browser only interface. We will also tackle strategies for incorporating these forms into the enterprise such as how to connect to data sources, security implications, and how to host the forms in your own application. In addition, there is a really nice web part that hosts the Forms Server control allowing you to preview a InfoPath form instance without going to another page. 

Chapter 14: Incorporating Workflow into Forms Processing

This chapter show how SharePoint's workflow can be leveraged to add ad-hoc workflow capabilities into a electronic forms processing strategy. It goes into detail on how to build a custom workflow with Visual Studio and how to leverage custom InfoPath forms to interact with users throughout the workflow process. We should you best practices around error handling, how to invoke web services from within the workflow, and how to make decisions based on user input in the form.

Chapter 15: Realizing the Vision

This chapter wraps every thing up and provides some thoughts on the direction of solutions like the ones presented in this book. We discuss why these solutions are important and how to determine if they are the right fit for your own application. Plus we look to the future and see that even more support for developing on Office is coming. From great tools like SharePoint Solution Generator, WSS Extensions for VS.NET, and the Enterprise Content Management Toolkit... to the promises of VSTO "Orcas", LOBi for MOSS 2007, and even the licensing of the Office UI.