SlideShare a Scribd company logo
NEW JERSEY SHAREPOINT USER GROUP 
• Different SharePoint discussions each 
month on various topics. Announced on 
meetup.com 
• Meets 4th Tuesday of every month 
• 6pm – 8pm 
• Microsoft Office (MetroPark) 
• 101 Wood Ave, Iselin, NJ 08830 
• http://www.njspug.com
THANK YOU 
EVENT SPONSORS 
• Diamond & Platinum sponsors 
have tables here in the Fireside 
Lounge 
• Please visit them and inquire 
about their products & services 
• Also to be eligible for prizes 
make sure to get your bingo card 
stamped
What we’ll cover today 
4 
JavaScript in Content Editor Web Part (CEWP) 
JavaScript in an ASPX page – created in SharePoint Designer (SPD) 
REST – CRUD operations 
Bootstrap – just the basics 
Session Goals 
• Provide enough information for you to get started with a few basic 
examples to get past the initial learning curve 
• Focus on approaches that can be utilized by a Site Owner in SharePoint 
2010 / 2013 on premise or Office 365 without the App model
Session warning 
5 
This session is awesome 
There will be some code 
There will be awesome demos
About Jared 
6 
SharePoint Consultant with Slalom Consulting 
10+ years in the IT Field, 0 book deals 
President of CT SharePoint Users Group (www.ctspug.org) 
Blog: www.jaredmatfess.com 
Twitter: @JaredMatfess 
E-mail: JaredM@slalom.com
About Chris 
7 
SharePoint Lead at Saint Francis Hospital 
15+ years IT experience 
Got married in April 
Not president of CT SharePoint Users 
Group (www.ctspug.org) 
Author of SharePoint 2013 Web Analytics 
Data Export CodePlex project 
http://sp2013wade.codeplex.com
About Schmidt 
8 
Great movie starring Jack Nicholson 
Has nothing to do with our presentation 
Spoiler Alert: Kathy Bates skinny dips in 
a hot tub
9 
Demo 
$("#code").show();
So why Client Side Development? 
10 
Why JavaScript?
SharePoint “upgrades” are terrible 
11
The pain.. 
12 
Migrating lots of old data 
The fight to define (or justify) Information Architecture 
The G-Word (Governance) 
Technology – acquiring the hardware 
Addressing the Customizations
Does it need to be server side code? 
13 
Server Side Code 
Timer jobs 
Custom site definitions 
3rd party products where you have no choice 
Custom workflows (when you don’t own Nintex or K2) 
Client Side Code 
Everything else
The big M(icrosoft) 
14 
O365 is Microsoft’s “Cash Cow” 
You cannot deploy server-side code to O365 
MSFT is rolling out features to O365 first 
On premises second 
The client side API’s are getting better! 
Everybody’s doing – JavaScript is blowing up
15
JavaScript 
16
Benefits of JavaScript 
17 
SharePoint Admins are happy to get those WSP’s out of their farm 
Developers are happy because they can deploy new functionality without 
those grumpy SharePoint Admins 
JavaScript skills translate to other opportunities outside of SharePoint
It’s starting to feel a lot like NASCAR 
18
Our recommendation for beginners… 
19 
Here are the frameworks / libraries that I’d like to talk about: 
JavaScript 
jQuery 
Most of the code samples you'll find on the web use jQuery 
Bootstrap 
*As advertised in the session description 
jQuery 
20 
jQuery is the most popular JavaScript library in use today 
Used by over 60% of the 10,000 most visited websites 
It’s probably in your environment and you don’t even know it 
Greatly simplifies cross-browser client-side scripting of HTML 
Handles compatibility issues with older browsers (ex: IE6 / IE7 / IE8) 
Most SharePoint code examples on the internet use jQuery
Where do I put my scripts? 
21 
Option #1 Place code directly in Content Editor Web Part (CEWP) 
• Not so good 
Option #2 Create a “Scripts” library and put them there – much better 
• Enable Versioning (just in case) 
Option #3 Drop it in the hive (on premise only)? 
• Only if you want to dance with danger 
Option #4 Bundle with a SharePoint App (2013 only)
What tools do I need to write code? 
22 
Your favorite text editior (ex: NotePad ++) 
Visual Studio 
Sublime 
Web Storm 
Emacs or Vim for the hardcore 
The list goes on and on…
What tools do I need to troubleshoot 
code? 
23 
Internet Explorer F12 Developer Tools 
Chrome Developer Tools 
Firefox / Firebug 
Fiddler
24
REST Fundamentals 
25 
The term representational state transfer was introduced and defined in 2000 by 
Roy Fielding in his doctoral dissertation at UC Irvine 
What is REST or RESTful? 
Representational State Transfer – is that helpful? 
A RESTful service adheres to the 4 basic design principals outlined in Fielding’s 
dissertation 
Often times referred to as an alternative to SOAP
REST Design Principles 
26 
Four basic design principles: 
Use HTTP methods explicitly (POST, GET, PUT, DELETE) 
Be stateless 
Expose directory structure-like URIs 
Transfer XML, JavaScript Object Notation (JSON), or both
Reading Data using REST / jQuery 
27 
JavaScript with jQuery 
$.ajax({ 
url: "http://siteurl/_api/web/lists", 
type: "GET", 
headers: { 
"ACCEPT": "application/json;odata=verbose" 
}, 
success: doSuccess, 
error: doError 
});
Working with REST 
28 
Since REST uses HTTP methods you can test your queries in the browser 
https://ctsharepointusergroup.sharepoint.com/bootstrap/_api/Web/Lists/GetByTitle('CustomNews')
Working with IE (shudder) 
29 
Not helpful
Let’s fix that right quick! 
30
This is way more helpful! 
31
Better yet… 
32 
Postman is Google Chrome 
extension that can be used to 
quickly create and test REST calls 
Can execute different types of 
HTTP requests (GET, POST, 
DELETE, PATCH etc.) 
Output can be “Raw” or “Pretty” 
for improved readability 
http://www.getpostman.com 
Postman REST Client for Chrome
Creating Data using REST 
33 
JavaScript with JQuery 
jQuery.ajax({ 
url: “http://siteurl/_api/web/lists”, 
type: "POST", 
data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': 
true, 'BaseTemplate': 100, 
'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 
'Test' } ), 
headers: { 
"accept": "application/json;odata=verbose", 
"content-type":"application/json;odata=verbose", 
"content-length":length of post body 
"X-RequestDigest": $("#__REQUESTDIGEST").val() 
}, 
success: doSuccess, 
error: doError 
});
Updating Data using REST 
34 
JavaScript with JQuery 
jQuery.ajax({ 
url: “http://siteurl/_api/web/lists/GetByTitle(‘Test')”, 
type: "POST", 
data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'Title': 'New title' 
} ), 
headers: { 
“X-HTTP-Method”:”MERGE”, 
"accept": "application/json;odata=verbose", 
"content-type": "application/json;odata=verbose", 
"content-length":length of post body 
"X-RequestDigest": $("#__REQUESTDIGEST").val(), 
“IF-MATCH”: “*” 
}, 
success: doSuccess, 
error: doError 
});
Putting it All Together for a Simple 
Example 
35 
1. Create a Document Library called Scripts and enable Versioning 
2. Download a copy of jQuery and upload to Scripts library 
3. Create a .txt file in your favorite code editor that contains or links to your 
HTML, CSS, and JavaScript 
4. Add an empty Content Editor Web Part (CEWP) to any SharePoint Page 
where you would like to put your content 
5. Configure Content Editor Web Part (CEWP) to point at .txt file with code
36 
Demo 
$("#code").show();
37 
2 
3 
4 
5 
6 
1
38
Bootstrap 
39
Bootstrap in action.. 
40
Pro Tip! 
41 
Watch out for XML validation issues with your design: 
<open tag></close tag> = works 
<tag stuff /> = not so much
Quick mock-up in Bootstrap 
42
Putting it All Together for a Simple 
Example 
43 
1. Create an empty .ASPX page in the Site Pages library with SharePoint 
Designer 
2. Download Bootstrap files and copy to SharePoint library 
3. Copy Bootstrap boilerplate HTML code into .ASPX page 
4. Update HTML content placeholders to have unique Ids 
5. Add JavaScript (equivalent to previous demo)
44 
Demo 
$("#code").show();
Code for Bootstrap Demo 
45
46 
Training / Resources
Books, books, and more books... 
47
© 2012 Slalom, LLC. All rights reserved. The information herein is for informational purposes only and represents the current view of Slalom, LLC. as of the date of this presentation. 
SLALOM MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related Content

What's hot

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
Mark Rackley
 
SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsMark Rackley
 
HTML5
HTML5HTML5
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptHTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
Todd Anglin
 
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram ExperienceSharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
Ricardo Wilkins
 
An Introduction To HTML5
An Introduction To HTML5An Introduction To HTML5
An Introduction To HTML5
Robert Nyman
 
Html5 Basics
Html5 BasicsHtml5 Basics
Html5 Basics
Pankaj Bajaj
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
Chad Schroeder
 
Intro to html5 Boilerplate
Intro to html5 BoilerplateIntro to html5 Boilerplate
Intro to html5 Boilerplate
Michael Enslow
 
An Introduction to HTML5
An Introduction to HTML5An Introduction to HTML5
An Introduction to HTML5
Steven Chipman
 
Introduction to html 5
Introduction to html 5Introduction to html 5
Introduction to html 5
Sayed Ahmed
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
Gil Fink
 
DSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional testsDSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional tests
Mikalai Alimenkou
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
Christian Baranowski
 
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Geoff Varosky
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
dynamis
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object pattern
Michael Palotas
 
HTML5 New Features and Resources
HTML5 New Features and ResourcesHTML5 New Features and Resources
HTML5 New Features and ResourcesRon Reiter
 
Html 5
Html 5Html 5

What's hot (20)

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
 
SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentials
 
HTML5
HTML5HTML5
HTML5
 
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScriptHTML5 Bootcamp: Essential HTML, CSS, & JavaScript
HTML5 Bootcamp: Essential HTML, CSS, & JavaScript
 
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram ExperienceSharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
SharePoint PowerShell for the Admin and Developer - A Venn Diagram Experience
 
An Introduction To HTML5
An Introduction To HTML5An Introduction To HTML5
An Introduction To HTML5
 
Html5 Basics
Html5 BasicsHtml5 Basics
Html5 Basics
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
Intro to html5 Boilerplate
Intro to html5 BoilerplateIntro to html5 Boilerplate
Intro to html5 Boilerplate
 
An Introduction to HTML5
An Introduction to HTML5An Introduction to HTML5
An Introduction to HTML5
 
Introduction to html 5
Introduction to html 5Introduction to html 5
Introduction to html 5
 
Introduction to HTML5
Introduction to HTML5Introduction to HTML5
Introduction to HTML5
 
DSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional testsDSL, Page Object and Selenium – a way to reliable functional tests
DSL, Page Object and Selenium – a way to reliable functional tests
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...
 
HTML5 Introduction
HTML5 IntroductionHTML5 Introduction
HTML5 Introduction
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object pattern
 
orcreatehappyusers
orcreatehappyusersorcreatehappyusers
orcreatehappyusers
 
HTML5 New Features and Resources
HTML5 New Features and ResourcesHTML5 New Features and Resources
HTML5 New Features and Resources
 
Html 5
Html 5Html 5
Html 5
 

Similar to A Beginner's Guide to Client Side Development with Javascript

SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET Developer
John Calvert
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
Mark Rackley
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
gueste918732
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Anupam Ranku
 
Introduction to PowerShell - Be a PowerShell Hero - SPFest workshop
Introduction to PowerShell - Be a PowerShell Hero - SPFest workshopIntroduction to PowerShell - Be a PowerShell Hero - SPFest workshop
Introduction to PowerShell - Be a PowerShell Hero - SPFest workshop
Michael Blumenthal (Microsoft MVP)
 
Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for Beginners
D'arce Hess
 
No Feature Solutions with SharePoint
No Feature Solutions with SharePointNo Feature Solutions with SharePoint
No Feature Solutions with SharePoint
mikehuguet
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
zonathen
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
Marc D Anderson
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
Frank La Vigne
 
2012 - HTML5, CSS3 and jQuery with SharePoint 2010
2012 - HTML5, CSS3 and jQuery with SharePoint 20102012 - HTML5, CSS3 and jQuery with SharePoint 2010
2012 - HTML5, CSS3 and jQuery with SharePoint 2010
Chris O'Connor
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
Rene Modery
 
JavaScript front end performance optimizations
JavaScript front end performance optimizationsJavaScript front end performance optimizations
JavaScript front end performance optimizations
Chris Love
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
Jeremy Thake
 
German introduction to sp framework
German   introduction to sp frameworkGerman   introduction to sp framework
German introduction to sp framework
Bob German
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
Bob German
 
php
phpphp
SharePoint for ASP.Net Developers
SharePoint for ASP.Net DevelopersSharePoint for ASP.Net Developers
SharePoint for ASP.Net Developers
Greg Hurlman
 
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB
 
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
 

Similar to A Beginner's Guide to Client Side Development with Javascript (20)

SharePoint for the .NET Developer
SharePoint for the .NET DeveloperSharePoint for the .NET Developer
SharePoint for the .NET Developer
 
SPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePointSPTechCon 2014 How to develop and debug client side code in SharePoint
SPTechCon 2014 How to develop and debug client side code in SharePoint
 
Sps Boston The Share Point Beast
Sps Boston   The Share Point BeastSps Boston   The Share Point Beast
Sps Boston The Share Point Beast
 
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
Office 365 Saturday (Sydney) - SharePoint framework – build integrated user e...
 
Introduction to PowerShell - Be a PowerShell Hero - SPFest workshop
Introduction to PowerShell - Be a PowerShell Hero - SPFest workshopIntroduction to PowerShell - Be a PowerShell Hero - SPFest workshop
Introduction to PowerShell - Be a PowerShell Hero - SPFest workshop
 
Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for Beginners
 
No Feature Solutions with SharePoint
No Feature Solutions with SharePointNo Feature Solutions with SharePoint
No Feature Solutions with SharePoint
 
Intro to mobile web application development
Intro to mobile web application developmentIntro to mobile web application development
Intro to mobile web application development
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
 
Intro to .NET for Government Developers
Intro to .NET for Government DevelopersIntro to .NET for Government Developers
Intro to .NET for Government Developers
 
2012 - HTML5, CSS3 and jQuery with SharePoint 2010
2012 - HTML5, CSS3 and jQuery with SharePoint 20102012 - HTML5, CSS3 and jQuery with SharePoint 2010
2012 - HTML5, CSS3 and jQuery with SharePoint 2010
 
Introduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 
JavaScript front end performance optimizations
JavaScript front end performance optimizationsJavaScript front end performance optimizations
JavaScript front end performance optimizations
 
AUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.comAUSPC 2011: How we did it: NothingButSharePoint.com
AUSPC 2011: How we did it: NothingButSharePoint.com
 
German introduction to sp framework
German   introduction to sp frameworkGerman   introduction to sp framework
German introduction to sp framework
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
 
php
phpphp
php
 
SharePoint for ASP.Net Developers
SharePoint for ASP.Net DevelopersSharePoint for ASP.Net Developers
SharePoint for ASP.Net Developers
 
MongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch TutorialMongoDB.local Atlanta: MongoDB Stitch Tutorial
MongoDB.local Atlanta: MongoDB Stitch Tutorial
 
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?
 

More from SharePoint Saturday New Jersey

Building Mobile Apps With Xamarin and Visual Studio App Center
Building Mobile Apps With Xamarin and Visual Studio App CenterBuilding Mobile Apps With Xamarin and Visual Studio App Center
Building Mobile Apps With Xamarin and Visual Studio App Center
SharePoint Saturday New Jersey
 
Azure Active Directory
Azure Active DirectoryAzure Active Directory
Azure Active Directory
SharePoint Saturday New Jersey
 
The Definitive Guide for When to Use What In Office 365
The Definitive Guide for When to Use What In Office 365The Definitive Guide for When to Use What In Office 365
The Definitive Guide for When to Use What In Office 365
SharePoint Saturday New Jersey
 
Sps2015 intro to office 365 admin nikkia carter
Sps2015 intro to office 365 admin   nikkia carterSps2015 intro to office 365 admin   nikkia carter
Sps2015 intro to office 365 admin nikkia carter
SharePoint Saturday New Jersey
 
The anatomy of office 365 groups
The anatomy of office 365 groupsThe anatomy of office 365 groups
The anatomy of office 365 groups
SharePoint Saturday New Jersey
 
Integrating SSRS with SharePoint
Integrating SSRS with SharePointIntegrating SSRS with SharePoint
Integrating SSRS with SharePoint
SharePoint Saturday New Jersey
 
Where to save my data, for devs!
Where to save my data, for devs!Where to save my data, for devs!
Where to save my data, for devs!
SharePoint Saturday New Jersey
 
SharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 SlidesSharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 Slides
SharePoint Saturday New Jersey
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
SharePoint Saturday New Jersey
 
10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..
SharePoint Saturday New Jersey
 
Insights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint ApplicationsInsights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint Applications
SharePoint Saturday New Jersey
 
Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013
SharePoint Saturday New Jersey
 
Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013
SharePoint Saturday New Jersey
 
Anatomy of a mail app
Anatomy of a mail appAnatomy of a mail app
Anatomy of a mail app
SharePoint Saturday New Jersey
 
Exchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 IntegrationExchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 IntegrationSharePoint Saturday New Jersey
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
SharePoint Saturday New Jersey
 

More from SharePoint Saturday New Jersey (17)

Building Mobile Apps With Xamarin and Visual Studio App Center
Building Mobile Apps With Xamarin and Visual Studio App CenterBuilding Mobile Apps With Xamarin and Visual Studio App Center
Building Mobile Apps With Xamarin and Visual Studio App Center
 
Azure Active Directory
Azure Active DirectoryAzure Active Directory
Azure Active Directory
 
The Definitive Guide for When to Use What In Office 365
The Definitive Guide for When to Use What In Office 365The Definitive Guide for When to Use What In Office 365
The Definitive Guide for When to Use What In Office 365
 
Sps2015 intro to office 365 admin nikkia carter
Sps2015 intro to office 365 admin   nikkia carterSps2015 intro to office 365 admin   nikkia carter
Sps2015 intro to office 365 admin nikkia carter
 
The anatomy of office 365 groups
The anatomy of office 365 groupsThe anatomy of office 365 groups
The anatomy of office 365 groups
 
Integrating SSRS with SharePoint
Integrating SSRS with SharePointIntegrating SSRS with SharePoint
Integrating SSRS with SharePoint
 
Where to save my data, for devs!
Where to save my data, for devs!Where to save my data, for devs!
Where to save my data, for devs!
 
SharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 SlidesSharePoint Saturday NJ 2014 Slides
SharePoint Saturday NJ 2014 Slides
 
Improving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous IntegrationImproving the SharePoint Development Process with Continuous Integration
Improving the SharePoint Development Process with Continuous Integration
 
10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..10 points to make a rogue SharePoint environment really, really secure..
10 points to make a rogue SharePoint environment really, really secure..
 
Insights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint ApplicationsInsights and Monitoring of SharePoint Applications
Insights and Monitoring of SharePoint Applications
 
Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013Optimizing SQL Server 2012 for SharePoint 2013
Optimizing SQL Server 2012 for SharePoint 2013
 
Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013Integrating Office Web Apps with SharePoint 2013
Integrating Office Web Apps with SharePoint 2013
 
Anatomy of a mail app
Anatomy of a mail appAnatomy of a mail app
Anatomy of a mail app
 
Exchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 IntegrationExchange Server 2013 and SharePoint Server 2013 Integration
Exchange Server 2013 and SharePoint Server 2013 Integration
 
Term Store Navigation
Term Store NavigationTerm Store Navigation
Term Store Navigation
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 

Recently uploaded

Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 

Recently uploaded (20)

Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 

A Beginner's Guide to Client Side Development with Javascript

  • 1.
  • 2. NEW JERSEY SHAREPOINT USER GROUP • Different SharePoint discussions each month on various topics. Announced on meetup.com • Meets 4th Tuesday of every month • 6pm – 8pm • Microsoft Office (MetroPark) • 101 Wood Ave, Iselin, NJ 08830 • http://www.njspug.com
  • 3. THANK YOU EVENT SPONSORS • Diamond & Platinum sponsors have tables here in the Fireside Lounge • Please visit them and inquire about their products & services • Also to be eligible for prizes make sure to get your bingo card stamped
  • 4. What we’ll cover today 4 JavaScript in Content Editor Web Part (CEWP) JavaScript in an ASPX page – created in SharePoint Designer (SPD) REST – CRUD operations Bootstrap – just the basics Session Goals • Provide enough information for you to get started with a few basic examples to get past the initial learning curve • Focus on approaches that can be utilized by a Site Owner in SharePoint 2010 / 2013 on premise or Office 365 without the App model
  • 5. Session warning 5 This session is awesome There will be some code There will be awesome demos
  • 6. About Jared 6 SharePoint Consultant with Slalom Consulting 10+ years in the IT Field, 0 book deals President of CT SharePoint Users Group (www.ctspug.org) Blog: www.jaredmatfess.com Twitter: @JaredMatfess E-mail: JaredM@slalom.com
  • 7. About Chris 7 SharePoint Lead at Saint Francis Hospital 15+ years IT experience Got married in April Not president of CT SharePoint Users Group (www.ctspug.org) Author of SharePoint 2013 Web Analytics Data Export CodePlex project http://sp2013wade.codeplex.com
  • 8. About Schmidt 8 Great movie starring Jack Nicholson Has nothing to do with our presentation Spoiler Alert: Kathy Bates skinny dips in a hot tub
  • 10. So why Client Side Development? 10 Why JavaScript?
  • 12. The pain.. 12 Migrating lots of old data The fight to define (or justify) Information Architecture The G-Word (Governance) Technology – acquiring the hardware Addressing the Customizations
  • 13. Does it need to be server side code? 13 Server Side Code Timer jobs Custom site definitions 3rd party products where you have no choice Custom workflows (when you don’t own Nintex or K2) Client Side Code Everything else
  • 14. The big M(icrosoft) 14 O365 is Microsoft’s “Cash Cow” You cannot deploy server-side code to O365 MSFT is rolling out features to O365 first On premises second The client side API’s are getting better! Everybody’s doing – JavaScript is blowing up
  • 15. 15
  • 17. Benefits of JavaScript 17 SharePoint Admins are happy to get those WSP’s out of their farm Developers are happy because they can deploy new functionality without those grumpy SharePoint Admins JavaScript skills translate to other opportunities outside of SharePoint
  • 18. It’s starting to feel a lot like NASCAR 18
  • 19. Our recommendation for beginners… 19 Here are the frameworks / libraries that I’d like to talk about: JavaScript jQuery Most of the code samples you'll find on the web use jQuery Bootstrap *As advertised in the session description 
  • 20. jQuery 20 jQuery is the most popular JavaScript library in use today Used by over 60% of the 10,000 most visited websites It’s probably in your environment and you don’t even know it Greatly simplifies cross-browser client-side scripting of HTML Handles compatibility issues with older browsers (ex: IE6 / IE7 / IE8) Most SharePoint code examples on the internet use jQuery
  • 21. Where do I put my scripts? 21 Option #1 Place code directly in Content Editor Web Part (CEWP) • Not so good Option #2 Create a “Scripts” library and put them there – much better • Enable Versioning (just in case) Option #3 Drop it in the hive (on premise only)? • Only if you want to dance with danger Option #4 Bundle with a SharePoint App (2013 only)
  • 22. What tools do I need to write code? 22 Your favorite text editior (ex: NotePad ++) Visual Studio Sublime Web Storm Emacs or Vim for the hardcore The list goes on and on…
  • 23. What tools do I need to troubleshoot code? 23 Internet Explorer F12 Developer Tools Chrome Developer Tools Firefox / Firebug Fiddler
  • 24. 24
  • 25. REST Fundamentals 25 The term representational state transfer was introduced and defined in 2000 by Roy Fielding in his doctoral dissertation at UC Irvine What is REST or RESTful? Representational State Transfer – is that helpful? A RESTful service adheres to the 4 basic design principals outlined in Fielding’s dissertation Often times referred to as an alternative to SOAP
  • 26. REST Design Principles 26 Four basic design principles: Use HTTP methods explicitly (POST, GET, PUT, DELETE) Be stateless Expose directory structure-like URIs Transfer XML, JavaScript Object Notation (JSON), or both
  • 27. Reading Data using REST / jQuery 27 JavaScript with jQuery $.ajax({ url: "http://siteurl/_api/web/lists", type: "GET", headers: { "ACCEPT": "application/json;odata=verbose" }, success: doSuccess, error: doError });
  • 28. Working with REST 28 Since REST uses HTTP methods you can test your queries in the browser https://ctsharepointusergroup.sharepoint.com/bootstrap/_api/Web/Lists/GetByTitle('CustomNews')
  • 29. Working with IE (shudder) 29 Not helpful
  • 30. Let’s fix that right quick! 30
  • 31. This is way more helpful! 31
  • 32. Better yet… 32 Postman is Google Chrome extension that can be used to quickly create and test REST calls Can execute different types of HTTP requests (GET, POST, DELETE, PATCH etc.) Output can be “Raw” or “Pretty” for improved readability http://www.getpostman.com Postman REST Client for Chrome
  • 33. Creating Data using REST 33 JavaScript with JQuery jQuery.ajax({ url: “http://siteurl/_api/web/lists”, type: "POST", data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'AllowContentTypes': true, 'BaseTemplate': 100, 'ContentTypesEnabled': true, 'Description': 'My list description', 'Title': 'Test' } ), headers: { "accept": "application/json;odata=verbose", "content-type":"application/json;odata=verbose", "content-length":length of post body "X-RequestDigest": $("#__REQUESTDIGEST").val() }, success: doSuccess, error: doError });
  • 34. Updating Data using REST 34 JavaScript with JQuery jQuery.ajax({ url: “http://siteurl/_api/web/lists/GetByTitle(‘Test')”, type: "POST", data: JSON.stringify({ '__metadata': { 'type': 'SP.List' }, 'Title': 'New title' } ), headers: { “X-HTTP-Method”:”MERGE”, "accept": "application/json;odata=verbose", "content-type": "application/json;odata=verbose", "content-length":length of post body "X-RequestDigest": $("#__REQUESTDIGEST").val(), “IF-MATCH”: “*” }, success: doSuccess, error: doError });
  • 35. Putting it All Together for a Simple Example 35 1. Create a Document Library called Scripts and enable Versioning 2. Download a copy of jQuery and upload to Scripts library 3. Create a .txt file in your favorite code editor that contains or links to your HTML, CSS, and JavaScript 4. Add an empty Content Editor Web Part (CEWP) to any SharePoint Page where you would like to put your content 5. Configure Content Editor Web Part (CEWP) to point at .txt file with code
  • 37. 37 2 3 4 5 6 1
  • 38. 38
  • 41. Pro Tip! 41 Watch out for XML validation issues with your design: <open tag></close tag> = works <tag stuff /> = not so much
  • 42. Quick mock-up in Bootstrap 42
  • 43. Putting it All Together for a Simple Example 43 1. Create an empty .ASPX page in the Site Pages library with SharePoint Designer 2. Download Bootstrap files and copy to SharePoint library 3. Copy Bootstrap boilerplate HTML code into .ASPX page 4. Update HTML content placeholders to have unique Ids 5. Add JavaScript (equivalent to previous demo)
  • 46. 46 Training / Resources
  • 47. Books, books, and more books... 47
  • 48. © 2012 Slalom, LLC. All rights reserved. The information herein is for informational purposes only and represents the current view of Slalom, LLC. as of the date of this presentation. SLALOM MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Editor's Notes

  1. Jared
  2. Conversation about upgrading SharePoint is a real pain..And you might be Microsoft MVP, Works for Rackspace SharePoint Admin Netcast Quick Todd Klindt shout-out – Mondays @ 8:30 PM CST – http://www.toddklindt.com
  3. All that server side code.. Branding Missing source code Elevation of privs to the farm account - can do whatever it wants Consumes less resources on the server (javascript) Brings down the environment – 55 WSP’s @ old company
  4. *** Back in the day the thinking was server side first, and client side “maybe” *** ** Today’s thinking – Client Side first ** If the answer is No – go client side.. Default client side – vs old model of defaulting server side
  5. Still Jared **
  6. Before we get into frameworks, let’s talk about Javascript. JavaScript is like that nerd (or maybe it was you) that asked you out a million times to prom. Long-term you know it would be good for you.. That nerd would grow up, get a great job, be able to provide for you.. By man oh man, did that C# Server Side code look good at the time.. You were a hot commodity, recruiters couldn’t throw money at you fast enough to churn out those webparts that displayed Dilbert cartoons, stock tickers, all that other nonsense. First class citizen in SHarePoint Development
  7. ***Thousands of JavaScript libraries / frameworks are available to facilitate development of JavaScript-based applications *** Wikipedia’s list of “notable” JavaScript libraries contains 65 items
  8. Chris starts speaking
  9. Chris speaks to this slide
  10. Chris speaks to this slide
  11. ** Chris is REST-less **
  12. Jared to hop in real quick
  13. Jared
  14. Jared
  15. Basically what you’re seeing here is SharePoint spitting back XML of all the Lists in the CTSPUG.ORG O365 site.. (plz don’t hack us)
  16. Chris picks it back up here
  17. ** Jared to talk ** Bootstrap is a combination of CSS & Javascript libraries
  18. Jared talking Bootstrap is a combination of CSS & Javascript libraries Good to get a quick nice visual - still requires effort
  19. You’ve seen it, and you might not even know it…
  20. **
  21. Chris speaking
  22. Jared / Chris both talk about books