SlideShare a Scribd company logo
1 of 31
Leveling Up
Choosing your Client-side Inventory
2 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Software Engineer at Applied Information Sciences
• Contributing Author: Microsoft SharePoint 2013 Inside Out
• Year 12 of 15-Life with SharePoint
• @SPSamL
• samlarko@gmail.com
• Sam.larko@appliedis.com
• Developertherapy.blogspot.com
• Blog.Appliedis.com
About your DM
3 | © 2018 Applied Information Sciences, Inc.
• Founded 1982
• Headquartered in
Reston, VA
• Regional Offices in
Columbia, Maryland;
Raleigh, North Carolina;
Dayton, Ohio; Austin,
Houston and San
Antonio, Texas;
Hyderabad, India
About AIS
• 50% government and 50% commercial clients
• 450+ employees
• Washington Business Journal Top 50 Fastest
Growing Companies
• Washington Business Journal Best Places to Work
San Antonio, Texas:
TS/SCI Cleared Data Center Technicians
Azure Architects
Azure Developers
Check out our openings:
www.WorkatAIS.com
Email our Recruiting team:
Recruiting@appliedis.com
We’re Hiring!
5 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• State of JavaScript
• Questions to consider
• SharePoint/O365
• JS Library Categories
• Tie it together
Quest Steps
6 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• 2017 survey of 20k+ devs
• +/- 200 libraries/tools/languages used
• 8 major categories
State of JS – stateofjs.com
7 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
1. What tools/libraries does the team have experience with?
2. Is there existing code? What does it depend on?
i. Does it make sense to replace?
3. Core web technologies or a customized version of them?
4. How big is the library?
5. Does it allow 3rd-party widgets? How hard to integrate?
6. What educational resources are available?
7. What is the support story?
Considerations
9 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
SharePoint Development
SharePoint
2010
SharePoint 2013 SharePoint 2016 SharePoint Online
Farm Solutions
Sandbox Solutions
SharePoint Hosted App
Provider Hosted App
SharePoint Framework
Ad-hoc/Manual JS
Feature Pack 2 required
10 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Client-side Object Model (C# & JS)
• SharePoint Framework
• SPServices
• Graph API
• Office UI Fabric
• Patterns & Practices
Client-side SharePoint
11 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• ES6
• TypeScript
• CoffeeScript
Flavors/Transpilers
12 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Current standard of JS
• Features
• Arrow Functions
• Modules
• Template Literals
• Classes
• Promises
ES6
13 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Simplifies code
• Removes most symbols
• New line, new command*
• Whitespace matters
• No extra files…just JS
CoffeeScript
14 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Superset of JavaScript
• Strongly-typed variables
• Visual Studio Intellisense
• OOP
• Still just JavaScript
• ES Feature Implementations:
• Most ES5
• Many ES6
• Some ES7
TypeScript
16 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Angular
• React
• Vue
Front-end
17 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Coffee-serving kitchen sink == BIG
• AngularJS vs Angular (2,4,5,6)
• JS vs TS
• Routing
• Dependency Injection
• Directives
• Services
Angular
18 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Virtual DOM
• One-way data binding
• JSX
React
19 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Similarities to Knockout and Angular syntax
• Single File Components
• Small
• Reactive variables
Vue
21 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Vanilla CSS
• SASS/SCSS
• Bootstrap
CSS
22 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Tried and true
• CSS3 introduces many new features
• Animations, Transitions, 3D Transforms
• Calculations
• Media queries
• Webfonts
Vanilla CSS
23 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Pre-processor
• Works with CSS
• Directives: Mixins, Content
• Variables
• Nesting
SASS
24 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Grid system
• Responsive
• Lots of components
• JS plugins
• Templates
Bootstrap
26 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Scaffolding
• Build & Packaging
• Package Management
Tools
27 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Yeoman
• Slush
• CLIs
Scaffolding
28 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Webpack
• Gulp
Build and Packaging
29 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Bundler
• Complex configuration
• Extended with loaders/plugins
Webpack
30 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• Task Runner
• Plugins
Gulp
31 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• NPM
• Yarn
• Bower
• Nuget
Package Management
33 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• SPFx – default choices are made
• On-Prem/Add-Ins – generally free reign
Applied to SharePoint
35 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
• A lot of links, just check out my Pocket list and search for any of the library
names as tags
sharedli.st/spsaml
Resources
36 | © 2018 Applied Information Sciences, Inc. www.appliedis.com
Questions
FOLLOW US AT:
@AISTeam
blog.appliedis.com/

More Related Content

What's hot

What's hot (20)

SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS London 2017 - Building applications with PowerApps, Microsoft flow and Of...
 
SPS Dubai 2017 - PowerApps & Microsoft Flow: Advanced scenarios
SPS Dubai 2017 - PowerApps & Microsoft Flow: Advanced scenariosSPS Dubai 2017 - PowerApps & Microsoft Flow: Advanced scenarios
SPS Dubai 2017 - PowerApps & Microsoft Flow: Advanced scenarios
 
Future of SharePoint
Future of SharePoint Future of SharePoint
Future of SharePoint
 
SharePoint 2016 & the Future of Office 365 Roadmap
SharePoint 2016 & the Future of Office 365 RoadmapSharePoint 2016 & the Future of Office 365 Roadmap
SharePoint 2016 & the Future of Office 365 Roadmap
 
Building BI Dashboards Using Visio 2013
Building BI DashboardsUsing Visio 2013Building BI DashboardsUsing Visio 2013
Building BI Dashboards Using Visio 2013
 
Building dashboards with Visio Services
Building dashboards with Visio ServicesBuilding dashboards with Visio Services
Building dashboards with Visio Services
 
How does SharePoint access data
How does SharePoint access dataHow does SharePoint access data
How does SharePoint access data
 
Transformative Mobile Solutions - SharePoint and Nintex Case Study
Transformative Mobile Solutions - SharePoint and Nintex Case StudyTransformative Mobile Solutions - SharePoint and Nintex Case Study
Transformative Mobile Solutions - SharePoint and Nintex Case Study
 
Securing SharePoint Environment and its Content - SharePoint User Group UK Ca...
Securing SharePoint Environment and its Content - SharePoint User Group UK Ca...Securing SharePoint Environment and its Content - SharePoint User Group UK Ca...
Securing SharePoint Environment and its Content - SharePoint User Group UK Ca...
 
Model Driven PowerApps
Model Driven PowerAppsModel Driven PowerApps
Model Driven PowerApps
 
Sharepoint 2013 to sharepoint 2016 migration
Sharepoint 2013 to sharepoint 2016 migrationSharepoint 2013 to sharepoint 2016 migration
Sharepoint 2013 to sharepoint 2016 migration
 
SharePoint Custom Development ... Can we? Should we?
SharePoint Custom Development ... Can we? Should we?SharePoint Custom Development ... Can we? Should we?
SharePoint Custom Development ... Can we? Should we?
 
conceptClassifier Integration with Google Search Appliance
conceptClassifier Integration with Google Search ApplianceconceptClassifier Integration with Google Search Appliance
conceptClassifier Integration with Google Search Appliance
 
Cost cutting live meeting
Cost cutting live meetingCost cutting live meeting
Cost cutting live meeting
 
SPS Warsaw 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS Warsaw 2017 - Building applications with PowerApps, Microsoft flow and Of...SPS Warsaw 2017 - Building applications with PowerApps, Microsoft flow and Of...
SPS Warsaw 2017 - Building applications with PowerApps, Microsoft flow and Of...
 
SharePoint PnP Web cast Solvion Workbox
SharePoint PnP Web cast Solvion WorkboxSharePoint PnP Web cast Solvion Workbox
SharePoint PnP Web cast Solvion Workbox
 
Building an App Forms Business Solution - Penelope Coventry
Building an App Forms Business Solution - Penelope CoventryBuilding an App Forms Business Solution - Penelope Coventry
Building an App Forms Business Solution - Penelope Coventry
 
SharePoint Performance: Physical to Virtual to Microsoft Azure Cloud and Offi...
SharePoint Performance: Physical to Virtual to Microsoft Azure Cloud and Offi...SharePoint Performance: Physical to Virtual to Microsoft Azure Cloud and Offi...
SharePoint Performance: Physical to Virtual to Microsoft Azure Cloud and Offi...
 
Top 10 Reasons to Upgrade Migrate to SharePoint 2016 - Infographic
Top 10 Reasons to Upgrade Migrate to SharePoint 2016 - InfographicTop 10 Reasons to Upgrade Migrate to SharePoint 2016 - Infographic
Top 10 Reasons to Upgrade Migrate to SharePoint 2016 - Infographic
 
SharePoint 2016 vs SharePoint Online
SharePoint 2016 vs SharePoint OnlineSharePoint 2016 vs SharePoint Online
SharePoint 2016 vs SharePoint Online
 

Similar to Leveling up choosing your client-side inventory

Suresh_Kumar_Mahala [10729857]
Suresh_Kumar_Mahala [10729857]Suresh_Kumar_Mahala [10729857]
Suresh_Kumar_Mahala [10729857]
sureshmahala
 
Microsoft SharePoint Presentation from All Covered
Microsoft SharePoint Presentation from All CoveredMicrosoft SharePoint Presentation from All Covered
Microsoft SharePoint Presentation from All Covered
All Covered
 

Similar to Leveling up choosing your client-side inventory (20)

Word Add-Ins Using Javascript + HTML
Word Add-Ins Using Javascript + HTMLWord Add-Ins Using Javascript + HTML
Word Add-Ins Using Javascript + HTML
 
SharePoint and Office 365 State of the Market Survey Results Webinar
SharePoint and Office 365 State of the Market Survey Results WebinarSharePoint and Office 365 State of the Market Survey Results Webinar
SharePoint and Office 365 State of the Market Survey Results Webinar
 
Coexist or Integrate? How Add-ins Deliver an Integrated Environment to Manage...
Coexist or Integrate? How Add-ins Deliver an Integrated Environment to Manage...Coexist or Integrate? How Add-ins Deliver an Integrated Environment to Manage...
Coexist or Integrate? How Add-ins Deliver an Integrated Environment to Manage...
 
Suresh_Kumar_Mahala [10729857]
Suresh_Kumar_Mahala [10729857]Suresh_Kumar_Mahala [10729857]
Suresh_Kumar_Mahala [10729857]
 
O365Con18 - Good to Great SharePoint Governance - Eric Riz
O365Con18 - Good to Great SharePoint Governance - Eric RizO365Con18 - Good to Great SharePoint Governance - Eric Riz
O365Con18 - Good to Great SharePoint Governance - Eric Riz
 
Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'Microsoft PowerApps- 'What can really I do with it?'
Microsoft PowerApps- 'What can really I do with it?'
 
The world of enterprise solution development with asp.net and C#
The world of enterprise solution development with asp.net and C#The world of enterprise solution development with asp.net and C#
The world of enterprise solution development with asp.net and C#
 
Angular Or React – Don’t Roll The Dice
Angular Or React – Don’t Roll The DiceAngular Or React – Don’t Roll The Dice
Angular Or React – Don’t Roll The Dice
 
AWS Community Day Nordics 2018 - Saku Vaittinen (VR): Data driven public tran...
AWS Community Day Nordics 2018 - Saku Vaittinen (VR): Data driven public tran...AWS Community Day Nordics 2018 - Saku Vaittinen (VR): Data driven public tran...
AWS Community Day Nordics 2018 - Saku Vaittinen (VR): Data driven public tran...
 
Who Broke My Cloud? SaaS Monitoring Best Practices
Who Broke My Cloud? SaaS Monitoring Best PracticesWho Broke My Cloud? SaaS Monitoring Best Practices
Who Broke My Cloud? SaaS Monitoring Best Practices
 
PSC Case study: SP2013 Public Facing Internet Site - Roadrunner Transportatio...
PSC Case study: SP2013 Public Facing Internet Site - Roadrunner Transportatio...PSC Case study: SP2013 Public Facing Internet Site - Roadrunner Transportatio...
PSC Case study: SP2013 Public Facing Internet Site - Roadrunner Transportatio...
 
MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018MySQL 8.0, what's new ? - Forum PHP 2018
MySQL 8.0, what's new ? - Forum PHP 2018
 
Modern SharePoint Development - A quick guide
Modern SharePoint Development - A quick guideModern SharePoint Development - A quick guide
Modern SharePoint Development - A quick guide
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 
Portal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted TschoppPortal / BI 2008 Presentation by Ted Tschopp
Portal / BI 2008 Presentation by Ted Tschopp
 
Analytics at Carbonite: presentation to Snowplow Meetup Boston April 2016
Analytics at Carbonite: presentation to Snowplow Meetup Boston April 2016Analytics at Carbonite: presentation to Snowplow Meetup Boston April 2016
Analytics at Carbonite: presentation to Snowplow Meetup Boston April 2016
 
Tricks and Tips in Migrating to Office 365 and On-Premises to acoid migration...
Tricks and Tips in Migrating to Office 365 and On-Premises to acoid migration...Tricks and Tips in Migrating to Office 365 and On-Premises to acoid migration...
Tricks and Tips in Migrating to Office 365 and On-Premises to acoid migration...
 
JahiaOne - Universite Laval: How our team has tripled production of quality w...
JahiaOne - Universite Laval: How our team has tripled production of quality w...JahiaOne - Universite Laval: How our team has tripled production of quality w...
JahiaOne - Universite Laval: How our team has tripled production of quality w...
 
Microsoft SharePoint Presentation from All Covered
Microsoft SharePoint Presentation from All CoveredMicrosoft SharePoint Presentation from All Covered
Microsoft SharePoint Presentation from All Covered
 
Reduce Your Taxonomy Deployment Time from Months to Weeks Webinar
Reduce Your Taxonomy Deployment Time from Months to Weeks WebinarReduce Your Taxonomy Deployment Time from Months to Weeks Webinar
Reduce Your Taxonomy Deployment Time from Months to Weeks Webinar
 

Recently uploaded

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
anilsa9823
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Leveling up choosing your client-side inventory

  • 1. Leveling Up Choosing your Client-side Inventory
  • 2. 2 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Software Engineer at Applied Information Sciences • Contributing Author: Microsoft SharePoint 2013 Inside Out • Year 12 of 15-Life with SharePoint • @SPSamL • samlarko@gmail.com • Sam.larko@appliedis.com • Developertherapy.blogspot.com • Blog.Appliedis.com About your DM
  • 3. 3 | © 2018 Applied Information Sciences, Inc. • Founded 1982 • Headquartered in Reston, VA • Regional Offices in Columbia, Maryland; Raleigh, North Carolina; Dayton, Ohio; Austin, Houston and San Antonio, Texas; Hyderabad, India About AIS • 50% government and 50% commercial clients • 450+ employees • Washington Business Journal Top 50 Fastest Growing Companies • Washington Business Journal Best Places to Work
  • 4. San Antonio, Texas: TS/SCI Cleared Data Center Technicians Azure Architects Azure Developers Check out our openings: www.WorkatAIS.com Email our Recruiting team: Recruiting@appliedis.com We’re Hiring!
  • 5. 5 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • State of JavaScript • Questions to consider • SharePoint/O365 • JS Library Categories • Tie it together Quest Steps
  • 6. 6 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • 2017 survey of 20k+ devs • +/- 200 libraries/tools/languages used • 8 major categories State of JS – stateofjs.com
  • 7. 7 | © 2018 Applied Information Sciences, Inc. www.appliedis.com 1. What tools/libraries does the team have experience with? 2. Is there existing code? What does it depend on? i. Does it make sense to replace? 3. Core web technologies or a customized version of them? 4. How big is the library? 5. Does it allow 3rd-party widgets? How hard to integrate? 6. What educational resources are available? 7. What is the support story? Considerations
  • 8. 9 | © 2018 Applied Information Sciences, Inc. www.appliedis.com SharePoint Development SharePoint 2010 SharePoint 2013 SharePoint 2016 SharePoint Online Farm Solutions Sandbox Solutions SharePoint Hosted App Provider Hosted App SharePoint Framework Ad-hoc/Manual JS Feature Pack 2 required
  • 9. 10 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Client-side Object Model (C# & JS) • SharePoint Framework • SPServices • Graph API • Office UI Fabric • Patterns & Practices Client-side SharePoint
  • 10. 11 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • ES6 • TypeScript • CoffeeScript Flavors/Transpilers
  • 11. 12 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Current standard of JS • Features • Arrow Functions • Modules • Template Literals • Classes • Promises ES6
  • 12. 13 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Simplifies code • Removes most symbols • New line, new command* • Whitespace matters • No extra files…just JS CoffeeScript
  • 13. 14 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Superset of JavaScript • Strongly-typed variables • Visual Studio Intellisense • OOP • Still just JavaScript • ES Feature Implementations: • Most ES5 • Many ES6 • Some ES7 TypeScript
  • 14. 16 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Angular • React • Vue Front-end
  • 15. 17 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Coffee-serving kitchen sink == BIG • AngularJS vs Angular (2,4,5,6) • JS vs TS • Routing • Dependency Injection • Directives • Services Angular
  • 16. 18 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Virtual DOM • One-way data binding • JSX React
  • 17. 19 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Similarities to Knockout and Angular syntax • Single File Components • Small • Reactive variables Vue
  • 18. 21 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Vanilla CSS • SASS/SCSS • Bootstrap CSS
  • 19. 22 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Tried and true • CSS3 introduces many new features • Animations, Transitions, 3D Transforms • Calculations • Media queries • Webfonts Vanilla CSS
  • 20. 23 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Pre-processor • Works with CSS • Directives: Mixins, Content • Variables • Nesting SASS
  • 21. 24 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Grid system • Responsive • Lots of components • JS plugins • Templates Bootstrap
  • 22. 26 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Scaffolding • Build & Packaging • Package Management Tools
  • 23. 27 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Yeoman • Slush • CLIs Scaffolding
  • 24. 28 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Webpack • Gulp Build and Packaging
  • 25. 29 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Bundler • Complex configuration • Extended with loaders/plugins Webpack
  • 26. 30 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • Task Runner • Plugins Gulp
  • 27. 31 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • NPM • Yarn • Bower • Nuget Package Management
  • 28. 33 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • SPFx – default choices are made • On-Prem/Add-Ins – generally free reign Applied to SharePoint
  • 29. 35 | © 2018 Applied Information Sciences, Inc. www.appliedis.com • A lot of links, just check out my Pocket list and search for any of the library names as tags sharedli.st/spsaml Resources
  • 30. 36 | © 2018 Applied Information Sciences, Inc. www.appliedis.com Questions

Editor's Notes

  1. Includes non-js options like .Net and PHP Categories: Flavors (ES6), Front-end (React), State Management (REST API, Redux), Back-end (Express), Testing (Mocha), CSS (SASS/SCSS), Build Tools (NPM), Mobile (Native, Electron)
  2. 1. Don’t overdo new stuff. Could kill the project. 2. Depending on amount of existing libraries, may make sense to keep with existing. Is there value in replacing? Will it fit into the schedule? 3. Vanilla JS vs Elm/TS/CoffeeScript. CSS vs SASS. Standard vs custom modules 4. Small utility or MV* framework? MomentJS vs Angular 5. Think Kendo UI, Jquery UI, Office UI Fabric 6. Free vs Paid. Blog vs video vs conference. Do authors provide support (free or paid)? 7. Is it maintained? What’s the update cycle? Are bugs fixed in a timely fashion?
  3. J/CSOM: Since 2010, API for accessing SP assets/objects SPFx: New Toy! Framework for building webparts and extensions (UI customizations: notifications, toolbars, and list views) SPServices: wrapper for old XML web services, built on Jquery, added functionality (i.e. cascading dropdowns) Graph API: REST APIs for Office 365 (AAD, SPO, 1Drive, Teams, Planner, ID Mngr, Intune, etc) OUIF: official UI of O365, Icons, Typography, Brand icons, buttons, additional components (i.e. Combo box, Date Picker) P&P: Wrapper for REST API, JSOM-like, components (i.e. Taxonomy picker, People Picker)
  4. EE: Elm, Flow, ClojureScript, Reason
  5. Arrow: Think Lambdas. Anonymous function means this maintains calling scope Modules: members are private by default. Solves dependency chains. With bundlers, limits number of script tags needed Temp Lit: C# String Interpolation. No more string concat’ing. Classes: Not like C# classes. Cleaner implementation for prototypes. No properties, just methods. Promises: synchronous programming in an async world. Just say no to race conditions. Differences between Promise and JQ Deferred. JQ-D doesn’t capture errors.
  6. No brackets, semicolons Nesting chains commands Still need parens for function calls Splats: Catches parameters as an array of objects
  7. Great for those of us who avoided JS Very C#-y Classes allow properties
  8. Other notables: Aurelia, Ember, Backbone, Polymer
  9. It does everything! MV* Framework V2 minified about 570K AngularJS == 1.x == pure JS Angular == 2+ == TS Routing: Navigation within the app w/o reloads (SPA) DI: Class receives dependencies externally rather than creating them Directives: custom DOM object: element/Component, attribute Services: Data managers. Calls the REST API or data source.
  10. 132K vDOM: Same props as real DOM, but can’t change screen. JSX render every vDOM object is updated. React then compares vDOM before/after update (diffing), then updates diffs in real DOM only 1Way: Use this.props to store variables rendered by child components. JSX: Preprocessor, JS XML, Allows directive-like functionality (i.e. ChildComponent)
  11. 63K Angular == handlebars {{ varName }} KO == v-for, v-if .Vue files store HTML, JS, and CSS – Can pseudo-split using <script src=“x.css”> and require(“ViewModelClass”) Vars are observables by default Style scoped = scopes CSS to only this component
  12. LESS, Stylus
  13. Animations: Auto-start, loopable Transitions: Triggered on CSS prop change (:hover), explicit monitoring of changes Calc: Cross measurement calculations, use case: content div has prev sibling header. Content div needs to scroll on small height. Parent element doesn’t have height set (else overflow-y works) Media: responsive design glue, types (all, print, screen, speech) - only: older browsers won’t render, requires media type - not: inverse of query, requires media type - and: both conditions must be true - or ( , ): comma instead of word Webfonts: link to font, formats: TrueType (TTF), OpenType (OTF), Web Open Font Format (WOFF/WOFF 2.0), SVG Fonts/Shapes, Embedded OpenType (EOT)
  14. Extends CSS with code-like features Mixins: Group CSS declarations for reuse Content: Allows extending a mixin…Sort of inheritance-like Vars: One value to rule them all…or reuse, at least Nesting: Clearer scoping
  15. Design/Styling framework built on HTML and CSS Grid: 12 column grid using classes: container, row, col-<size> Components: glyphicon, navbar, alerts, etc JS Plugins: Jquery based, modals, carousel, tabs, collapse Templates: free and paid options
  16. Free up time for devs to spend time decluttering inbox and avoiding extra meetings Scaffolding: creates files w/ boilerplate code B&P: optimizations, deployment PM: import libraries
  17. Generators scaffold whole projects to useful parts Yeoman: King of the hill, many generators Slush: new, gulp based, few generators CLIs: Angular/Vue/React, geared to specific library only, conventions/features are baked in
  18. Initial use: Combine and minify Loaders: Transpile (TS > JS, images > data URLs), import files directly from modules, Plugins: Minify, copy files to another/build directory, compress assets, etc.
  19. Automate tedious build processes: bundle, minify, compression 3 main methods: gulp.task, gulp.src, gulp.dest .pipe: Promise-like task call
  20. NPM – King of JS packages, shrinkwrap for exact version tracking, needs to be called for updates Yarn – built on NPM, yarn.lock file w/ exact installed package versions, keeps lock file updated (NPM doesn’t), faster than npm Bower – 16K+ client-side packages registered, being maintained but suggested to move to Yarn and Webpack Nuget – Does have client-side packages, but primarily .Net/server-side
  21. SPFx – npm, gulp, mocha, React/KO/none, TypeScript - Vue is easy enough, Angular 2+ sort-of, Sahil Malik has a PoC demo