{ 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.