cvnug - share point development

34
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

Upload: ryanaoliveira

Post on 03-Dec-2014

2.949 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: CVNUG - Share Point Development

Chippewa Valley .NET User Group

SharePoint Development A focus on WSS/MOSS as a development platform

Ryan OliveiraKnowledge and Collaboration

Service Line Manager

Solutia ConsultingTechnology Enablement

Services

Page 2: CVNUG - Share Point Development

Today’s Agenda

Greetings and Introduction

Platform Overview SharePoint Product & Feature OverviewSharePoint Platform Overview

BackOffice Development ConsiderationsLooking at the Office Development PlatformOffice Developer Toolkit (SharePoint Designer,

InfoPath)

Professional Development Considerations

WSS/MOSS SDK OverviewWeb Part Framework OverviewFeature and Solution Deployment Overview

Final Thoughts

Questions and Answers

Page 3: CVNUG - Share Point Development

Greetings and Introductions

Page 4: CVNUG - Share Point Development

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

Page 5: CVNUG - Share Point Development

SharePoint Platform Overview

Page 6: CVNUG - Share Point Development

SharePoint Platform Overview

Scale • 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.

Context• 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.

Approach• 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

Page 7: CVNUG - Share Point Development

SharePoint Configuration/Development OptionsWindows SharePoint ServerWindows 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 ServerMicrosoft 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 OnlineReleased 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.

Page 8: CVNUG - Share Point Development

SharePoint Logical Architecture Overview

Page 9: CVNUG - Share Point Development

SharePoint Configuration/Development OptionsOut 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 DevelopmentThis 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 customizationThis 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.

Page 10: CVNUG - Share Point Development

Out of the Box SharePoint Capabilities

Page 11: CVNUG - Share Point Development

Out of the Box SharePoint Capabilities

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

Remember, Information is Power!

Page 12: CVNUG - Share Point Development

Out of the Box SharePoint Capabilities

Get to know the Web PartsThere 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.

Page 13: CVNUG - Share Point Development

Out of the Box SharePoint Capabilities

Use MOSS as a Prototyping ToolEmpower your Technical Business Analysts

• 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!

Page 14: CVNUG - Share Point Development

Back OfficeDevelopment Capabilities

Page 15: CVNUG - Share Point Development

Back Office Development Capabilities

Types of activities done supported by the Back Office Developer

A back office developer can be an incredible assert when he/she has a good understanding of SharePoint OOB Web parts and is adept in using SharePoint Designer 2007 and MS InfoPath 2007

• Develop Simple-Medium complexity document workflows

• Update the look and feel of a given SharePoint site adding Web Part Zone

• Ability to create and integrate Business Data Catalog Application components into an Operations-type site.

• Add ‘Live’ Business Intelligence components to Dashboard environments leveraging Microsoft Excel Services.

• Ability to integrate the Data View web Part into key site components (and possibly use some XSL)

Page 16: CVNUG - Share Point Development

Microsoft Office InfoPath 2007

Overview• InfoPath 2007 is Forms development tool• Forms can run inside on the InfoPath client desktop or within a browser hosted via MOSS InfoPath Forms Services• Provides powerful capabilities for empowering streamlined back office communication supported by Information Workers.

Features• Ability to submit data to SharePoint Forms Libraries, SQL Data Sources, and Web Services• Ability to start be the data capture point for complex workflows• Forms can replace out of the box NewForm.aspx functionality for more complex data entry.• Ability to leverage Microsoft Visual Studio Tools for Office 2007 providing unlimited code-behind capabilities (VB.NET and C#.NET)• Support for digital signatures• Support for interaction with SharePoint’s web services.

Page 17: CVNUG - Share Point Development

Microsoft OfficeInfoPath 2007Building a Form Demo

Page 18: CVNUG - Share Point Development

Microsoft Office InfoPath Demo

What did we learn?• Understand if Forms Services is an option and limitations in publishing

• No Filtering of secondary data sources• No Rich Text Controls• Special deployment for certain forms requiring elevated security

• Keep things it simple – design with change in mind• Remember to manage expectations around keeping rules simple enough for the condition/action model

What to consider?• Remember, forms are managed as documents. Adding new features and republishing will not update forms already created• It’s OK to manage state in an InfoPath Form, but remember logic can get complicated quickly.

Page 19: CVNUG - Share Point Development

SharePoint Designer (SPD) 2007

Overview• 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

Features• 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 customizationThis 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.

Page 20: CVNUG - Share Point Development

Microsoft SharePoint Designer 2007Building a Workflow Demo

Page 21: CVNUG - Share Point Development

SharePoint Designer Demo

What did we learn?• SPD can save time in implementing process automation quickly.• Data View Web Part (combined with some XSL background) can be an important asset• SPD can help you create and manage key site components• SPD can allow you to customize and reset page customizations• Allows you to manage key style items

What to consider?• Good design is important even in a quick automation model.• Workflows are not easily moved around (redeployed) using SharePoint designer• In working with a branded site, have a good understanding of your visual design goals and site plan.

Page 22: CVNUG - Share Point Development

ProfessionalDevelopment Capabilities

Page 23: CVNUG - Share Point Development

Development and Customization Types

There are almost limitless possibilitiesWhen 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:

Web Development customization• Development of New Site Definitions• Site automation & Feature Stapling• Data View Web Part (Advanced)

Component Development customization• Custom Web Parts• Custom Workflows• Custom Controls• Custom Tasks• Features and Solutions• more…

Page 24: CVNUG - Share Point Development

Development and Customization Types

SPSite (Microsoft.SharePoint)http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spsite.aspxRepresents 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.

SPWeb (Microsoft.SharePoint)http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.aspxRepresents a Windows SharePoint Services Web site.

SPList (Microsoft.SharePoint)http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.splist.aspxRepresents a List in a WSS site.

SPQuery (Microsoft.SharePoint)http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.aspxRepresents a query in a list view.

Page 25: CVNUG - Share Point Development

MOSS Simple Query Example

This example displays the titles of items in a Tasks list where the Status column equals Completed.

using (SPWeb oWebsiteRoot = SPContext.Current.Site.RootWeb){

SPList oList = oWebsiteRoot.Lists["Tasks"];

SPQuery oQuery = new SPQuery(); oQuery.Query = "<Where><Eq><FieldRef Name='Status'/>" + "<Value Type='Text'>Completed</Value></Eq></Where>"; SPListItemCollection collListItems = oList.GetItems(oQuery);

foreach (SPListItem oListItem in collListItems) { Response.Write(SPEncode.HtmlEncode(oListItem["Title"].ToString()) + "<BR>"); }}

Page 26: CVNUG - Share Point Development

SharePoint Professional Development

Configuring your development environment:

Install of MOSS onto XP/Vista is not supported. Bamboo Solutions offers a quick solution to run MOSS locally on Vista [+]

SharePoint Developers are used to doing MOSS development using VPC or a Live developent site.

Key items to the development of a sound MOSS development environment.

- Download and install the MOSS VHD hosted on microsoft.com- Microsoft Visual Studio 2008- Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions- Visual Studio Tools for Microsoft Office 3.0 (VSTO 3.0) - WSS 3.0 SDK and/or MOSS 2007 SDK onto the development machine-CodePlex Smart Templates for Visual Studio 2008

Page 27: CVNUG - Share Point Development

SharePoint Professional Development

Configuring your development environment:

Install of MOSS onto XP/Vista is not supported. Bamboo Solutions offers a quick solution to run MOSS locally on Vista [+]

SharePoint Developers are used to doing MOSS development using VPC or a Live developent site.

Key items to the development of a sound MOSS development environment.

- Download and install the MOSS VHD hosted on microsoft.com- Microsoft Visual Studio 2008- Windows SharePoint Services 3.0 Tools: Visual Studio 2008 Extensions- Visual Studio Tools for Microsoft Office 3.0 (VSTO 3.0) - WSS 3.0 SDK and/or MOSS 2007 SDK onto the development machine-CodePlex Smart Templates for Visual Studio 2008

Page 28: CVNUG - Share Point Development

Building a Custom Web Part

Page 29: CVNUG - Share Point Development

SharePoint Professional Development

Features, Solutions and More

What’s a SharePoint Feature?• 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

a) bundled in site definitionsb) 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.

Page 30: CVNUG - Share Point Development

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.xmlThis 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.xmlDescribes 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.

Page 31: CVNUG - Share Point Development

Final Thoughts

Strengths:- 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.

Drawbacks:- 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

Page 32: CVNUG - Share Point Development

References

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 Bloghttp://blogs.msdn.com/sharepoint

SharePoint Designer Team Bloghttp://blogs.msdn.com/sharepointdesigner

CodePlex Smart Templateshttp://www.codeplex.com/smarttemplates

SharePoint Products and Technologies Customization Best Practiceshttp://msdn.microsoft.com/en-us/library/bb861954.aspx

Ryan OliveiraSolutia ConsultingSharePoint Service Line Manageremail: [email protected]

Page 33: CVNUG - Share Point Development

Questions & Answers

Page 34: CVNUG - Share Point Development

34

Thank You