SlideShare une entreprise Scribd logo
1  sur  11
Matthias Einig
SharePoint developer since 2005
MCSE, MCPD, MCITP, MSCA in
SharePoint 2007-2013
SCRUM Master and Product Owner
SharePoint Architect
Steria AB, www.steria.com
Stockholm, Sweden
Contact
@mattein
mail@matthiaseinig.de
www.matthiaseinig.de
Main Focus:
• Solution Architecture,
• Solution Development,
• SharePoint ALM,
• Solution Quality Assurance
• Many files
• Many file references
• Unintuitive structure /
deployment location
• High complexity
Example:
Multillingual Visual
WebPart
Problem: SharePoint Solutions
UserControl (.ASCX)
Feature (.XML)
WP Definition (.WEBPART)
FeatureReceiver (.CS)
Feature resource (.RESX)
WebPart Code (.CS)
WebPart Icon (.GIF)
Feature Icon (.GIF)
Global resource (.RESX)
Module (.XML)
Solution Manifest (.XML)
• Files deploy directly in
the Hive
• Next to SP components
• Easy to overwrite
Problem: Solution Deployment
• Loads of XML Code
• Cryptic IDs
• Cross references (i.e.
Content Type IDs,
Feature IDs)
• No Compiler Errors!
Example:
Content Type
Problem: SharePoint Code
ContentType ID Reference
Lang Resource Reference
Field Reference
File Reference
Control Template Reference
Assembly Reference
• Guide developers
• Use Wizards
• Genereate Code
• Provide Coding
Samples
• Enforce Best Practices
• Convention over
Configuration!
The Solution!
SPSF supports
Where do I get it?
Matthias Einig
@mattein
www.matthiaseinig.de
Follow us!
The SharePoint Code Quality Team
Torsten Mandelkow
@tmandelkow
blogs.msdn.com/b/torstenmandelkow
Download for free at www.spcaf.de

Contenu connexe

Plus de Matthias Einig

Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365Matthias Einig
 
The Evolution of SharePoint
The Evolution of SharePointThe Evolution of SharePoint
The Evolution of SharePointMatthias Einig
 
Transforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App ModelTransforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App ModelMatthias Einig
 
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23Matthias Einig
 
Keynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapKeynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapMatthias Einig
 
SPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsSPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsMatthias Einig
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellMatthias Einig
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerMatthias Einig
 
SSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementSSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementMatthias Einig
 

Plus de Matthias Einig (9)

Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365Organisational Considerations for Customising SharePoint and Office 365
Organisational Considerations for Customising SharePoint and Office 365
 
The Evolution of SharePoint
The Evolution of SharePointThe Evolution of SharePoint
The Evolution of SharePoint
 
Transforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App ModelTransforming SharePoint Farm Solutions to the App Model
Transforming SharePoint Farm Solutions to the App Model
 
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
Transforming SharePoint Farm Solutions to the App Model #SPSSTHLM23
 
Keynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapKeynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recap
 
SPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsSPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutions
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShell
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution Deployer
 
SSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementSSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle Management
 

Dernier

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 

Dernier (20)

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 

The SharePoint Software Factory

  • 1.
  • 2. Matthias Einig SharePoint developer since 2005 MCSE, MCPD, MCITP, MSCA in SharePoint 2007-2013 SCRUM Master and Product Owner SharePoint Architect Steria AB, www.steria.com Stockholm, Sweden Contact @mattein mail@matthiaseinig.de www.matthiaseinig.de Main Focus: • Solution Architecture, • Solution Development, • SharePoint ALM, • Solution Quality Assurance
  • 3.
  • 4. • Many files • Many file references • Unintuitive structure / deployment location • High complexity Example: Multillingual Visual WebPart Problem: SharePoint Solutions UserControl (.ASCX) Feature (.XML) WP Definition (.WEBPART) FeatureReceiver (.CS) Feature resource (.RESX) WebPart Code (.CS) WebPart Icon (.GIF) Feature Icon (.GIF) Global resource (.RESX) Module (.XML) Solution Manifest (.XML)
  • 5. • Files deploy directly in the Hive • Next to SP components • Easy to overwrite Problem: Solution Deployment
  • 6. • Loads of XML Code • Cryptic IDs • Cross references (i.e. Content Type IDs, Feature IDs) • No Compiler Errors! Example: Content Type Problem: SharePoint Code ContentType ID Reference Lang Resource Reference Field Reference File Reference Control Template Reference Assembly Reference
  • 7. • Guide developers • Use Wizards • Genereate Code • Provide Coding Samples • Enforce Best Practices • Convention over Configuration! The Solution!
  • 8.
  • 10. Where do I get it? Matthias Einig @mattein www.matthiaseinig.de Follow us! The SharePoint Code Quality Team Torsten Mandelkow @tmandelkow blogs.msdn.com/b/torstenmandelkow
  • 11. Download for free at www.spcaf.de