This document discusses the SharePoint Framework (SPFx) which provides a new model for client-side development in SharePoint. It addresses issues with previous development models like farm solutions and uncontrolled JavaScript. SPFx uses modern web tools and frameworks and provides controls for tenant administrators. The document covers SPFx tools, deployment using package files, governance through approval processes, security considerations, and using a CDN for assets. It emphasizes that SPFx gives more freedom but also requires embracing new techniques and tools.
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
SPSNL17 - Getting started with SharePoint development for the reluctant IT Pro - Elio Struyf & Thomas Vochten
1. #SPSNL17 - @thomasvochten @eliostruyf
SharePoint Saturday Netherlands 2017 | @thomasvochten @eliostruyf
SharePoint Framework for
the reluctant IT PRO
5. #SPSNL17 - @thomasvochten @eliostruyf
Questions
• Why did we need another development model?
• Why would we care as administrators?
• What do I need to know about the SharePoint Framework?
• How exactly are dark-themed command-line tools cool again?
• What about security?
• How do I control which customizations make it into my tenant?
• What about on-premises?
• Never mind. Show me some code!
11. #SPSNL17 - @thomasvochten @eliostruyf
Add-Ins maybe?
• Still supported in SharePoint Online
• Can work side-by-side with SPFx
• Allow for great flexibility
• Can become complicated very quickly
• Use a different security model (IFrame)
• Are not responsive (IFrame)
• Can be distributed through the Store
12. #SPSNL17 - @thomasvochten @eliostruyf
Uncontrolled JavaScript code
• Much simpler than SharePoint Hosted Add-Ins
• But doesn’t use any model
• Typically through content/script editor webparts
• Heavy dependency on the DOM (Document Object Model)
• Tendency to break when SharePoint Online changes
• Difficult to control by the administrators: On or Off only
13.
14. #SPSNL17 - @thomasvochten @eliostruyf
What can go wrong with client-side code?
• What runs where?
• How many scripts?
• Do you actually know
who wrote it?
• What happens when
your server crashes?
• …
16. #SPSNL17 - @thomasvochten @eliostruyf
A better model for client-side development
• A unified and new way of working
• A set of development and deployment rules
• Tenant admins regain control over customizations
• Use the same tools as the product team
• Restrictions to development so SharePoint stays in control
17. #SPSNL17 - @thomasvochten @eliostruyf
SharePoint Framework v1.0.0
• Generally available since February 2017
• Focuses on user interface extensibility
• Currently only offers web-part like functionalities
• Uses client-side technologies
• Works with SharePoint Online
• New language, new tools, new frameworks
18. #SPSNL17 - @thomasvochten @eliostruyf
What is expected from you?
• Rather steep learning curve for seasoned SharePoint developers
• Embraces standard, modern web technologies
• A lot more freedom when it comes to tools
• Typically no Visual Studio is involved
19. #SPSNL17 - @thomasvochten @eliostruyf
Great, I want to use this on-premises too!
• SharePoint Server 2016 Feature Pack 2
• No support for older SharePoint versions
25. #SPSNL17 - @thomasvochten @eliostruyf
Deploying SPFx customizations
• .sppkg files are your new friends
• Deployed tenant-wide
• Remove or disable the solution if needed
• Just upload a new version when you need to
• SharePoint Admin Center offers some statistics
• Site collection administrator can add the solution to the site
• Backup your package files and your CDN artifacts
• It’s still all about trust!
26. #SPSNL17 - @thomasvochten @eliostruyf
Deployment model
• Deploy to the App Catalog
• Assets need to be deployed to a
location under your control
• Validation during deployment
process by the admin
• Important: do not give developers
permissions to the app catalog
and asset location
29. #SPSNL17 - @thomasvochten @eliostruyf
SPFx in the Enterprise (aka The Real World)
Create a plan!
• Which tools to use and how to train your staff
• Which frameworks to use
• How and where to deploy (CDN)
• Application Lifecycle Management and DevOps
• Pro Tip: Unblock npm & GitHub sites in your firewall
35. #SPSNL17 - @thomasvochten @eliostruyf
Modern sites and “noscript”
• “Noscript” is by default enabled on Modern Sites
• What is the impact?
• No custom scripts on pages
• No JSLink in lists and libraries
• No custom actions
38. #SPSNL17 - @thomasvochten @eliostruyf
What is a CDN?
Content
Website
CDN CDN
Static assets Static assets
39. #SPSNL17 - @thomasvochten @eliostruyf
Thoughts about using CDN’s
• Critical part of the deployment
• Choose a highly available & reliable one
• Security implications of using a CDN are potentially big
• Carefully consider and check every CDN in your organization
• Office 365 has its own CDN, can be enabled through PowerShell.
• Anonymous access!
How farm solutions are bad.
How farm solutions are created.
Great for admins, not so great for developers
SharePoint will also support open source tooling to drive greater efficiencies when developing Parts and Apps. These tools should not be considered a replacement of an organizations traditional tools, but rather an extension of those, providing new opportunities to quickly get up and running with SharePoint development. If you’re familiar with Visual Studio development with SharePoint, this tools carry a lot of similarities with the tools you may already be familiar with for example:
Yeoman provides a generator ecosystem. A generator is basically a plugin that can be run with the `yo` command to scaffold complete projects or useful parts.
yo scaffolds out a new application, writing your build configuration (e.g Gruntfile, Gulpfile) and pulling in relevant build tasks and package manager dependencies (Bower, npm) that you might need for your build. This is similar to Project Scaffolding in Visual Studio.
Gulp
Automation - gulp is a toolkit that helps you automate painful or time-consuming tasks in your development workflow.
Platform-agnostic - Integrations are built into all major IDEs and people are using gulp with PHP, .NET, Node.js, Java, and other platforms.
Strong Ecosystem - Use npm modules to do anything you want + over 2000 curated plugins for streaming file transformations
Simple - By providing only a minimal API surface, gulp is easy to learn and simple to use
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
event driven JavaScript runtime, Node is designed to build scalable network applications similar to
VS SharePoint development: Gulp = MSBuild, NodeJS = IIS (Express), YeoMan = project scafolding in VS, TypeScript= typed superset of JavaScript