SlideShare une entreprise Scribd logo
1  sur  34
Agenda

• Thoughts on a simple approach to SharePoint
  development and deployment for solution
  versions 1.0 and beyond
• Thoughts on a simple toolset to support
  configuration and development using this
  approach
Audience questions

• Who clicks together its solution on production
  using the Web UI and SharePoint Designer?
• Who goes through
  dev, test, acceptation, production with its
  SharePoint solution?
• Who uses WSP’s to do this?
• Who does deployments through
  dev, test, acceptation, production manually?
• Who scripts its deployments?
But first – a bit of history…

Good guys:
• Do everything through WSP’s
• Build site definitions, list definitions, features…

Bad Guys:
• Configure solution in SharePoint with Web Interface
  and SharePoint Designer
• Only real coding through WSP’s

@Macaw: The good guys!
But…

• Development is cumbersome
• Lot of deep SharePoint knowledge required
• 1.0 release is expensive

Many artifacts in WSP may never change:
• Site definitions, list definitions, …
• Fields, content types, …
• …
Migration to new version SharePoint more difficult
So…

The (not so) bad guys are better of…
• Good knowledge of SharePoint UI and tools
  like SharePoint Designer often enough
• Only minor custom developments required
  like:
  – Web parts
  – Event handlers
• Quick 1.0 release possible  happy customer!
How about deployment?

• Configuring 1.0 on production is OK, but…
• 1.X should go through Dev, Test, Acceptation,
  Production
The holy SharePoint deployment grail

A SharePoint deployment approach that
• is simple,
• always works,
• in any situation
  – 1.0 release
  – X.Y release
  – In the cloud (Office 365)
  – Continuation of ANY existing SharePoint solution
But how?

Is it a tool?

NO!

It is a concept, a way of working…

                And PowerShell… and some tools….
But ehhh, how?

Build SharePoint sites as if they are clicked together…

So:
• No site definitions, list definitions etc
• No features with XML for fields and content types
   Expensive
   Only work for 1.0 release

• Minimize usage of
   – XML configurations
   – Features
   – WSP’s
Advantages

• Fast and cheap implementation of 1.0 release
  – Product specialist can do most work
  – Developer for…. custom development
  – Happy customer!
• Easy migration to new version of SharePoint
• …
But again… how?

• Data (configuration) deployment from A  B
  – Dev, Test, Acceptation, Production
  – Authoring, Staging, Production
• Deployment for 1.0 release
• Deployment for beyond 1.0 release
1.0 release

Clicked together approach:

• Backup/Restore
  – Configure on SharePoint Design server
  – Content Database backup/restore from A  B
• Configure directly on production
• Script the configuration through Dev, Test,
  Acceptation, Production
And after the 1.0 release?

Get Content Database / Site Collection backup from
production to dev/test/acceptation.

X.Y release: always scripted
• Batch script
• PowerShell script
• Paper script (write down manual configuration
   instructions)

If configuring directly on production (Office 365)
• New (disparate) functionality can be configured
• Don’t provide access to new functionality yet (security)
Scripting from version X to version Y (1)

(Throw away) automatic script(s)
• When we are on version Y, script for X  Y not
  needed anymore
• Quality of script should be “good enough”
• Use old scripts for reference
• Build utility functions library
  – Create field
  – Create content type
  – Add field to content type,
  –…
Scripting from version X to version Y (2)

Paper script
• Write down the manual actions

Combine in one deployment:
• paper scripts
• automatic scripts

But… are the required manual actions executed?

Risk: rollback not supported
Solution: validate before automatic script
Paper script validation

Why? Validate is cheaper than automate
• Exist site, list, list item, page, …
• Exist url
• Exist content type
• Exist field
• Contains content type A field B
• …
Q: How do I see changes made?

Simple answer:
• You don’t, keep track in changes file

Complexer answer:
• Generate a report on all changes compared to the “out of
  the box” SharePoint situation
   –   New Fields
   –   New Content Types
   –   Changed Content Types
   –   Pages
   –   Web part on pages
   –   Etc. etc.
Q: how can I rebuild my site from scratch?

• Script all changes
• Keep track of change scripts, apply again in
  correct order (in thia case scripts must be
  production code)
• Or: Make a reentrant single script that can be
  applied multiple times
  – Ensure-Field
  – Ensure-ContentType
  – Ensure-…
When to use WSP packages?

• Assemblies
    –   web parts
    –   application pages
    –   timer jobs
    –   …
•   Feature receivers
•   List event handlers
•   Actions
•   ….
WSP should be updateable

• SharePoint 2007:
  – Uninstall, Install
  – Upgrade -> nieuw features worden niet toegevoegd
• SharePoint 2010:
  – Uninstall, Install
  – Upgrade  faster
So SharePoint Designer is my friend?

• SharePoint Designer is a great tool
  – User friendly
  – Remote access
• But…
  – Actions can’t be “packaged”
  – It messes with my HTML!!!!!!!!
Messing Example 1: __designer:Preview

<meta name="keywords"
content="<SharePointWebControls:FieldValue
FieldName='Keywords' runat='server' />" />

After save&reload:

<meta name="keywords"
content="<SharePointWebControls:FieldValue
FieldName='Keywords' runat='server'
__designer:Preview="Keywords field value."/>" />
Messing example 2: head introductions

<div id="home_search">
<form id="search_form" method="post"
action="http://www.opensourcefood.com/process/search">

After save&reload:

<div id="home_search">
<head>
<meta name="WebPartPageExpansion" content="full" />
</head>
<form id="search_form" method="post"
action="http://www.opensourcefood.com/process/search">
So again SharePoint Designer is my friend?

• Perfect tooling for some jobs
• Don’t edit your HTML code in it if you do
  advanced development like building websites
  with DualLayout
How about some standard tooling?

• SharePoint.DesignFactory.ContentFiles
  – Deploy content with metadata
     • Uses Object Model (on server, 2007/2010)
     • Uses Client Object Model (remote, 2010/Office365)



                        Now available
                          as NuGet
                          package!
SharePoint.DesignFactory.ContentFiles

• Use any editor to edit your SharePoint artifacts
• Great integration in Visual Studio with right-click actions in
  Solution Explorer
• Available as NuGet package
• Super quick development cycle for any SharePoint artifact
  that can be uploaded to SharePoint. No WSP’s required.
• Deploy using less privileges. Only upload rights required.
• Upload files + metadata, for example master pages, page
  layouts, style library, web parts etc.
• Keep files under source control
• Develop on non-SharePoint machines
• Create content-only installation package
SharePoint.DesignFactory.ContentFiles
Visual Studio solution for projects
• Acme.Portal.sln
• Scripts
    – Util
        • HandyFunctions.ps1
        • …
    – Version 1.3
        • Upgrade.cmd
        • Upgrade.ps1
    – Version 1.2
        • PaperScript 1.2.docx
    – Version 1.1
•   Branding (ContentFiles project)  Content package
•   WebPartGallery (ContentFiles project)  Content package
•   Code  resulting in WSP’s
•   …
Upgrade.ps1

•   Create Fields
•   Create Content Types
•   Create Lists
•   Install ContentFiles packages
•   Delete files
•   Upgrade WSP packages
•   SharePoint Configurations
    –   Property bag
    –   Culture
    –   Features
    –   Page changes
    –   …
Prerequisites

• Learn PowerShell!
• PowerShell is THE automation language on the
  Microsoft platform
• Good books available on PowerShell+SharePoint
Summary

• A simple approach for SharePoint deployment
  is possible
• The approach is based on “make solutions as
  if they are clicked together”
• Simple tooling can help in supporting this
  approach
• This approach will work for both “on premise”
  and cloud solutions
But how much will it save?

• Faster delivery of 1.0 version
  – Cheaper project, more competitive
  – Happier customer
• Product specialist can do most “1.0”
  development
• Simpler toolset to create SharePoint sites
  – Less XML configuration files
About

•   Serge van den Oever [Macaw]
•   Macaw – Microsoft specialized IT service provider
•   200 people and growing
•   13 years @ Macaw
•   Doing SharePoint since first beta’s Tahoo (SP2001)
•   Macaw KD  Knowledge Development
•   Working on:
    – Macaw Solutions Factory – ALM MS Server products
       • Optimizing the product development process
    – New development, innovation, projects
• http://weblogs.asp.net/soever,
  http://twitter.com/svdoever

Contenu connexe

Tendances

Don Wibier
Don WibierDon Wibier
Don WibierCodeFest
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET DevelopersTaswar Bhatti
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Vishal Biyani
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bagJamie Coleman
 
REST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesScott Taylor
 
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoJuly OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoHoward Greenberg
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...Eric Smalling
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovskyphp-user-group-minsk
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Multiplatform hybrid development
Multiplatform hybrid developmentMultiplatform hybrid development
Multiplatform hybrid developmentDarko Kukovec
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkinsKrish
 
Dockerfiles building docker images automatically v (workdir, env, add, and ...
Dockerfiles   building docker images automatically v (workdir, env, add, and ...Dockerfiles   building docker images automatically v (workdir, env, add, and ...
Dockerfiles building docker images automatically v (workdir, env, add, and ...ansonjonel
 
Jenkins introduction
Jenkins introductionJenkins introduction
Jenkins introductionGourav Varma
 
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveJanuary OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveHoward Greenberg
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York TimesScott Taylor
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid DoesKevin McMahon
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins PipelinesSteffen Gebert
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Michal Ziarnik
 

Tendances (20)

Don Wibier
Don WibierDon Wibier
Don Wibier
 
Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1Using CI for continuous delivery Part 1
Using CI for continuous delivery Part 1
 
The new java developers kit bag
The new java developers kit bagThe new java developers kit bag
The new java developers kit bag
 
REST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York TimesREST In Action: The Live Coverage Platform at the New York Times
REST In Action: The Live Coverage Platform at the New York Times
 
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for DominoJuly OpenNTF Webinar - HCL Presents Keep, a new API for Domino
July OpenNTF Webinar - HCL Presents Keep, a new API for Domino
 
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...
 
Symfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim RomanovskySymfony Under Control by Maxim Romanovsky
Symfony Under Control by Maxim Romanovsky
 
Maven
MavenMaven
Maven
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Multiplatform hybrid development
Multiplatform hybrid developmentMultiplatform hybrid development
Multiplatform hybrid development
 
Introduction to jenkins
Introduction to jenkinsIntroduction to jenkins
Introduction to jenkins
 
Dockerfiles building docker images automatically v (workdir, env, add, and ...
Dockerfiles   building docker images automatically v (workdir, env, add, and ...Dockerfiles   building docker images automatically v (workdir, env, add, and ...
Dockerfiles building docker images automatically v (workdir, env, add, and ...
 
Jenkins
JenkinsJenkins
Jenkins
 
Jenkins introduction
Jenkins introductionJenkins introduction
Jenkins introduction
 
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep DiveJanuary OpenNTF Webinar: 4D - Domino Docker Deep Dive
January OpenNTF Webinar: 4D - Domino Docker Deep Dive
 
Live Coverage at The New York Times
Live Coverage at The New York TimesLive Coverage at The New York Times
Live Coverage at The New York Times
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid Does
 
(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines(Declarative) Jenkins Pipelines
(Declarative) Jenkins Pipelines
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
 

En vedette

Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...
Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...
Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...BeyondTrust
 
Visual Mapping of Clickstream Data
Visual Mapping of Clickstream DataVisual Mapping of Clickstream Data
Visual Mapping of Clickstream DataDataWorks Summit
 
A Guide to Data Innovation for Development - From idea to proof-of-concept
A Guide to Data Innovation for Development - From idea to proof-of-conceptA Guide to Data Innovation for Development - From idea to proof-of-concept
A Guide to Data Innovation for Development - From idea to proof-of-conceptUN Global Pulse
 
Integrating big data into the monitoring and evaluation of development progra...
Integrating big data into the monitoring and evaluation of development progra...Integrating big data into the monitoring and evaluation of development progra...
Integrating big data into the monitoring and evaluation of development progra...UN Global Pulse
 
Finance 2020: Designing a Finance function to meet new demands
Finance 2020: Designing a Finance function to meet new demandsFinance 2020: Designing a Finance function to meet new demands
Finance 2020: Designing a Finance function to meet new demandsDeloitte Canada
 

En vedette (7)

procedura penala 1
procedura penala 1procedura penala 1
procedura penala 1
 
Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...
Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...
Managing Unix Accounts in Today's Complex World: Stop the Shadow IT and Be Mo...
 
Visual Mapping of Clickstream Data
Visual Mapping of Clickstream DataVisual Mapping of Clickstream Data
Visual Mapping of Clickstream Data
 
Metadata Mapping & Crosswalks
Metadata Mapping & CrosswalksMetadata Mapping & Crosswalks
Metadata Mapping & Crosswalks
 
A Guide to Data Innovation for Development - From idea to proof-of-concept
A Guide to Data Innovation for Development - From idea to proof-of-conceptA Guide to Data Innovation for Development - From idea to proof-of-concept
A Guide to Data Innovation for Development - From idea to proof-of-concept
 
Integrating big data into the monitoring and evaluation of development progra...
Integrating big data into the monitoring and evaluation of development progra...Integrating big data into the monitoring and evaluation of development progra...
Integrating big data into the monitoring and evaluation of development progra...
 
Finance 2020: Designing a Finance function to meet new demands
Finance 2020: Designing a Finance function to meet new demandsFinance 2020: Designing a Finance function to meet new demands
Finance 2020: Designing a Finance function to meet new demands
 

Similaire à Thoughts on building deployable and updatable share point solutions

SharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - AnnouncementsSharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - AnnouncementsNick Hobbs
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT
 
Synapse india reviews on share point development
Synapse india reviews on share point developmentSynapse india reviews on share point development
Synapse india reviews on share point developmentsaritasingh19866
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts Knut Relbe-Moe [MVP, MCT]
 
Introduction to SharePoint Developer
Introduction to SharePoint DeveloperIntroduction to SharePoint Developer
Introduction to SharePoint DeveloperKelly Jones
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection NavigationThomas Daly
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Talbott Crowell
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
SharePoint Design & Development
SharePoint Design & DevelopmentSharePoint Design & Development
SharePoint Design & DevelopmentJonathan Schultz
 
SharePoint Development
SharePoint DevelopmentSharePoint Development
SharePoint DevelopmentMalin De Silva
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentBill Ayers
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSThomas Daly
 
An introduction to the office devpnp community initiative
An introduction to the office devpnp community initiativeAn introduction to the office devpnp community initiative
An introduction to the office devpnp community initiativeNigel Price
 
Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyBob German
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSébastien Levert
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Librarypaidi_ed
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsBIWUG
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSébastien Levert
 

Similaire à Thoughts on building deployable and updatable share point solutions (20)

O365: Attack of the Clones
O365: Attack of the ClonesO365: Attack of the Clones
O365: Attack of the Clones
 
SharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - AnnouncementsSharePoint Conference North America 2018 - Las Vegas - Announcements
SharePoint Conference North America 2018 - Las Vegas - Announcements
 
ECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your IntranetECS19 - Katja Jokisalo - Modernize your Intranet
ECS19 - Katja Jokisalo - Modernize your Intranet
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
 
Synapse india reviews on share point development
Synapse india reviews on share point developmentSynapse india reviews on share point development
Synapse india reviews on share point development
 
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
How to build a Project Hub with Hubsites and Sitedesign and Sitescripts
 
Introduction to SharePoint Developer
Introduction to SharePoint DeveloperIntroduction to SharePoint Developer
Introduction to SharePoint Developer
 
Cross Site Collection Navigation
Cross Site Collection NavigationCross Site Collection Navigation
Cross Site Collection Navigation
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast2/15/2012 - Wrapping Your Head Around the SharePoint Beast
2/15/2012 - Wrapping Your Head Around the SharePoint Beast
 
SharePoint Design & Development
SharePoint Design & DevelopmentSharePoint Design & Development
SharePoint Design & Development
 
SharePoint Development
SharePoint DevelopmentSharePoint Development
SharePoint Development
 
Lean-Agile SharePoint Development
Lean-Agile SharePoint DevelopmentLean-Agile SharePoint Development
Lean-Agile SharePoint Development
 
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JSCross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
Cross Site Collection Navigation using SPFx, Powershell PnP & PnP-JS
 
An introduction to the office devpnp community initiative
An introduction to the office devpnp community initiativeAn introduction to the office devpnp community initiative
An introduction to the office devpnp community initiative
 
Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the Ugly
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
 
AD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension LibraryAD1545 - Extending the XPages Extension Library
AD1545 - Extending the XPages Extension Library
 
Understanding SharePoint Framework Extensions
Understanding SharePoint Framework ExtensionsUnderstanding SharePoint Framework Extensions
Understanding SharePoint Framework Extensions
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 developmentSharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
 

Dernier

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Dernier (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Thoughts on building deployable and updatable share point solutions

  • 1.
  • 2. Agenda • Thoughts on a simple approach to SharePoint development and deployment for solution versions 1.0 and beyond • Thoughts on a simple toolset to support configuration and development using this approach
  • 3. Audience questions • Who clicks together its solution on production using the Web UI and SharePoint Designer? • Who goes through dev, test, acceptation, production with its SharePoint solution? • Who uses WSP’s to do this? • Who does deployments through dev, test, acceptation, production manually? • Who scripts its deployments?
  • 4. But first – a bit of history… Good guys: • Do everything through WSP’s • Build site definitions, list definitions, features… Bad Guys: • Configure solution in SharePoint with Web Interface and SharePoint Designer • Only real coding through WSP’s @Macaw: The good guys!
  • 5. But… • Development is cumbersome • Lot of deep SharePoint knowledge required • 1.0 release is expensive Many artifacts in WSP may never change: • Site definitions, list definitions, … • Fields, content types, … • … Migration to new version SharePoint more difficult
  • 6. So… The (not so) bad guys are better of… • Good knowledge of SharePoint UI and tools like SharePoint Designer often enough • Only minor custom developments required like: – Web parts – Event handlers • Quick 1.0 release possible  happy customer!
  • 7. How about deployment? • Configuring 1.0 on production is OK, but… • 1.X should go through Dev, Test, Acceptation, Production
  • 8. The holy SharePoint deployment grail A SharePoint deployment approach that • is simple, • always works, • in any situation – 1.0 release – X.Y release – In the cloud (Office 365) – Continuation of ANY existing SharePoint solution
  • 9. But how? Is it a tool? NO! It is a concept, a way of working… And PowerShell… and some tools….
  • 10. But ehhh, how? Build SharePoint sites as if they are clicked together… So: • No site definitions, list definitions etc • No features with XML for fields and content types Expensive Only work for 1.0 release • Minimize usage of – XML configurations – Features – WSP’s
  • 11. Advantages • Fast and cheap implementation of 1.0 release – Product specialist can do most work – Developer for…. custom development – Happy customer! • Easy migration to new version of SharePoint • …
  • 12. But again… how? • Data (configuration) deployment from A  B – Dev, Test, Acceptation, Production – Authoring, Staging, Production • Deployment for 1.0 release • Deployment for beyond 1.0 release
  • 13. 1.0 release Clicked together approach: • Backup/Restore – Configure on SharePoint Design server – Content Database backup/restore from A  B • Configure directly on production • Script the configuration through Dev, Test, Acceptation, Production
  • 14. And after the 1.0 release? Get Content Database / Site Collection backup from production to dev/test/acceptation. X.Y release: always scripted • Batch script • PowerShell script • Paper script (write down manual configuration instructions) If configuring directly on production (Office 365) • New (disparate) functionality can be configured • Don’t provide access to new functionality yet (security)
  • 15. Scripting from version X to version Y (1) (Throw away) automatic script(s) • When we are on version Y, script for X  Y not needed anymore • Quality of script should be “good enough” • Use old scripts for reference • Build utility functions library – Create field – Create content type – Add field to content type, –…
  • 16. Scripting from version X to version Y (2) Paper script • Write down the manual actions Combine in one deployment: • paper scripts • automatic scripts But… are the required manual actions executed? Risk: rollback not supported Solution: validate before automatic script
  • 17. Paper script validation Why? Validate is cheaper than automate • Exist site, list, list item, page, … • Exist url • Exist content type • Exist field • Contains content type A field B • …
  • 18. Q: How do I see changes made? Simple answer: • You don’t, keep track in changes file Complexer answer: • Generate a report on all changes compared to the “out of the box” SharePoint situation – New Fields – New Content Types – Changed Content Types – Pages – Web part on pages – Etc. etc.
  • 19. Q: how can I rebuild my site from scratch? • Script all changes • Keep track of change scripts, apply again in correct order (in thia case scripts must be production code) • Or: Make a reentrant single script that can be applied multiple times – Ensure-Field – Ensure-ContentType – Ensure-…
  • 20. When to use WSP packages? • Assemblies – web parts – application pages – timer jobs – … • Feature receivers • List event handlers • Actions • ….
  • 21. WSP should be updateable • SharePoint 2007: – Uninstall, Install – Upgrade -> nieuw features worden niet toegevoegd • SharePoint 2010: – Uninstall, Install – Upgrade  faster
  • 22. So SharePoint Designer is my friend? • SharePoint Designer is a great tool – User friendly – Remote access • But… – Actions can’t be “packaged” – It messes with my HTML!!!!!!!!
  • 23. Messing Example 1: __designer:Preview <meta name="keywords" content="<SharePointWebControls:FieldValue FieldName='Keywords' runat='server' />" /> After save&reload: <meta name="keywords" content="<SharePointWebControls:FieldValue FieldName='Keywords' runat='server' __designer:Preview="Keywords field value."/>" />
  • 24. Messing example 2: head introductions <div id="home_search"> <form id="search_form" method="post" action="http://www.opensourcefood.com/process/search"> After save&reload: <div id="home_search"> <head> <meta name="WebPartPageExpansion" content="full" /> </head> <form id="search_form" method="post" action="http://www.opensourcefood.com/process/search">
  • 25. So again SharePoint Designer is my friend? • Perfect tooling for some jobs • Don’t edit your HTML code in it if you do advanced development like building websites with DualLayout
  • 26. How about some standard tooling? • SharePoint.DesignFactory.ContentFiles – Deploy content with metadata • Uses Object Model (on server, 2007/2010) • Uses Client Object Model (remote, 2010/Office365) Now available as NuGet package!
  • 27. SharePoint.DesignFactory.ContentFiles • Use any editor to edit your SharePoint artifacts • Great integration in Visual Studio with right-click actions in Solution Explorer • Available as NuGet package • Super quick development cycle for any SharePoint artifact that can be uploaded to SharePoint. No WSP’s required. • Deploy using less privileges. Only upload rights required. • Upload files + metadata, for example master pages, page layouts, style library, web parts etc. • Keep files under source control • Develop on non-SharePoint machines • Create content-only installation package
  • 29. Visual Studio solution for projects • Acme.Portal.sln • Scripts – Util • HandyFunctions.ps1 • … – Version 1.3 • Upgrade.cmd • Upgrade.ps1 – Version 1.2 • PaperScript 1.2.docx – Version 1.1 • Branding (ContentFiles project)  Content package • WebPartGallery (ContentFiles project)  Content package • Code  resulting in WSP’s • …
  • 30. Upgrade.ps1 • Create Fields • Create Content Types • Create Lists • Install ContentFiles packages • Delete files • Upgrade WSP packages • SharePoint Configurations – Property bag – Culture – Features – Page changes – …
  • 31. Prerequisites • Learn PowerShell! • PowerShell is THE automation language on the Microsoft platform • Good books available on PowerShell+SharePoint
  • 32. Summary • A simple approach for SharePoint deployment is possible • The approach is based on “make solutions as if they are clicked together” • Simple tooling can help in supporting this approach • This approach will work for both “on premise” and cloud solutions
  • 33. But how much will it save? • Faster delivery of 1.0 version – Cheaper project, more competitive – Happier customer • Product specialist can do most “1.0” development • Simpler toolset to create SharePoint sites – Less XML configuration files
  • 34. About • Serge van den Oever [Macaw] • Macaw – Microsoft specialized IT service provider • 200 people and growing • 13 years @ Macaw • Doing SharePoint since first beta’s Tahoo (SP2001) • Macaw KD  Knowledge Development • Working on: – Macaw Solutions Factory – ALM MS Server products • Optimizing the product development process – New development, innovation, projects • http://weblogs.asp.net/soever, http://twitter.com/svdoever