SlideShare uma empresa Scribd logo
1 de 80
So what is a SharePoint
      Solution?
So what is a SharePoint
      Solution?
So what is a SharePoint
           Solution?
-It’s a Cabinet File with the extension .WSP
So what is a SharePoint
           Solution?
-It’s a Cabinet File with the extension .WSP
-It installs STUFF in the hive
So what is a SharePoint
           Solution?
-It’s a Cabinet File with the extension .WSP
-It installs STUFF in the hive
-it can install assemblies in the bin fldr or gac
So what is a SharePoint
           Solution?
-It’s a Cabinet File with the extension .WSP
-It installs STUFF in the hive
-it can install assemblies in the bin fldr or gac
-It can install feature definitions/site definitions
So what is a SharePoint
           Solution?
-It’s a Cabinet File with the extension .WSP
-It installs STUFF in the hive
-it can install assemblies in the bin fldr or gac
-It can install feature definitions/site definitions
-It can install class resources
So what is a SharePoint
           Solution?
-It’s a Cabinet File with the extension .WSP
-It installs STUFF in the hive
-it can install assemblies in the bin fldr or gac
-It can install feature definitions/site definitions
-It can install class resources
-It can install web part packages
So what is a SharePoint
             Solution?
  -It’s a Cabinet File with the extension .WSP
  -It installs STUFF in the hive
  -it can install assemblies in the bin fldr or gac
 -It can install feature definitions/site definitions
  -It can install class resources
  -It can install web part packages


zomg! then why doesn’t everyone use it?
So What Just
 Happened?
So What Just
               Happened?
Solution was added to farm (Via StsAdm in this case)
 Manifest Examined, Features extracted to:
       [Hive]TemplateFeatures[foo]
So What Just
               Happened?
Solution was added to farm (Via StsAdm in this case)
 Manifest Examined, Features extracted to:
       [Hive]TemplateFeatures[foo]

Solution Gets Deployed via timer jobs - global items
go into hive, items for apps provisioned out to wfes
etc.
So What Just
               Happened?
Solution was added to farm (Via StsAdm in this case)
 Manifest Examined, Features extracted to:
       [Hive]TemplateFeatures[foo]

Solution Gets Deployed via timer jobs - global items
go into hive, items for apps provisioned out to wfes
etc.

Features then available and activating them provisions
the items specified in the feature elements file.
The Anatomy of a Solution




<?xml version="1.0"?>
<Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f"
          xmlns="http://schemas.microsoft.com/sharepoint/">
  <Assemblies>
    <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" />
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" />
  </TemplateFiles>
</Solution>
The Anatomy of a Solution
Manifest.xml




<?xml version="1.0"?>
<Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f"
          xmlns="http://schemas.microsoft.com/sharepoint/">
  <Assemblies>
    <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" />
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" />
  </TemplateFiles>
</Solution>
The Anatomy of a Solution
Manifest.xml
    Set’s the solution ID which is a GUID




<?xml version="1.0"?>
<Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f"
          xmlns="http://schemas.microsoft.com/sharepoint/">
  <Assemblies>
    <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" />
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" />
  </TemplateFiles>
</Solution>
The Anatomy of a Solution
Manifest.xml
    Set’s the solution ID which is a GUID
         Installs Assemblies, GAC or Local



<?xml version="1.0"?>
<Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f"
          xmlns="http://schemas.microsoft.com/sharepoint/">
  <Assemblies>
    <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" />
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" />
  </TemplateFiles>
</Solution>
The Anatomy of a Solution
Manifest.xml
    Set’s the solution ID which is a GUID
         Installs Assemblies, GAC or Local
         Installs HIve files


<?xml version="1.0"?>
<Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f"
          xmlns="http://schemas.microsoft.com/sharepoint/">
  <Assemblies>
    <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" />
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" />
  </TemplateFiles>
</Solution>
The Anatomy of a Solution
Manifest.xml
    Set’s the solution ID which is a GUID
         Installs Assemblies, GAC or Local
         Installs HIve files
         includes feature.xml feature defs
<?xml version="1.0"?>
<Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f"
          xmlns="http://schemas.microsoft.com/sharepoint/">
  <Assemblies>
    <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" />
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" />
  </TemplateFiles>
</Solution>
The Anatomy of a Solution
Manifest.xml
    Set’s the solution ID which is a GUID
         Installs Assemblies, GAC or Local
         Installs HIve files
         includes feature.xml feature defs
<?xml version="1.0"?>
<Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f"
          xmlns="http://schemas.microsoft.com/sharepoint/">


         CAML!? CAML! YUK!
  <Assemblies>
    <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" />
  </Assemblies>
  <TemplateFiles>
    <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" />
  </TemplateFiles>
</Solution>
bing it FTW!
Getting Intellisense in VS makes it easy-peasy-
                 lemon-squeezy!
FeatureManifest




<FeatureManifests>
  <!--This Reference is relative to the Location in YOUR CAB!! -->
  <FeatureManifest Location="MyFirstFeatureFeature.xml"/>
  <FeatureManifest Location="MySecondFeatureFeature.xml"/>
</FeatureManifests>
FeatureManifest
     Includes Child Feature Manifest CAML Files




<FeatureManifests>
  <!--This Reference is relative to the Location in YOUR CAB!! -->
  <FeatureManifest Location="MyFirstFeatureFeature.xml"/>
  <FeatureManifest Location="MySecondFeatureFeature.xml"/>
</FeatureManifests>
FeatureManifest
     Includes Child Feature Manifest CAML Files
     Location is relative to root of your solution
     CAbinet file




<FeatureManifests>
  <!--This Reference is relative to the Location in YOUR CAB!! -->
  <FeatureManifest Location="MyFirstFeatureFeature.xml"/>
  <FeatureManifest Location="MySecondFeatureFeature.xml"/>
</FeatureManifests>
FeatureManifest
     Includes Child Feature Manifest CAML Files
     Location is relative to root of your solution
     CAbinet file

     basically copies the manifest to hive and includes
     the files defined in the feature caml (more later..)


<FeatureManifests>
  <!--This Reference is relative to the Location in YOUR CAB!! -->
  <FeatureManifest Location="MyFirstFeatureFeature.xml"/>
  <FeatureManifest Location="MySecondFeatureFeature.xml"/>
</FeatureManifests>
The Assemblies Region
Processes when solution is deployed
adds your assemblies to local bin or GAC
allows you to specify safe control types
The
ApplicationResources
The
  ApplicationResources
Again - ‘Cause it’s in the Manifest it processes
when solution is deployed
The
  ApplicationResources
Again - ‘Cause it’s in the Manifest it processes
when solution is deployed
Places files in the Resources DIR of the root IIS
folder of deployed web applications
The TemplateFiles Region
Do I need to mention it again?
Copies Files into the HIVE Under the
Template directory
The RootFiles Region
The RootFiles Region
Copies files to a location off the root HIVE
The RootFiles Region
Copies files to a location off the root HIVE

Really the best place to put global web
services, etc.
DwpFiles Region




<DwpFiles>
    <DwpFile Location="MyNonFeatureWebPart.webpart" />
  </DwpFiles>
DwpFiles Region
Copies Featureless WebPart Definitions to
Web Applications (Huh?)




<DwpFiles>
    <DwpFile Location="MyNonFeatureWebPart.webpart" />
  </DwpFiles>
DwpFiles Region
Copies Featureless WebPart Definitions to
Web Applications (Huh?)
Supports either v2 (.DWP) or V3 (.webpart)
definition files


<DwpFiles>
    <DwpFile Location="MyNonFeatureWebPart.webpart" />
  </DwpFiles>
Quick-Tip Manifest
                        Location Summary
Assemblies
The parameter DeploymentTarget determines whether to deploy the assembly to the GAC or to a directory (WebApplication).
With the GAC option assemblies are copied to C:WINDOWSassembly. With the WebApplication option the files are copied to
C:InetpubwwwrootwssVirtualDirectories80bin.
Features: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURES
TemplateFiles: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATE
Application Resources: C:InetpubwwwrootwssVirtualDirectories{virtual app port}resources
Global resources: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURES
Web Parts: C:InetpubwwwrootwssVirtualDirectories80wpcatalog
Site definitions
The SiteDefinitionManifests list contains descriptions of all site definition folders. The Location attribute defines the name of the
folder that contains the site definition. This folder contains the ONET.xml and other components of the site definition.
Target Folder: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESiteTemplates
The Feature Files
if you thought the manifest was complicated...
The real meat of a feature
The real meat of a feature


The Element Manifest - or more aptly put the
  SharePoint CAML definitions of what the
               feature does.
  <ElementManifests>
      <ElementManifest Location="MySiteColumns.xml"/>
      <ElementManifest Location="MyContentTypes.xml"/>
      <ElementManifest Location="MyListDefs.xml"/>
      <ElementManifest Location="MyListInstances.xml"/>
      <ElementManifest Location="ICouldGoOnandOn.xml"/>
    </ElementManifests>
The basic CAML
   elements
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
  <ListInstance></ListInstance>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
  <ListInstance></ListInstance>
  <ListTemplate></ListTemplate>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
  <ListInstance></ListInstance>
  <ListTemplate></ListTemplate>
  <Module></Module>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
  <ListInstance></ListInstance>
  <ListTemplate></ListTemplate>
  <Module></Module>
  <Receivers></Receivers>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
  <ListInstance></ListInstance>
  <ListTemplate></ListTemplate>
  <Module></Module>
  <Receivers></Receivers>
  <UserMigrator/>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
  <ListInstance></ListInstance>
  <ListTemplate></ListTemplate>
  <Module></Module>
  <Receivers></Receivers>
  <UserMigrator/>
  <Workflow></Workflow>
The basic CAML
            elements
<?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <ContentType></ContentType>
  <ContentTypeBinding/>
  <HideCustomAction/>
  <Control></Control>
  <CustomAction></CustomAction>
  <CustomActionGroup></CustomActionGroup>
  <DocumentConverter/>
  <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  <Field></Field>
  <ListInstance></ListInstance>
  <ListTemplate></ListTemplate>
  <Module></Module>
  <Receivers></Receivers>
  <UserMigrator/>
  <Workflow></Workflow>
</Elements>
Now that I’ve pulled
out your fingernails...
Now that I’ve pulled
out your fingernails...

         If there’s
       anyone left
       in the room
Now that I’ve pulled
   out your fingernails...

                 If there’s
               anyone left
               in the room


Let’s look at the ways to reduce the level of
                   effort!
DEMO
Thanks for spending your
valuable Saturday with us!
     http://gscottsingleton.com
     scott@gscottsingleton.com
     twitter: @scottsingleton
http://shareclave.org

Mais conteúdo relacionado

Mais procurados

Drupal 8 deploying
Drupal 8 deployingDrupal 8 deploying
Drupal 8 deployingAndrew Siz
 
Going Beyond LAMP Again - Manchester WordPress User Group
Going Beyond LAMP Again - Manchester WordPress User GroupGoing Beyond LAMP Again - Manchester WordPress User Group
Going Beyond LAMP Again - Manchester WordPress User GroupTim Nash
 
Drupal 8 CMI on a Managed Workflow
Drupal 8 CMI on a Managed WorkflowDrupal 8 CMI on a Managed Workflow
Drupal 8 CMI on a Managed WorkflowPantheon
 
Getting to Know MySQL Enterprise Monitor
Getting to Know MySQL Enterprise MonitorGetting to Know MySQL Enterprise Monitor
Getting to Know MySQL Enterprise MonitorMark Leith
 
WordPress Plugin development
WordPress Plugin developmentWordPress Plugin development
WordPress Plugin developmentMostafa Soufi
 
Automating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondAutomating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondNuvole
 
Advanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionalsAdvanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionalsAndrejs Vorobjovs
 
Extending MySQL Enterprise Monitor
Extending MySQL Enterprise MonitorExtending MySQL Enterprise Monitor
Extending MySQL Enterprise MonitorMark Leith
 
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...Jeff Kayser
 
Getting to The Loop - London Wordpress Meetup July 28th
Getting to The Loop - London Wordpress Meetup  July 28thGetting to The Loop - London Wordpress Meetup  July 28th
Getting to The Loop - London Wordpress Meetup July 28thChris Adams
 

Mais procurados (11)

Drupal 8 deploying
Drupal 8 deployingDrupal 8 deploying
Drupal 8 deploying
 
Going Beyond LAMP Again - Manchester WordPress User Group
Going Beyond LAMP Again - Manchester WordPress User GroupGoing Beyond LAMP Again - Manchester WordPress User Group
Going Beyond LAMP Again - Manchester WordPress User Group
 
Drupal 8 CMI on a Managed Workflow
Drupal 8 CMI on a Managed WorkflowDrupal 8 CMI on a Managed Workflow
Drupal 8 CMI on a Managed Workflow
 
Getting to Know MySQL Enterprise Monitor
Getting to Know MySQL Enterprise MonitorGetting to Know MySQL Enterprise Monitor
Getting to Know MySQL Enterprise Monitor
 
Awr doag
Awr doagAwr doag
Awr doag
 
WordPress Plugin development
WordPress Plugin developmentWordPress Plugin development
WordPress Plugin development
 
Automating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyondAutomating Drupal Development: Makefiles, features and beyond
Automating Drupal Development: Makefiles, features and beyond
 
Advanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionalsAdvanced Shell Scripting for Oracle professionals
Advanced Shell Scripting for Oracle professionals
 
Extending MySQL Enterprise Monitor
Extending MySQL Enterprise MonitorExtending MySQL Enterprise Monitor
Extending MySQL Enterprise Monitor
 
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...Oracle Enterprise Manager 12c:  The Oracle Monitoring tool of choice – Why yo...
Oracle Enterprise Manager 12c: The Oracle Monitoring tool of choice – Why yo...
 
Getting to The Loop - London Wordpress Meetup July 28th
Getting to The Loop - London Wordpress Meetup  July 28thGetting to The Loop - London Wordpress Meetup  July 28th
Getting to The Loop - London Wordpress Meetup July 28th
 

Semelhante a Anatomy Of A Share Point Solution

SharePoint 2010 Training Session 3
SharePoint 2010 Training Session 3SharePoint 2010 Training Session 3
SharePoint 2010 Training Session 3Usman Zafar Malik
 
Best practices for share point solution deployment
Best practices for share point solution deploymentBest practices for share point solution deployment
Best practices for share point solution deploymentSalaudeen Rajack
 
Riga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous IntegrationRiga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous IntegrationNicolas Fränkel
 
Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013Ed Musters
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSGunnar Hillert
 
PowerShell-and-DSC-Enables-DSCDevOps-1.pptx
PowerShell-and-DSC-Enables-DSCDevOps-1.pptxPowerShell-and-DSC-Enables-DSCDevOps-1.pptx
PowerShell-and-DSC-Enables-DSCDevOps-1.pptxprabhatthunuguntla
 
Javaone - Gradle: Harder, Better, Stronger, Faster
Javaone - Gradle: Harder, Better, Stronger, Faster Javaone - Gradle: Harder, Better, Stronger, Faster
Javaone - Gradle: Harder, Better, Stronger, Faster Andres Almiray
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11julien.ponge
 
Monitoring and Maintaining SharePoint 2013 Server
Monitoring and Maintaining SharePoint 2013 ServerMonitoring and Maintaining SharePoint 2013 Server
Monitoring and Maintaining SharePoint 2013 ServerLearning SharePoint
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafSerge Huber
 
Intro to WordPress Plugin Development
Intro to WordPress Plugin DevelopmentIntro to WordPress Plugin Development
Intro to WordPress Plugin DevelopmentBrad Williams
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with FeaturesNuvole
 
Best practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on SalesforceBest practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on SalesforceAIMDek Technologies
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleOrestes Carracedo
 
An Introduction to Maven and Flex
An Introduction to Maven and FlexAn Introduction to Maven and Flex
An Introduction to Maven and FlexJustin J. Moses
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in MuleShahid Shaik
 
Introduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS worldIntroduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS worldDmitry Bakaleinik
 

Semelhante a Anatomy Of A Share Point Solution (20)

SharePoint 2010 Training Session 3
SharePoint 2010 Training Session 3SharePoint 2010 Training Session 3
SharePoint 2010 Training Session 3
 
Best practices for share point solution deployment
Best practices for share point solution deploymentBest practices for share point solution deployment
Best practices for share point solution deployment
 
Riga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous IntegrationRiga Dev Day - Automated Android Continuous Integration
Riga Dev Day - Automated Android Continuous Integration
 
Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013Full Trust Solution Development in SharePoint 2013
Full Trust Solution Development in SharePoint 2013
 
Modular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJSModular Test-driven SPAs with Spring and AngularJS
Modular Test-driven SPAs with Spring and AngularJS
 
PowerShell-and-DSC-Enables-DSCDevOps-1.pptx
PowerShell-and-DSC-Enables-DSCDevOps-1.pptxPowerShell-and-DSC-Enables-DSCDevOps-1.pptx
PowerShell-and-DSC-Enables-DSCDevOps-1.pptx
 
Javaone - Gradle: Harder, Better, Stronger, Faster
Javaone - Gradle: Harder, Better, Stronger, Faster Javaone - Gradle: Harder, Better, Stronger, Faster
Javaone - Gradle: Harder, Better, Stronger, Faster
 
IzPack at LyonJUG'11
IzPack at LyonJUG'11IzPack at LyonJUG'11
IzPack at LyonJUG'11
 
Monitoring and Maintaining SharePoint 2013 Server
Monitoring and Maintaining SharePoint 2013 ServerMonitoring and Maintaining SharePoint 2013 Server
Monitoring and Maintaining SharePoint 2013 Server
 
intellimeet
intellimeetintellimeet
intellimeet
 
Jahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karafJahia DX 7.2 : Bye bye felix, hello karaf
Jahia DX 7.2 : Bye bye felix, hello karaf
 
Intro to WordPress Plugin Development
Intro to WordPress Plugin DevelopmentIntro to WordPress Plugin Development
Intro to WordPress Plugin Development
 
Building and Maintaining a Distribution in Drupal 7 with Features
Building and Maintaining a  Distribution in Drupal 7 with FeaturesBuilding and Maintaining a  Distribution in Drupal 7 with Features
Building and Maintaining a Distribution in Drupal 7 with Features
 
Best practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on SalesforceBest practices for implementing CI/CD on Salesforce
Best practices for implementing CI/CD on Salesforce
 
Deploying PHP Applications with Ansible
Deploying PHP Applications with AnsibleDeploying PHP Applications with Ansible
Deploying PHP Applications with Ansible
 
An Introduction to Maven and Flex
An Introduction to Maven and FlexAn Introduction to Maven and Flex
An Introduction to Maven and Flex
 
Maven in Mule
Maven in MuleMaven in Mule
Maven in Mule
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in Mule
 
Pyramid patterns
Pyramid patternsPyramid patterns
Pyramid patterns
 
Introduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS worldIntroduction to maven, its configuration, lifecycle and relationship to JS world
Introduction to maven, its configuration, lifecycle and relationship to JS world
 

Último

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 

Último (20)

How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 

Anatomy Of A Share Point Solution

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. So what is a SharePoint Solution?
  • 9. So what is a SharePoint Solution?
  • 10. So what is a SharePoint Solution? -It’s a Cabinet File with the extension .WSP
  • 11. So what is a SharePoint Solution? -It’s a Cabinet File with the extension .WSP -It installs STUFF in the hive
  • 12. So what is a SharePoint Solution? -It’s a Cabinet File with the extension .WSP -It installs STUFF in the hive -it can install assemblies in the bin fldr or gac
  • 13. So what is a SharePoint Solution? -It’s a Cabinet File with the extension .WSP -It installs STUFF in the hive -it can install assemblies in the bin fldr or gac -It can install feature definitions/site definitions
  • 14. So what is a SharePoint Solution? -It’s a Cabinet File with the extension .WSP -It installs STUFF in the hive -it can install assemblies in the bin fldr or gac -It can install feature definitions/site definitions -It can install class resources
  • 15. So what is a SharePoint Solution? -It’s a Cabinet File with the extension .WSP -It installs STUFF in the hive -it can install assemblies in the bin fldr or gac -It can install feature definitions/site definitions -It can install class resources -It can install web part packages
  • 16. So what is a SharePoint Solution? -It’s a Cabinet File with the extension .WSP -It installs STUFF in the hive -it can install assemblies in the bin fldr or gac -It can install feature definitions/site definitions -It can install class resources -It can install web part packages zomg! then why doesn’t everyone use it?
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24. So What Just Happened?
  • 25. So What Just Happened? Solution was added to farm (Via StsAdm in this case) Manifest Examined, Features extracted to: [Hive]TemplateFeatures[foo]
  • 26. So What Just Happened? Solution was added to farm (Via StsAdm in this case) Manifest Examined, Features extracted to: [Hive]TemplateFeatures[foo] Solution Gets Deployed via timer jobs - global items go into hive, items for apps provisioned out to wfes etc.
  • 27. So What Just Happened? Solution was added to farm (Via StsAdm in this case) Manifest Examined, Features extracted to: [Hive]TemplateFeatures[foo] Solution Gets Deployed via timer jobs - global items go into hive, items for apps provisioned out to wfes etc. Features then available and activating them provisions the items specified in the feature elements file.
  • 28. The Anatomy of a Solution <?xml version="1.0"?> <Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f" xmlns="http://schemas.microsoft.com/sharepoint/"> <Assemblies> <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> <TemplateFiles> <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" /> </TemplateFiles> </Solution>
  • 29. The Anatomy of a Solution Manifest.xml <?xml version="1.0"?> <Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f" xmlns="http://schemas.microsoft.com/sharepoint/"> <Assemblies> <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> <TemplateFiles> <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" /> </TemplateFiles> </Solution>
  • 30. The Anatomy of a Solution Manifest.xml Set’s the solution ID which is a GUID <?xml version="1.0"?> <Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f" xmlns="http://schemas.microsoft.com/sharepoint/"> <Assemblies> <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> <TemplateFiles> <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" /> </TemplateFiles> </Solution>
  • 31. The Anatomy of a Solution Manifest.xml Set’s the solution ID which is a GUID Installs Assemblies, GAC or Local <?xml version="1.0"?> <Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f" xmlns="http://schemas.microsoft.com/sharepoint/"> <Assemblies> <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> <TemplateFiles> <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" /> </TemplateFiles> </Solution>
  • 32. The Anatomy of a Solution Manifest.xml Set’s the solution ID which is a GUID Installs Assemblies, GAC or Local Installs HIve files <?xml version="1.0"?> <Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f" xmlns="http://schemas.microsoft.com/sharepoint/"> <Assemblies> <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> <TemplateFiles> <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" /> </TemplateFiles> </Solution>
  • 33. The Anatomy of a Solution Manifest.xml Set’s the solution ID which is a GUID Installs Assemblies, GAC or Local Installs HIve files includes feature.xml feature defs <?xml version="1.0"?> <Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f" xmlns="http://schemas.microsoft.com/sharepoint/"> <Assemblies> <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> <TemplateFiles> <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" /> </TemplateFiles> </Solution>
  • 34. The Anatomy of a Solution Manifest.xml Set’s the solution ID which is a GUID Installs Assemblies, GAC or Local Installs HIve files includes feature.xml feature defs <?xml version="1.0"?> <Solution SolutionId="ee89a307-dc72-4622-9f81-a424ff247c1f" xmlns="http://schemas.microsoft.com/sharepoint/"> CAML!? CAML! YUK! <Assemblies> <Assembly Location="WSP1.dll" DeploymentTarget="GlobalAssemblyCache" /> </Assemblies> <TemplateFiles> <TemplateFile Location="LAYOUTSMYfirstSolutionSampleService.asmx" /> </TemplateFiles> </Solution>
  • 36. Getting Intellisense in VS makes it easy-peasy- lemon-squeezy!
  • 37. FeatureManifest <FeatureManifests> <!--This Reference is relative to the Location in YOUR CAB!! --> <FeatureManifest Location="MyFirstFeatureFeature.xml"/> <FeatureManifest Location="MySecondFeatureFeature.xml"/> </FeatureManifests>
  • 38. FeatureManifest Includes Child Feature Manifest CAML Files <FeatureManifests> <!--This Reference is relative to the Location in YOUR CAB!! --> <FeatureManifest Location="MyFirstFeatureFeature.xml"/> <FeatureManifest Location="MySecondFeatureFeature.xml"/> </FeatureManifests>
  • 39. FeatureManifest Includes Child Feature Manifest CAML Files Location is relative to root of your solution CAbinet file <FeatureManifests> <!--This Reference is relative to the Location in YOUR CAB!! --> <FeatureManifest Location="MyFirstFeatureFeature.xml"/> <FeatureManifest Location="MySecondFeatureFeature.xml"/> </FeatureManifests>
  • 40. FeatureManifest Includes Child Feature Manifest CAML Files Location is relative to root of your solution CAbinet file basically copies the manifest to hive and includes the files defined in the feature caml (more later..) <FeatureManifests> <!--This Reference is relative to the Location in YOUR CAB!! --> <FeatureManifest Location="MyFirstFeatureFeature.xml"/> <FeatureManifest Location="MySecondFeatureFeature.xml"/> </FeatureManifests>
  • 41. The Assemblies Region Processes when solution is deployed adds your assemblies to local bin or GAC allows you to specify safe control types
  • 43. The ApplicationResources Again - ‘Cause it’s in the Manifest it processes when solution is deployed
  • 44. The ApplicationResources Again - ‘Cause it’s in the Manifest it processes when solution is deployed Places files in the Resources DIR of the root IIS folder of deployed web applications
  • 45. The TemplateFiles Region Do I need to mention it again? Copies Files into the HIVE Under the Template directory
  • 47. The RootFiles Region Copies files to a location off the root HIVE
  • 48. The RootFiles Region Copies files to a location off the root HIVE Really the best place to put global web services, etc.
  • 49. DwpFiles Region <DwpFiles> <DwpFile Location="MyNonFeatureWebPart.webpart" /> </DwpFiles>
  • 50. DwpFiles Region Copies Featureless WebPart Definitions to Web Applications (Huh?) <DwpFiles> <DwpFile Location="MyNonFeatureWebPart.webpart" /> </DwpFiles>
  • 51. DwpFiles Region Copies Featureless WebPart Definitions to Web Applications (Huh?) Supports either v2 (.DWP) or V3 (.webpart) definition files <DwpFiles> <DwpFile Location="MyNonFeatureWebPart.webpart" /> </DwpFiles>
  • 52. Quick-Tip Manifest Location Summary Assemblies The parameter DeploymentTarget determines whether to deploy the assembly to the GAC or to a directory (WebApplication). With the GAC option assemblies are copied to C:WINDOWSassembly. With the WebApplication option the files are copied to C:InetpubwwwrootwssVirtualDirectories80bin. Features: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURES TemplateFiles: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATE Application Resources: C:InetpubwwwrootwssVirtualDirectories{virtual app port}resources Global resources: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATEFEATURES Web Parts: C:InetpubwwwrootwssVirtualDirectories80wpcatalog Site definitions The SiteDefinitionManifests list contains descriptions of all site definition folders. The Location attribute defines the name of the folder that contains the site definition. This folder contains the ONET.xml and other components of the site definition. Target Folder: C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATESiteTemplates
  • 53. The Feature Files if you thought the manifest was complicated...
  • 54. The real meat of a feature
  • 55. The real meat of a feature The Element Manifest - or more aptly put the SharePoint CAML definitions of what the feature does. <ElementManifests> <ElementManifest Location="MySiteColumns.xml"/> <ElementManifest Location="MyContentTypes.xml"/> <ElementManifest Location="MyListDefs.xml"/> <ElementManifest Location="MyListInstances.xml"/> <ElementManifest Location="ICouldGoOnandOn.xml"/> </ElementManifests>
  • 56. The basic CAML elements
  • 57. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?>
  • 58. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  • 59. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType>
  • 60. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/>
  • 61. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/>
  • 62. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control>
  • 63. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction>
  • 64. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup>
  • 65. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/>
  • 66. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation>
  • 67. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field>
  • 68. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field> <ListInstance></ListInstance>
  • 69. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field> <ListInstance></ListInstance> <ListTemplate></ListTemplate>
  • 70. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field> <ListInstance></ListInstance> <ListTemplate></ListTemplate> <Module></Module>
  • 71. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field> <ListInstance></ListInstance> <ListTemplate></ListTemplate> <Module></Module> <Receivers></Receivers>
  • 72. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field> <ListInstance></ListInstance> <ListTemplate></ListTemplate> <Module></Module> <Receivers></Receivers> <UserMigrator/>
  • 73. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field> <ListInstance></ListInstance> <ListTemplate></ListTemplate> <Module></Module> <Receivers></Receivers> <UserMigrator/> <Workflow></Workflow>
  • 74. The basic CAML elements <?xml version="1.0" encoding="utf-8" ?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <ContentType></ContentType> <ContentTypeBinding/> <HideCustomAction/> <Control></Control> <CustomAction></CustomAction> <CustomActionGroup></CustomActionGroup> <DocumentConverter/> <FeatureSiteTemplateAssociation></FeatureSiteTemplateAssociation> <Field></Field> <ListInstance></ListInstance> <ListTemplate></ListTemplate> <Module></Module> <Receivers></Receivers> <UserMigrator/> <Workflow></Workflow> </Elements>
  • 75. Now that I’ve pulled out your fingernails...
  • 76. Now that I’ve pulled out your fingernails... If there’s anyone left in the room
  • 77. Now that I’ve pulled out your fingernails... If there’s anyone left in the room Let’s look at the ways to reduce the level of effort!
  • 78. DEMO
  • 79. Thanks for spending your valuable Saturday with us! http://gscottsingleton.com scott@gscottsingleton.com twitter: @scottsingleton

Notas do Editor

  1. This is a Introductory Class Doctor Strangelove! Anyone Get it Prize for questions. What file format is a WSP? What does DDF Stand for? (CABinet, Diamond Directive File)
  2. Developing Software Since 1989, Cobol-&gt;Clipper 87-&gt;Pascal-&gt;FoxPro-&gt;C++-&gt;C# Took a year off to build a house, Summer off to chase the pipe dream of being an FF Guide Got lucky enough to get in on SharePoint before the boom in the SharePoint 2010 TAP Program
  3. I tweet frequently, Really need to blog more. Next Slide is HAWT - Ask Why do I work with SharePoint?
  4. I work with SharePoint &amp;#x2018;cause the chicks dig it!
  5. this is what I saw when I installed screen caps on devs boxes. But no worries I added a &amp;#x201C;Fail&amp;#x201D; catcher! it didn&amp;#x2019;t work. This slide ends when mouse hovers Web Service Name. Next Slide is Ransom Note
  6. This is the type of ransom note I used to get from my developers when they&amp;#x2019;d go out to clients
  7. This is actually my #1 Rule for my developers/Designers. #2 is learning what an IDisposable Object is (SPDispose is not an excuse to be a poor programmer)
  8. this is 5 min 5 seconds.
  9. because you&amp;#x2019;re going to go out and BING it, Yes Virginia, it&amp;#x2019;s a verb now, and you&amp;#x2019;re going to look for the CAML.NET intellisense intal for VS 2008
  10. because when you add in CAML intellisense into Visual Studio you make the whole think easy-peasy-lemon-squeezy. So what do all these XML elements and attributes mean? What can I put into a Manifest File?
  11. I can Add Feature Manifests. Explain Features. 1-include child features CAML files 2-Location is alwys relative 3 -basically copies the stuff declared in the feature CAML into a Hive Location
  12. I can Add Feature Manifests. Explain Features. 1-include child features CAML files 2-Location is alwys relative 3 -basically copies the stuff declared in the feature CAML into a Hive Location
  13. I can Add Feature Manifests. Explain Features. 1-include child features CAML files 2-Location is alwys relative 3 -basically copies the stuff declared in the feature CAML into a Hive Location
  14. The Assemblies region 1-Processes when solution is deployed 2-Adds assemblies to the bin or gac 3-Allows you to specify Safe Control Types
  15. Application Resource Region 1-Same deal with processing scope please files in the resource dir of IIS Folder
  16. Application Resource Region 1-Same deal with processing scope please files in the resource dir of IIS Folder
  17. Template File Region Do I really need to mention when this gets processed? it&amp;#x2019;s in the manifest so it gets processed when the solution is deployed. - Files here get copied into the Hive&amp;#x2019;s Template Directory.. the LayoutsMyFirstSolution folder to be specific
  18. RootFiles -kinda the same as template files but back one directory -- relative to the actual 12 HIVE folder
  19. RootFiles -kinda the same as template files but back one directory -- relative to the actual 12 HIVE folder
  20. DWPFiles Copies WebPart definition files to wpCatalog directory - this is called featureless webparts. Misnomer, archaic, handles both v2 (.dwp) and v3 (.webpart) files
  21. DWPFiles Copies WebPart definition files to wpCatalog directory - this is called featureless webparts. Misnomer, archaic, handles both v2 (.dwp) and v3 (.webpart) files
  22. So where does this all go, recap.