Click to Rate and Give Feedback
Related Articles
Here's a custom branding solution for SharePoint sites that integrates Master Pages and CSS files at the level of the site collection.

By Ted Pattison (July 2008)
Find out what's new for MSDN Magazine, including a print redesign and the introduction of virtual labs on our web site so you can experiment with our code.

By Howard Dierking (June 2008)
See how to build a document-level Visual Studio Tools for Office customization and integrate it with a content type in SharePoint.

By Steve Fox (May 2008)
Learn how to automate custom SharePoint application deployments, use the SharePoint API, and avoid the hassle of custom site definitions.

By E. Wilansky, P. Olszewski, and R. Sneddon (May 2008)
More ...
Articles by this Author
See how to use Word to capture a VBA macro and use Visual Studio Tools for Office to wrap it up into a deployable Word add-in.

By Robert Bogue (May 2008)
More ...
Popular Articles
We will introduce you to the Visual Studio Profiler by walking through a sample performance investigation, pinpointing code inefficiencies in some sample applications.

By Hari Pulapaka and Boris Vidolov (March 2008)
See how to build a document-level Visual Studio Tools for Office customization and integrate it with a content type in SharePoint.

By Steve Fox (May 2008)
James Kovacs explains the dark side of tightly coupled architectures, why they're hard to test and how they limit adaptation. He then proposes a number of solutions.

By James Kovacs (March 2008)
Animating with Silverlight is easier than you think. Here we create a 3D app that folds a polyhedron using XAML, C#, and by emulating the DirectX math libraries.

By Declan Brennan (April 2008)
More ...
Read the Blog
SQL Server Data Services (SSDS) is a robust, scale-free data service that internally uses proven SQL Server technology and exposes its functionality over industry standard Web service interfaces. In the July 2008 issue of MSDN Magazine, David Robinson introduces ...
Read more!
Windows Presentation Foundation (WPF) offers excellent support for managing the display and editing of complex data. In the December 2007 edition of MSDN Magazine, John Papa did a great job of explaining essential WPF data binding concepts. ...
Read more!
The most fundamental form of Web testing is HTTP request/response testing. This involves programmatically sending an HTTP request to the Web application, fetching the HTTP response, and examining the response for an expected value. In the May 2008 issue of MSDN Magazine, Read more!
In the November issue of MSDN Magazine, Jeffrey Richter demonstrates some recent additions to the C# programming language that make working with the APM significantly easier. In the June ...
Read more!
The July 2008 issue of MSDN Magazine is now available online. Here's what's in the issue: Data Services: Develop ...
Read more!
The June 2008 issue features the first installment of a new MSDN Magazine column on software design fundamentals. We’ll discuss design patterns and principles in a manner that isn't bound to a specific tool or lifecycle methodology. In this issue, Jeremy Miller starts the Patterns in Practice column ...
Read more!
More ...
{ End Bracket }
You Should Learn SharePoint
Robert Bogue


For a developer, there's never a shortage of material to learn. Whether you're exploring the backwoods of Sys- tem.DirectoryServices.Protocols, spending quality time with generics, or delving into the fine art of garbage collection, there is always something clamoring for your attention. So why should you make learning Microsoft® SharePoint® technologies a priority? Here are five good reasons:
  1. There are many SharePoint features that can easily be extended to your application. How about a set of navigation controls? SharePoint has it. Need to build a security system? SharePoint has it. You'll find that many things that aren't built into ASP.NET are built into SharePoint out of the box.
  2. We talk all the time about reusable software. Since the late 1980s, we've talked about reusability from the perspective of back-end components. However, in all this time, little has been done to improve reusability of elements in the user interface aside from basic common controls. SharePoint provides a framework for user interface components, Web Parts, that can be recomposed with different configurations and in different orders such that one Web Part can serve a multitude of needs. For instance, in SharePoint you can use the DataView Web Part and XML Web Parts to get data from numerous sources and display it. Using only a small number of built-in components, you can create a great number of solutions. When you add your own components and connect them to existing Web Parts, you create even more powerful solutions that can connect with existing systems while leveraging out-of-the-box functionality.
  3. Microsoft Office SharePoint Server (MOSS) contains a search engine that can be used to index and find information in your application. You don't have to write your own search engine. You've got a ready-made platform built right in—all you have to do is expose it. Users will get great relevancy and a friendly user interface that even allows them to be alerted when content changes.
  4. Every app is simple until that one requirement that makes it difficult. The invoicing system is straightforward until the users need to store images of the documents. The CRM system is easy until the user wants to attach spreadsheets. SharePoint offers a complete set of tools for managing documents accessible via the Web site, WebDAV, or directly from the Microsoft Office clients. Why build document support by hand when you can get it for free with your platform?
  5. Nearly every application today has some form of workflow included in it. Why code your own providers for the workflow service—including ways to interact with users—when you can get SharePoint to do the heavy lifting? SharePoint can manage the state of workflows through properties of the item or as properties of a task; either way, taking advantage of SharePoint support for the Windows® Workflow Foundation means less work for you.
However, the picture with SharePoint isn't all rosy. Here are a few of the hurdles:
Cumbersome Tools Whether you're bothered by the lack of F5 run support, the fact that SharePoint solutions must be developed on a server OS, or all of the hand coding of XML files, you'll agree that SharePoint development isn't as streamlined or "shiny" as developing for ASP.NET. Work on the Visual Studio® Extensions for Windows SharePoint Services and the VSTO work in the next version of Visual Studio, code-named "Orcas," isn't quite there yet either.
Cycle Time Because there's more going on, your "cycle time" (the amount of time between editing and testing code) is much longer. This can be a serious hit on your productivity.
Everything and the Kitchen Sink It seems like you get everything with SharePoint—and you'll have to learn quite a bit of it to create a solution. If you haven't picked up Master Page skills, you'll need to do so. If you don't quite understand the whole modular user interface through Web Parts or user controls, you'll need to learn that, too. If you're rusty on XML/XPath/XSLT, prepare for a crash course. SharePoint has a cornucopia of new terms to learn. This includes the capital F feature and the capital S solution, both of which have special meanings in SharePoint. You have a lot to learn even for a simple SharePoint solution.
SharePoint brings a great new way to build applications. It's not quite the leap from Windows Forms to Web Forms, but it's close. You've got a new level of infrastructure under you and a new set of great capabilities—if you can hang on for the ride.


Robert Bogue, Microsoft MVP for Microsoft Office SharePoint Server, MCSE, and MCSA:Security, has contributed to more than 100 book projects and numerous other publishing projects. Robert blogs at www.thorprojects.com/blog, and you can e-mail him at Rob.Bogue@thorprojects.com.

Page view tracker