View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
Chippewa Valley .NET User Group SharePoint Development A focus on WSS/MOSS as a development platform Ryan Oliveira Knowledge and Collaboration Service Line Manager Solutia Consulting Technology Enablement Services
Founded in 1997, Solutia Consulting helps clients develop customized software solutions to align with their business goals. We manage projects from requirements gathering through application development, with quality as our top priority. In 2007 Solutia created the Technology Enablement Practice focused on delivering technology solutions and best practices in support of its Management Consulting and Transformational Support practices. About Solutia Consulting
SharePoint is a HUGE space, including several product baselines and probable uses. Our focus today is on providing developers with background on how to approach building solutions on the SharePoint platform.
The assumption is that the audience includes developers generally familiar with Microsoft-related development practices and approaches and perhaps somewhat familiar with the SharePoint platform.
First, we’ll take a look at the SharePoint Product space
Then we’ll break up the types of progressive development efforts that developers might come across and dissect some examples of each
SharePoint Platform Overview
Windows SharePoint Server Windows SharePoint Services (WSS 3.0) is a free version of SharePoint focused on delivering the core SharePoint platform framework based on both the .NET and ASP.NET frameworks. Microsoft Office SharePoint Server Microsoft Office SharePoint Server 2007 is a multi-tiered licensed product meant to service corporate environments providing direct integration with Microsoft Office Products and provide extensive Content Management, Business Intelligence, Business Process Automation and Portal capabilities. There are both Standard and Enterprise licensing options. Microsoft SharePoint Online Released this summer, Microsoft Office Online offers the ability to host your SharePoint implementation within Microsoft’s Cloud Service (Software as a Service) implementation. Licensing is based on a per user basis and also includes implementations of Exchange, Live Meeting and Office Communicator (CRM soon as well). Offered in Shared and dedicated resourced environments, both provide capabilities more aligned to WSS. SharePoint Configuration/Development Options
Out of the Box SharePoint Basic features are typically implemented by individuals who are intended to have a direct relationship with the site, usually based on a well planned governance model establishing the types of capabilities the end user can leverage. This type of development typically involves working with Web Parts, Views and Document libraries. Back Office Development This level can be looked as ‘configuration development’. Tools such as Microsoft InfoPath and Microsoft Office SharePoint Designer, typically involve point-and-click type construction approach with a focus on understanding on leveraging tools to build and deploy Web Pages, Workflows, and Forms. Platform and Components customization This type of development is typically focused on leverage. Components developed in should typically be designed with reuse in mind across multiple sites. Efforts in this this space will typically require a software development lifecycle and should be avoided if solutions can be performed via previous development approaches. SharePoint Configuration/Development Options
Before we get too far! In most in medium to large companies there is a tendency to move quickly starting with OOB functionality letting a solution grow organically. A number of recommendations for your SharePoint team(s) before you move forward in developing any structured or unstructured effort.
Learn about your company’s Taxonomy Plan . How is information organized?
Ask about your company’s Governance Plan ; How are people expected to use SP?
Ask about existing features and solutions that may have already been developed by others; no need to reinvent the wheel
Get to know the Web Parts There are a number of key web parts to get to know such that can save a ton of time and effort. Here’s a couple:
Content By Query Web Part : Very key to query and aggregate content from multiple sites within a given site collection. Can be used in combination with effective taxonomy planning to build . By far the most powerful OOB web part.
Form Web Part: The Form web part allows you to insert ASP.NET supported scripting into the event lifecycle of an ASP.NET page.
NOTE: There’s a whole industry of web part developers out there who are focused on developing web parts to be ‘plugged-in’ to SharePoint.
Use the Power of Site Content Types and Site Columns
Site Content Types : Allow for extension metadata model for core SP elements such as Document, Item, Event, Person, etc. to allow for business specific needs at given points in your site implementation. Allows for specific behavior to be managed (Workflows, Policies, Security, etc.)
Site Column: A site column can hold the definition for a given data entity and be implemented across an entire Site Collection. For example, A Lookup-type Site Column could point to the valid list of a company’s Stores, Branches, etc. This can avoid the need for such as list to be re-invented/implemented several times across the entire organization.
Much like how Visual Basic became a design ‘game changer’ in the 1990’s allowing for rapid prototyping and solution framing, so too can SharePoint.
Encourage your business analyst community to work in out of the box SharePoint in developing customer prototypes
Note, this type of activity is best suited for somewhat technically adept personnel (termed Information Workers); this may not be for everybody
More likely be a tendency to stay ‘in-the-box’ rather than designing towards not well suited for a MOSS implementation (i.e. A highly customized application).
Caution: SharePoint is a framework for development, and attempts to leverage a universal user interface approach to management of its elements (Documents, Items, etc). Breaking away from this approach (ie custom UI) will cause significant development headaches, and an ASP.NET platform application may be a better choice. Understanding this before a platform decision is made is very key !
SPD 2007 is a web development tool designed exclusively for users of SharePoint
Complete rewrite of MS FrontPage; written into two products, namely SPD for SharePoint Users and Expressions Web for non-SP users.
SPD 2007 is version 1.0 of the product
Management of raw ASP.NET Page content
Ability to restructure page content Web Part Zones
Ability to leverage the Data View Part
Platform and Components customization This type of development is typically focused on leverage. Components developed in should typically be designed with reuse in mind across multiple sites. Efforts in this this space will typically require a software development lifecycle and should be avoided if solutions can be performed via previous development approaches.
When looking at working with customizations, there is a marriage of sorts of traditional web development skills as well as core programming skills required when working with tools that allow you to customize SharePoint. They fall into two categories:
Represents a collection of sites in a Web application, including a top-level Web site and all its subsites. Each SPSite object, or site collection, is represented within an SPSiteCollection object that consists of the collection of all site collections in the Web application.
A Feature is a container of various defined extensions for SharePoint.
It is a set of XML files deployed to web front ends, that can be either
bundled in site definitions
individually turned on in SharePoint sites
Features have scope and can be associated to Farms, Webs, or Sites
What’s a SharePoint Solution?
A Solution is a deployment container for various types of SharePoint customizations
Uses is housed in a .WSP file format but is structured as a cabinet file format (.cab)
It is a recommended form of deployment for customizations, because it has the capability to be deployed, upgraded, and even retracted by the administration team.
What is Feature Stapling?
Feature stapling causes the attachment of a Feature to all new instances of sites that use a given site definition, without modifying the site definition or creating code routines to activate the Feature on each site.
What is Feature Event Receiver?
Specifies a server-side code routine that is called as part of four key events in the lifetime of a Feature: installation, activation, deactivation, and removal. Great for intiation and cleanup activities.
SharePoint Professional Development
Anatomy of a Solution (WSP) Solution Assembly (<Solution>.dll) The solution’s code will be built into an assembly file which will need to be deployed to the GAC (or /bin) of every SharePoint WFE in the farm Manifest.xml This file is required to describe the package attributes including the location of the required binaries and other reference files such as the feature.xml file as well as the instructions as to where to install certain components Feature.xml Describes the properties of the feature you wish to deploy and how you wish to deploy said features, including definition of any assemblies, dependencies, or other properties that might support the files. SharePoint Professional Development
SharePoint has huge development breadth and capabilities
Progressive Platform, designed to ‘right fit’ a solution, use right tools for the right job
Able to provide significant capabilities within and beyond your organization
Able to provide a quick ASP.NET application framework on which to stand up your development solutions.
In some cases, poor administrative planning, taxonomy and governance approaches give the platform a less than desirable appeal to users
Integration points, Microsoft integrated back office platforms will find a minimal level of ease in using SharePoint, less so if
Learn more about… MOSS 2007 VHD (Virtual PC) http://www.microsoft.com/downloads/details.aspx?FamilyID=67f93dcb-ada8-4db5-a47b-df17e14b2c74&displaylang=en SharePoint Development Team Blog http://blogs.msdn.com/sharepoint SharePoint Designer Team Blog http://blogs.msdn.com/sharepointdesigner CodePlex Smart Templates http://www.codeplex.com/smarttemplates SharePoint Products and Technologies Customization Best Practices http://msdn.microsoft.com/en-us/library/bb861954.aspx References Ryan Oliveira Solutia Consulting SharePoint Service Line Manager email: email@example.com