[Rodrigo Pinto] Being an enterprise consultant in many companies across the globe, the most common phrase I come across each client\supplier I've helped last year is "each team as a different way to do it"In small\medium\huge companies, this is a major overkill.In this session learn how you can structure your teams, processes, tools, and development for SharePoint Enterprise solutions.
10. 1. Thy shall leave your code in better shape
that you found it
2. Thy shall automate your processes
3. Thy shall use your toolbox in a proper way
Don’t expect the toolbox to do your work…
…It’s a toolbox, ... not a minion
11. 4. Thy shall not reinvent the wheel
5. Thy shall automate your processes!
6. Thy shall be consistent
Impose rules in each thing you do,
and stick with it
7. Thy shall be social
Sharing is scaring
share tips, share problems
12. 8. Thy shall make you solution
self-sustained
9. Thy shall be intuitive... and specially
10. Thy shall be careful !
Use defensive coding,
assume the worst case scenario on deployment
13.
14. • USE A SOURCE CONTROL SYSTEM CONTROL
Control code changes overtime
Leverage repositories, branching, releases
• USE SCRIPTING & AUTOMATION
Avoid executing repetitive operations manually
Promote automated scheduled code builds and deploys
• GET TO KNOW THE PLATFORM
Before start developing, validate if the current feature
doesn’t exist within the platform .
Leverage current platform features on your development.
• PRODUCTIZE YOUR FEATURES
15. • K.I.S.S. DESIGN PRINCIPLE
• BUILD YOUR OWN KNOWLEDGE BASE
• IMPOSE RULES AND PROCESS
• CODE
• Defense coding
• Use proper naming conventions on your projects
Examples :
Products
<Company>.<Project>.<Technology>.<..>
Projects
<Client>.<Project>
18. • Functionalities used to extend the SharePoint
platform capabilities
• Hosted within the SharePoint Farm and
executed in the main SharePoint worker
process (w3wp) or timer service (OWSTimer)
• Tightly couple with the platform and the host
19. Deployments usually cause downtime
Impact on Service Level Agreements as
well as availability
Very expensive to maintain
Complex ALM processes
20. loosely platform coupling
All code runs outside of the SharePoint farm
Easier to upgrading and scaling up
Higher availability
21. Most of the on-premises clients still have it, even in the most recent
versions
Platform evolved but the FTC solutions challenges are still there
Action points to minimize the impact :
Leverage client side development for new features.
Avoid the feature framework, use remote provision
Evaluate code, dependencies complexity and customization
levels (*SPCAF – Rencore)
2007
2010
2013
2016
2019
22.
23. • Add-in model
(SharePoint Office)
SharePoint Office
Provider-hosted
App authentication - context
tokens/access tokens, app-only policy etc.
Infrastructure requirements
• Remote SharePoint/SharePoint
Online development
techniques
NET CSOM and JSOM
• Using CSOM in PowerShell
• The REST API
25. •General SharePoint/SharePoint Online development (1/2)
• Classical site vs Modern site
• Key building blocks for out-of-the-box solutions
• Search-based solutions - Content Search web part, search APIs etc.
• Managed Properties/Crawled Properties - provisioning (including
differences in SharePoint Online), auto-created properties, using in
search refiners etc.
26. • General SharePoint/SharePoint Online development (2/2)
• Display templates - provisioning templates, the end-to-end process
of having values from a custom column displayed in a display
template (via a custom Managed Property)
• Branding options – Office 365 theming, alternate CSS, etc
• Server side development Tooling (Visual Studio , SharePoint Feature
Framework)
27. •General Web Development
• Responsive design
• JavaScript : Jquery; cross domain issues, client side frameworks – Angular , React , VueJS
• Typescript - typed superset of JavaScript that compiles to plain JavaScript
• Node.JS and NPM (Node Package Manager)
• Gulp - build process task runner
• WebPack – module bundler
• Yeoman – Web scaffolding tool (generator)
• VSCode
28.
29. SP 2013 Search Query Tool
Test and debug search queries in Search REST API
https://github.com/SharePoint/PnP-
Tools/tree/master/Solutions/SharePoint.Search.QueryTool
SharePoint 2013/2016/Online
SharePoint Manager 20132016
SharePoint object model explorer
https://archive.codeplex.com/?p=spm
All versions
SharePoint Client Browser
SharePoint object model explorer
https://github.com/bramdejager/spcb
All versions
Caml Designer 2013
Buildtest SharePoint CAML Queries
http://www.camldesigner.com
SharePoint 2010,2013,O365
SPFastDeploy
Deploy single or multiple file resource to on-
premises and O365 SharePoint Add-In Model
http://bit.ly/SPFastDeploy
SharePoint 2013,2016,O365
Visual Studio Extension for SPFx
http://bit.ly/VsSPFxTemplate
,SP2016 FP2,SP2019, O365
30. Office 365 Developer PnP
PnP guidance
https://github.com/OfficeDev/PnP
SP2013,SP2016,O365
*PnPCandy - self contained packages with
SharePoint Assets and PnPPowers for
Developers, ITPros and EndUsers
(available soon in PnP Github)
34. Magazine website,
collaboration and publishing tools
6 Months developing
12 persons involved
3 external teams
development resulted
in a core framework
35. Magazine website,
collaboration and publishing tools
2 Months developing
5 persons involved
No external teams
core framework
externalized as a service
platform
36. Magazine website,
collaboration and publishing tools
2 weeks developing
1,5 person involved
No external teams
service platform as a
corporate asset
37. PnPCandys
are self contained
packages with SharePoint
Assets and PnPPowers for
Developers, ITPros and
EndUsers
PnPCandy Artifacts can
be leverage in the same
platforms versions as
PnP, because ...
…they are PnP based
packages