25
Deploying Code in SharePoint Presenter: Corey Roth Senior Consultant Stonebridge Blog: www.dotnetmafia.com

Deploying Code In SharePoint

Embed Size (px)

DESCRIPTION

How to deploy code in SharePoint. Given at SharePoint Saturday Kansas City - February 2009

Citation preview

Page 1: Deploying Code In SharePoint

Deploying Code in SharePoint

Presenter: Corey RothSenior ConsultantStonebridge

Blog: www.dotnetmafia.com

Page 2: Deploying Code In SharePoint

Corey Roth

Consultant for Stonebridge Worked in Consumer Electronics, Travel, Advertising,

and Energy industries Currently doing MOSS development specializing in

Enterprise Search, Workflow, and ECM Microsoft Award for Customer Excellence (ACE)

Winner E-mail: [email protected] Blog: www.dotnetmafia.com (mirrored on

sharepointblogs.com)

Page 3: Deploying Code In SharePoint

Challenges for New Developers

Learning the API Setting up the development environment Debugging

Page 4: Deploying Code In SharePoint

Deployment

Page 5: Deploying Code In SharePoint

12 Hive Location of most key SharePoint files: C:\

Program Files\Common Files\microsoft shared\Web Server Extensions\12

Folder Description

CONFIGContains partial trust configuration files

ISAPIBinaries and SharePoint Web Services

LOGSError Logs (look here first when you get a strange error)

TEMPLATE\CONTROLTEMPLATES User Controls

TEMPLATE\FEATURESSharePoint Features (turns functionality on and off)

TEMPLATE\IMAGES MainImages Folder

TEMPLATE\LAYOUTS Pages and Styles

Page 6: Deploying Code In SharePoint

12 Hive (Continued)

Folder Description

TEMPLATE\SiteTemplatesDefinitions avaiable for deploying new sites

TEMPLATE\THEMESUsed to create custom themes in SharePoint

TEMPLATE\XMLContains XSDs for any XML used with SharePoint

Page 7: Deploying Code In SharePoint

Deploying Binaries – Two Options

GAC Deployment – Not recommended unless absolutely necessary (i.e.: Event Recivers, Timer jobs, Workflows, etc). Requires application pool to be reset after every

deployment. Allows code to execute with full trust Acceptable for new developers starting out

because it is easier

Page 8: Deploying Code In SharePoint

Deploying Binaries – Two Options

Bin Folder Deployment – Recommended but more complex Requires a developer to specify code access

security settings or running SharePoint with full trust

Does not require application pool to be reset Recommended approach but more complicated

to implement

Page 9: Deploying Code In SharePoint

SafeControls

SharePoint won’t execute a web part or user control unless it knows it is safe

Declare an assembly and namespace safe in web.config

SafeControls element Can be automated using a solution package

(.wsp)

Page 10: Deploying Code In SharePoint

Deployment Options

Manually copy binaries, feature files, pages, and controls to appropriate folders on SharePoint server

Create a Feature – Would still have to manually copy files

Create a Solution Package (.wsp) – A cab file that contains a manifest telling SharePoint how to deploy files and what features to install

Page 11: Deploying Code In SharePoint

Ghetto Deployment (Manual)

Manually copy binaries to GAC or bin folder Manually upload .webpart files to web part

gallery Manually copy user controls to

CONTROLTEMPLATES folder Manually copy features files into FEATURES

folder Manually copy anything else that you might

need to deploy

Page 12: Deploying Code In SharePoint

Building and Deploying a Web Part

Deploys similarly to a user control .webpart (or .dwp) file tells SharePoint where

to find the web part’s code Use a feature to add the web part to the

gallery Complete instructions at my blog http://www.dotnetmafia.com/blogs/dotnettipo

ftheday/archive/2008/10/22/intro-to-sharepoint-development-how-to-build-and-deploy-a-web-part.aspx

Page 13: Deploying Code In SharePoint

Demo

Page 14: Deploying Code In SharePoint

Features

A series of XML files that allow you to make changes to SharePoint

Located in the TEMPLATE\FEATURES folder in the 12 hive

Changes can include creating lists, pages, content types, site columns, and web parts.

Can copy files into SharePoint’s virtual file repository but the template files still have to be deployed to the 12 hive first

Page 15: Deploying Code In SharePoint

Solution Packages (.wsp files)

A cab file that can copy binaries, features, pages, and other files to SharePoint.

Defined by manifest.xml and cab.ddf files Created with makecab.exe Can copy binaries to bin folder or GAC Can apply safe control and code access

security settings Automatically installs features Can also be upgraded and retracted /

deleted. Can be automated with VSeWSS,

WSPBuilder, stsdev, etc.

Page 16: Deploying Code In SharePoint

cab.ddf

Specifies which files to copy into the wsp file.

You must specify each binary, page, XML or .webpart file you want to be copied in this file

Syntax for each file is source <space> destination

The destination specified is the location in the file not the location on the SharePoint server.

Page 17: Deploying Code In SharePoint

Manfiest.xml

Specifies which features to activate and which files to copy into the 12 hive.

Can deploy SiteTemplates Specifies SafeControl settings in web.config Configures Code Access Security (CAS)

settings Paths are relative to the TEMPLATES folder

in the 12 hive http://www.dotnetmafia.com/blogs/dotnettipo

ftheday/archive/2008/09/04/more-on-manfiest-xml.aspx

Page 18: Deploying Code In SharePoint

Manfiest.xml Elements

FeatureManifests – Specifies feautres to activate TemplateFiles – Required for any file that you want

copied that is not a binary or feature file Assemblies – Required for each binary to be

deployed DeploymentTarget – WebAppplication or

GlobalAssemblyCache SafeControls – Adds SafeControl entry to

web.config CodeAccessSecurity – Applies CAS policies to

assembly

Page 19: Deploying Code In SharePoint

Deploying your solution (.wsp) file

1. Add the solution with stsadm stsadm –o addsolution –filename mysolution.wsp

2. Deploy the solution with stsadm or Central Admin -> Solution Management stsadm –o deplysolution –name mysolution.wsp –

immediate –allowGacDeployment –allowCasPolicies stsadm –o execadmsvcjobs

-o upgradesolution – Upgrades an existing solution’s files

-o retractsolution – Remove the solution from a given site(s)

-o deletesolution – Removes the solution from the solution store

Page 20: Deploying Code In SharePoint

Building a User Control with Visual Studio Web Application Project Reference Microsoft.SharePoint.dll Must be registered as safe for SharePoint to execute Typically deployed to bin folder using Code Access

Security Controls are typically deployed to the

CONTROLTEMPLATES folder in the 12 hive. _ControlTemplates Virtual Directory Complete instructions are on my blog http://www.dotnetmafia.com/blogs/dotnettipoftheday

/archive/2008/11/18/introduction-to-sharepoint-development-deploy-a-user-control-in-sharepoint.aspx

Page 21: Deploying Code In SharePoint

Demo

Page 22: Deploying Code In SharePoint

Demo

Page 23: Deploying Code In SharePoint

ReferencesDot Net Mafia Bloghttp://www.dotnetmafia.com

Visual Studio Extensions for SharePoint (VSeWSS 1.3) CTPhttps://connect.microsoft.com/site/sitehome.aspx?SiteID=428

STSDevhttp://www.codeplex.com/stsdev

SharePoint Blogshttp://www.sharepointblogs.com

WSPBuilderhttp://www.codeplex.com/wspbuilder

Page 24: Deploying Code In SharePoint

Questions?