Solution Package• What is a solution package? – A solution package is a distribution package that delivers your custom SharePoint Server 2010 development work to the Web servers or the application servers in your server farm. – Use solutions to package and deploy custom Features, site definitions, templates, layout pages, Web Parts, cascading style sheets, and assemblies.
Type of Solutions1- Sandboxed Solutions2- Farm Solutions
Sandboxed Solutions• Allowing site collection administrators to deploy solutions that are safe to run.• Deploying Solutions at Site Collection Level.• Some of the Limitations are – Can’t support visual web parts, because it contains a .ascx control that must be deployed to the “_layouts” directory and deploying controls isnt allowed in any directory in sandboxed solutions. – Upload the solution package to the Solution Gallery and activate it. – For Debugging sandbox solutions, attach the debugger to the sandboxed solution worker process, SPUCWorkerProcess.exe and debug it.
Farm Solutions• Theyre deployed by a farm administrator and are scoped to the farm level.• Also known as full trust solutions.• They have full trust access to all resources and functionality in SharePoint and, when deployed, require you to IISReset.• Solution should deployed on both WFE’s and Application Servers.
Deployment StepsFresh Deployment 1. Adding Solution (*.wsp file) Just add this solution to the SharePoint solution gallery (Site Collection/Farm Level) 2. Deploying Solution (*.wsp file) Placed all the files present in the solution package will be deployed to their respective places. User control files (.ascx) are copied to “%ProgramFiles%Common FilesMicrosoft Sharedweb server extensions14TEMPLATEControlTemplates” or a subfolder of it. Assemblies are deployed to the global assembly cache or to a web applications bin folder Features are copied to a subfolder of “%ProgramFiles%Common FilesMicrosoft Sharedweb server extensions14TEMPLATEFEATURES” and installed in the Feature Gallery of the farm, web application, site collection, or website, depending on the scope of the Feature 3. Activation the Features Activate the Features as required Features must be activated before they can be used.
Deployment StepsUpgrade Deployment Deploy Solution v/s Upgrade Solution Concept • Upgrade Solution If you rename the solution file or change the GUID, "upgradesolution" operation will fail with an error stating that a solution with name or GUID does not exists in solution store. But in case of “deploy solution” it will allow you to rename it. • Deploy Solution When you deploy a solution and then their associated features are also installed but thats not the case with "upgradesolution" operation. If you uninstall the features and then upgrade the solution, it will not install the features. But if you deploy the solution it will install the features again.
Deployment StepsUpgrade Deployment (Deploy Solution Technique) 1. Disable and Uninstall all the Features For the safe side you need to deactivate/disable the feature and then uninstall it . 2. Retracting Solution (*.wsp file) Retracted solutions are not removed from the farms solution store and can remain stored there in an un-deployed state indefinitely. It will uninstall all the features which exists in the solution package. 3. Deleting Solution Deleting the existing solution. 3. Adding Solution Adding the updated solution in to the SharePoint solution store. 3. Deploying Solution Deploying the newly added solution/package file. Will automatically installing the features and placed the files in to their respective places. 3. Activating Features Activate the newly installed features as required.
Deployment StepsUpgrade Deployment (Upgrade Solution Technique) 1. Upgrade Solution Package Just performs upgrade operations on the Solution/Package file.
Deployment StepsUpinstall Deployment 1. Disable and Uninstall all the Features You must first need to deactivate/disable all the features and then uninstall it. 2. Retracting Solution (*.wsp file) Retracted solutions are not removed from the farms solution store and can remain stored there in an un- deployed state indefinitely. It will uninstall all the features which exists in the solution package. 3. Deleting Solution Deleting the existing solution.
Deployment Approaches• Two types of Deployment Approaches. Use STSADM Command Line Tool Use Power Shell Commands
STSADM Command Line Tool• An .exe file “Stsadm.exe” resides in 14 hive Bin folder. Path: C:ProgramFilesCommonFilesMicrosoftSharedweb server extensions14BINstsadm.exe
STSADM Command Line ToolAdding Solutionstsadm.exe -o addsolution -filename "DummySharePointProject.wsp”* Perform Administrative CommandDeploying Solutionstsadm.exe -o deploysolution -name "DummySharePointProject.wsp" -allowGacDeployment -immediate –force* Perform Administrative Commandstsadm.exe -o deploysolution -name "DummySharePointProject.wsp" -allowGacDeployment -immediate -force –allcontenturls* Perform Administrative CommandNote: * Always perform this command after every command that need to run the administrative job.* stsadm.exe -o execadmsvcjobs
STSADM Command Line ToolRetracting Solutionstsadm.exe -o retractsolution -name "DummySharePointProject.wsp" -immediate* Perform Administrative Commandstsadm.exe -o retractsolution -name "DummySharePointProject.wsp" -allcontenturls -immediate* Perform Administrative CommandDeleting Solutionstsadm.exe -o deletesolution -name "DummySharePointProject.wsp"* Perform Administrative CommandNote: * Always perform this command after every command that need to run the administrative job.* stsadm.exe -o execadmsvcjobs
STSADM Command Line ToolDeactivate/Disable Featurestsadm.exe -o deactivatefeature -id [Feature ID] -url [TargetUrl] –forceActivate/Enable Featurestsadm.exe -o activatefeature -id [Feature ID] -url [TargetUrl] -force* [Feature ID] = Example: 4c9e8ca5-d893-42b8-a3b3-cae4b18bf133* [TargetUrl] = provide the site URL from where feature is going to disabled. http://mydummysiteserver:port/testsite
Power Shell CommandsMost Power full deployment toolHave large number of command supports (Getter/Setter) available for commandsCan code normal C# code inside power shell scriptCan execute our multiple commands through scripting logic