SlideShare une entreprise Scribd logo
1  sur  21
SharePoint and the
User Interface with
JavaScript
Colin Phillips :: SharePoint MVP :: itgroove
March 2015
The Magic Glue to Bring
Interactive Pages to Life
Who I am: Colin Phillips
My Background
 16+ Years in Technology
 Today: SharePoint Consultant and MVP (with itgroove)
 Previously:
12 Years Developing Software, IT Infrastructure Projects, Workflows, and Many Other Related Topics
 B.Sc. in Computer Science from UVic
My Socialness
Blog: mmman.itgroove.net / Twitter: @itgroove_colin
Where to learn more
cphillips@itgroove.net
What is JavaScript?
• JavaScript (or JS) is a powerful language that has the capacity to do many very simple things
(such as reload a webpage) or can be the basis of entire (typically web-based) applications
• Developed by Brendan Eich of Netscape in the mid-90s, it (along with influence from Microsoft
and their version “JScript") ultimately became the basis of the standard ECMAScript
• Strictly speaking, “JavaScript is an object-based scripting language that is lightweight and cross-
platform. JavaScript is not compiled but interpreted.”
• Supported by a broad coalition of companies - no single person or company controls it
On a side note, I actually met and spent a number of days with Brendan and the Mozilla team in 2001 as
part of attending a conference & being asked to join them at the Netscape campus
Who / Where / Why?
• JavaScript can be used by almost anyone – but that doesn’t mean they should. 
• Typically used by front-end web developers to add interactivity to web pages
• Most often combined together with HTML and CSS to create interactive web pages
• "JavaScript is one of the world's most popular programming languages. Virtually
every personal computer in the world has at least one JavaScript interpreter
installed on it and in active use.“
• Rather than asking, “What is the future of JavaScript?” the right thing to say is
JavaScript is the future. Another answer to the same question is JavaScript will
stay relevant as long as people use the Internet.
JavaScript Libraries / Frameworks
• JavaScript is extremely popular and lots of people have made “libraries”
(or “frameworks”) for it - small packages which simplify writing code or
performing a specific function, very well
• Most often open source and combined with HTML & a browser
• Including, but not limited to: (there are lots more)
• Chart.js (and many other charting libraries)
• Dojo Toolkit (web apps, mobile, charting cross-browser)
• ExtJS (data aggregation, dashboards & BI)
• AppJS & App.js (cross-platform desktop / mobile apps with JS/HTML/CSS)
• Kendo UI (Very well constructed, but $ – from Telerik)
Technology and Ghostbusters are amongst
my favourite things 
Popular JavaScript Library #1: jQuery
According to Google, “jQuery is a fast, small, and feature-rich JavaScript library. It makes
things like HTML document traversal and manipulation, event handling, animation, and
Ajax much simpler with an easy-to-use API that works across a multitude of browsers.”
• jQuery can make lots of (formerly) complex tasks trivial because of the nature of how
it abstracts the complex portions of JavaScript away
• Simply include jQuery in a web page (with a <script> include), then you can start
using the shortcut syntax (like “$(document).ready(alert(‘hi’));”) in a <script> block
• We use jQuery all the time because writing much of the equivalent JavaScript out by
hand is tedious, and cross-browser compatibility is a huge pain in raw JavaScript
Popular JavaScript Library #2: TypeScript
• “TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
Any browser. Any host. Any OS. Open Source.” (Like SASS for CSS)
• JavaScript is “loosely typed” – so a variable can act like a string in one statement, a
number in the next statement, a date after that, or even an object
• TS Allows JavaScript to act more like “strongly typed” languages such as C++ or Java
• In other words, a character data type, must operate like a character data type, and not like
anything else – or else you’ll get a compile error
• My own personal opinion is that TypeScript is cool, and probably helpful to some, but I
love how JS is loosely typed, so it’s not as interesting to me
Application Frameworks
• Node.js - Web applications with real-time, two-way connections, where both
the client and server can initiate communication (individual creator)
• AngularJS (by Google)
• Ember.js (spinoff of SproutCore)
• Backbone.js (by developer of CoffeeScript)
• ReactJS (by Facebook & Instagram)
• Many many others
One or a combination of several may
be the best option for your web app.
SharePoint and JavaScript
• In SharePoint 2013, using JavaScript is the only way to perform certain
types of functionality (like Conditional Formatting)
• 2013 introduced a new list/library display override called “JSLink”. You
can use this to create your own / modify an existing view
• Of course, nearly anything you can do outside of SharePoint with
JavaScript can also be done within SharePoint – just not a lot of people
are that adventurous
• JavaScript is a key component of the new SharePoint App model – lots of
modern SharePoint Apps are written with JavaScript and JS Frameworks
Below: JSLink in Action
SharePoint JSLink Code Sample
• At it’s most basic, you’re telling
SharePoint to override it’s default list view
mechanism, and use the custom one you
define instead
• In this case, when the column “MoreText”
is seen, output that column’s text in bold
(using a simple HTML tag <b>)
• For the nerds, yes, it’s just a bunch of
nested objects with some JSON using an
anonymous function (which is called once
SP is ready) – but it can do SO much!
(function () {
// Initialize the variables for overrides objects
var overrideCtx = {}; overrideCtx.Templates = {};
/* Using the Fields override leaves the rest of the rendering intact, but
allows control over one or more specific fields in the existing view – this
is just one of many ways to use the override */
overrideCtx.Templates.Fields = {
'MoreText' : { 'View' : '<b>' + ctx.CurrentItem.MoreText + '</b>' }};
/* Register the template overrides. */
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();
CSOM – Client Side Object Model
Now we’re cooking with napalm
• The Client Side Object Model (CSOM) is a collection of methods exposed to programmers to allow
you to speak directly to objects in SharePoint
• In other words, you can do lookups on lists or libraries using JavaScript, add new items, even modify
existing list / library items
• The JSOM – JavaScript Object Model exposes the same objects as the CSOM
• The CSOM is constantly being developed. New API’s are being exposed in Office365 all the time
• The CSOM is an important part of the SharePoint App Model. You use the CSOM to communicate
with SharePoint to retrieve data for your app, then can further manipulate it using JavaScript, or
present that data using HTML/CSS
• The CSOM isn’t exclusively for JavaScript, you can use it with C# & VB.net as well, and many other
languages (even things like Perl, PHP, PowerShell or any language that can speak web services) Yes, this is a real book 
And has really good reviews!
Example 1: Visual, Responsive Location Chooser
• All items are defined by a SharePoint list
• Each item has a label (Location X), an
image, and a URL (destination upon click)
• Using the new JSLink technique in SP2013,
we’re able to take that simple information,
and using an HTML template, turn that into
a dynamic, responsive, flowing layout that
presents visually stunning
Example 2: Effective Visual Layout of SharePoint List Data
• Here’s one of the landing pages for the
previous example
• One list entry represents the entire top
portion of the page
• Each of the Properties (in the details) are just
a column in that single list entry
• Again uses the JSLink technique to translate
list content into a powerful visual
representation
Example 3: Self Service Employee HR Dashboard
• Responsive design
• Uses a charting library (JQPlot)
• Some include transitions
• Each “box” is just a webpart
• Some web parts use both back-end
server side logic, while the front end
uses JavaScript for final presentation
Example 4: Custom Mysite Landing Page
• Tabbed interface (on right) allows
the bottom portion of the screen
to be a broken down collection of
details about each user
• Uses the JSLink technique at the
bottom to “inject” an image on
the left, and an “Action” on the
right, otherwise the rest is just
regular list data
Example 5: HR Recruitment Job Posting Mgmt Tool
• Adding large, interactive buttons and
making “sections” interactive (with
status) added greatly the sites’ overall
usability
• Uses the JavaScript CSOM to
dynamically update and query list data
• When each button is clicked
• Upon page load (to update the
button status’)
• And when the site is first created
• Also enforces permissions (on Office
Use Only column)
Comparison of Old to New
Example 6: Company Portal HomePage
• Another example of using the JSLink
technique on SharePoint list data to layout
several webparts
• That’s an interesting cupcake policy
Demo
Things to Show
• Consultant Dashboard
- Conditional Formatting
- Elimination of empty web parts
- Floating ball icons
• Mega / Micro Menus
• Projects Dashboard (Time/money/scope & barometer)
• Time Entry modals
• Client Details drop down (taking you to the client
dashboard)
• Landing page photo rotator
• Collapsible divs
• Tabs
• URL Shortener
• LED Dashboard (with auto refresh)
Summary
• JavaScript has been around for many years and is only getting
stronger – it’ll be around for as long as the web is
• Combined with libraries (like jQuery), you can make some
awesome little tweaks to add a lot of value, for little expense
• In SharePoint:
• The new layout possibilities using JSLink are nearly
endless, and very easy to make into a reality
• The CSOM brings to life a whole world of possibilities, and
is the foundation of SharePoint Apps
• When your users get it, and it’s easy for them, you’ve built it right
Questions?
Contact Info
Colin Phillips
cphillips@itgroove.net
blog: mmman.itgroove.net
Twitter: @itgroove_colin

Contenu connexe

Tendances

Content by query web part
Content by query web partContent by query web part
Content by query web partIslamKhattab
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
SPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery LibrariesSPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery LibrariesMark Rackley
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsPaul Hunt
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointChad Schroeder
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slideFabio Franzini
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per officeFabio Franzini
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templatesPaul Hunt
 
SharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side RenderingSharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side RenderingBill Wolff
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityMark 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
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14Mark Rackley
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointMark Rackley
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQueryMark Rackley
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesMark Rackley
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathMark Rackley
 
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 BeastMark Rackley
 

Tendances (20)

Content by query web part
Content by query web partContent by query web part
Content by query web part
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
SPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery LibrariesSPTechCon Dev Days - Third Party jQuery Libraries
SPTechCon Dev Days - Third Party jQuery Libraries
 
SharePoint Performance
SharePoint PerformanceSharePoint Performance
SharePoint Performance
 
SPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITProsSPSSTHLM - Using JSLink and Display Templates for ITPros
SPSSTHLM - Using JSLink and Display Templates for ITPros
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...
 
Office 2013 loves web developers slide
Office 2013 loves web developers   slideOffice 2013 loves web developers   slide
Office 2013 loves web developers slide
 
Sviluppare app per office
Sviluppare app per officeSviluppare app per office
Sviluppare app per office
 
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjsCodemotion 2013 - Designing complex applications using html5 and knockoutjs
Codemotion 2013 - Designing complex applications using html5 and knockoutjs
 
Using js link and display templates
Using js link and display templatesUsing js link and display templates
Using js link and display templates
 
SharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side RenderingSharePoint 2013 Client Side Rendering
SharePoint 2013 Client Side Rendering
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form Usability
 
SPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentialsSPTechCon - Share point and jquery essentials
SPTechCon - Share point and jquery essentials
 
The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14The SharePoint & jQuery Guide - Updated 1/14/14
The SharePoint & jQuery Guide - Updated 1/14/14
 
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePointSPTechCon Boston 2015 - Utilizing jQuery in SharePoint
SPTechCon Boston 2015 - Utilizing jQuery in SharePoint
 
SPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuerySPTechCon DevDays - SharePoint & jQuery
SPTechCon DevDays - SharePoint & jQuery
 
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery librariesTulsaTechFest - Maximize SharePoint UX with free jQuery libraries
TulsaTechFest - Maximize SharePoint UX with free jQuery libraries
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPath
 
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
 

En vedette

Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienChris O'Brien
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien
 
Image Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web PartImage Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web PartGSoft
 
Enhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web DesignEnhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web DesignEric Overfield
 
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...Wendy Neal
 
How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3Ryan McIntyre
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThomas Daly
 
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink TemplatesSharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink TemplatesMuawiyah Shannak
 

En vedette (8)

Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienCustomizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrien
 
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)
 
Image Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web PartImage Slider with SharePoint 2013 Search Results Web Part
Image Slider with SharePoint 2013 Search Results Web Part
 
Enhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web DesignEnhance SharePoint 2013 with Responsive Web Design
Enhance SharePoint 2013 with Responsive Web Design
 
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
Enhance the Usability of Your SharePoint Site with JSLink #Collab365 #C365114...
 
How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3How to Improve the SharePoint UI Using Bootstrap 3
How to Improve the SharePoint UI Using Bootstrap 3
 
The A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with BootstrapThe A to Z of Building a Responsive SharePoint Site with Bootstrap
The A to Z of Building a Responsive SharePoint Site with Bootstrap
 
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink TemplatesSharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
SharePoint 2013 Client-Side Rendering (CSR) & JSLink Templates
 

Similaire à SharePoint and the User Interface with JavaScript

Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for BeginnersD'arce Hess
 
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 2017Marc D Anderson
 
SharePoint 2013 Preview
SharePoint 2013 PreviewSharePoint 2013 Preview
SharePoint 2013 PreviewRegroove
 
A Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with JavascriptA Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with JavascriptSharePoint Saturday New Jersey
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperOfer Zelig
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba - .toster
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11Derek Jacoby
 
Intro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteIntro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteRafael Gonzaque
 
Intro javascript build a scraper (3:22)
Intro javascript   build a scraper (3:22)Intro javascript   build a scraper (3:22)
Intro javascript build a scraper (3:22)Thinkful
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Marco Breveglieri
 
Donation Website.pptx
Donation Website.pptxDonation Website.pptx
Donation Website.pptxssuser5c1807
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampChris Love
 
An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNativeMichał Taberski
 

Similaire à SharePoint and the User Interface with JavaScript (20)

Bootstrap for Beginners
Bootstrap for BeginnersBootstrap for Beginners
Bootstrap for Beginners
 
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
 
SharePoint 2013 Preview
SharePoint 2013 PreviewSharePoint 2013 Preview
SharePoint 2013 Preview
 
React.js at Cortex
React.js at CortexReact.js at Cortex
React.js at Cortex
 
A Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with JavascriptA Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with Javascript
 
Pearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET DeveloperPearls and Must-Have Tools for the Modern Web / .NET Developer
Pearls and Must-Have Tools for the Modern Web / .NET Developer
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Pablo Villalba -
Pablo Villalba - Pablo Villalba -
Pablo Villalba -
 
Untangling spring week11
Untangling spring week11Untangling spring week11
Untangling spring week11
 
Welcome to React.pptx
Welcome to React.pptxWelcome to React.pptx
Welcome to React.pptx
 
Intro to jQuery @ Startup Institute
Intro to jQuery @ Startup InstituteIntro to jQuery @ Startup Institute
Intro to jQuery @ Startup Institute
 
Intro javascript build a scraper (3:22)
Intro javascript   build a scraper (3:22)Intro javascript   build a scraper (3:22)
Intro javascript build a scraper (3:22)
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
Donation Website.pptx
Donation Website.pptxDonation Website.pptx
Donation Website.pptx
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Frontend as a first class citizen
Frontend as a first class citizenFrontend as a first class citizen
Frontend as a first class citizen
 
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code CampDoing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
Doing Modern Web, aka JavaScript and HTML5 in the Enterprise NYC Code Camp
 
An Introduction to ReactNative
An Introduction to ReactNativeAn Introduction to ReactNative
An Introduction to ReactNative
 
2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni2014 Picking a Platform by Anand Kulkarni
2014 Picking a Platform by Anand Kulkarni
 
JSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge GraphsJSON-LD and SHACL for Knowledge Graphs
JSON-LD and SHACL for Knowledge Graphs
 

Plus de Regroove

What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022Regroove
 
New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022Regroove
 
New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022Regroove
 
Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022Regroove
 
What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022Regroove
 
What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021Regroove
 
What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021Regroove
 
What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021Regroove
 
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...Regroove
 
What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021Regroove
 
What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021Regroove
 
Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021Regroove
 
Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021Regroove
 
Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021Regroove
 
Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021Regroove
 
Victoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout RoomsVictoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout RoomsRegroove
 
Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021Regroove
 
Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020Regroove
 
Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020Regroove
 
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020Regroove
 

Plus de Regroove (20)

What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022What's New in Microsoft 365 - June 2022
What's New in Microsoft 365 - June 2022
 
New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022New Microsoft Features - Victoria O365 User Group April 2022
New Microsoft Features - Victoria O365 User Group April 2022
 
New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022New Microsoft Features - Victoria O365 User Group February 2022
New Microsoft Features - Victoria O365 User Group February 2022
 
Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022Regroove Teams Tips from Victoria O365 User Group Feb 2022
Regroove Teams Tips from Victoria O365 User Group Feb 2022
 
What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022What's new in Microsoft 365 January 20 2022
What's new in Microsoft 365 January 20 2022
 
What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021What's new in Microsoft 365 November 2021
What's new in Microsoft 365 November 2021
 
What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021What's new in Microsoft 365 October 2021
What's new in Microsoft 365 October 2021
 
What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021What's new in Microsoft 365 September 2021
What's new in Microsoft 365 September 2021
 
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
What's New in Microsoft 365 @ Victoria O365 User Group Virtual Meet-up August...
 
What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021What's new in Microsoft 365 July 2021
What's new in Microsoft 365 July 2021
 
What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021What's new in Microsoft 365 June 2021
What's new in Microsoft 365 June 2021
 
Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021Microsoft office 365 what's new for May 2021
Microsoft office 365 what's new for May 2021
 
Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021Microsoft Office 365 What's New for April 2021
Microsoft Office 365 What's New for April 2021
 
Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021Microsoft Office 365 What's New for March 2021
Microsoft Office 365 What's New for March 2021
 
Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021Microsoft Office 365 What's New for February 2021
Microsoft Office 365 What's New for February 2021
 
Victoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout RoomsVictoria Office 365 Users Group - Microsoft Teams Breakout Rooms
Victoria Office 365 Users Group - Microsoft Teams Breakout Rooms
 
Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021Microsoft Office 365 What's New for January 2021
Microsoft Office 365 What's New for January 2021
 
Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020Microsoft Office 365 What's New for November 2020
Microsoft Office 365 What's New for November 2020
 
Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020Microsoft Office 365 What's New for October 2020
Microsoft Office 365 What's New for October 2020
 
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
Microsoft Office 365 What's New for September 2020 with Recap of Ignite 2020
 

Dernier

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Dernier (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

SharePoint and the User Interface with JavaScript

  • 1. SharePoint and the User Interface with JavaScript Colin Phillips :: SharePoint MVP :: itgroove March 2015 The Magic Glue to Bring Interactive Pages to Life
  • 2. Who I am: Colin Phillips My Background  16+ Years in Technology  Today: SharePoint Consultant and MVP (with itgroove)  Previously: 12 Years Developing Software, IT Infrastructure Projects, Workflows, and Many Other Related Topics  B.Sc. in Computer Science from UVic My Socialness Blog: mmman.itgroove.net / Twitter: @itgroove_colin Where to learn more cphillips@itgroove.net
  • 3. What is JavaScript? • JavaScript (or JS) is a powerful language that has the capacity to do many very simple things (such as reload a webpage) or can be the basis of entire (typically web-based) applications • Developed by Brendan Eich of Netscape in the mid-90s, it (along with influence from Microsoft and their version “JScript") ultimately became the basis of the standard ECMAScript • Strictly speaking, “JavaScript is an object-based scripting language that is lightweight and cross- platform. JavaScript is not compiled but interpreted.” • Supported by a broad coalition of companies - no single person or company controls it On a side note, I actually met and spent a number of days with Brendan and the Mozilla team in 2001 as part of attending a conference & being asked to join them at the Netscape campus
  • 4. Who / Where / Why? • JavaScript can be used by almost anyone – but that doesn’t mean they should.  • Typically used by front-end web developers to add interactivity to web pages • Most often combined together with HTML and CSS to create interactive web pages • "JavaScript is one of the world's most popular programming languages. Virtually every personal computer in the world has at least one JavaScript interpreter installed on it and in active use.“ • Rather than asking, “What is the future of JavaScript?” the right thing to say is JavaScript is the future. Another answer to the same question is JavaScript will stay relevant as long as people use the Internet.
  • 5. JavaScript Libraries / Frameworks • JavaScript is extremely popular and lots of people have made “libraries” (or “frameworks”) for it - small packages which simplify writing code or performing a specific function, very well • Most often open source and combined with HTML & a browser • Including, but not limited to: (there are lots more) • Chart.js (and many other charting libraries) • Dojo Toolkit (web apps, mobile, charting cross-browser) • ExtJS (data aggregation, dashboards & BI) • AppJS & App.js (cross-platform desktop / mobile apps with JS/HTML/CSS) • Kendo UI (Very well constructed, but $ – from Telerik) Technology and Ghostbusters are amongst my favourite things 
  • 6. Popular JavaScript Library #1: jQuery According to Google, “jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.” • jQuery can make lots of (formerly) complex tasks trivial because of the nature of how it abstracts the complex portions of JavaScript away • Simply include jQuery in a web page (with a <script> include), then you can start using the shortcut syntax (like “$(document).ready(alert(‘hi’));”) in a <script> block • We use jQuery all the time because writing much of the equivalent JavaScript out by hand is tedious, and cross-browser compatibility is a huge pain in raw JavaScript
  • 7. Popular JavaScript Library #2: TypeScript • “TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. Any browser. Any host. Any OS. Open Source.” (Like SASS for CSS) • JavaScript is “loosely typed” – so a variable can act like a string in one statement, a number in the next statement, a date after that, or even an object • TS Allows JavaScript to act more like “strongly typed” languages such as C++ or Java • In other words, a character data type, must operate like a character data type, and not like anything else – or else you’ll get a compile error • My own personal opinion is that TypeScript is cool, and probably helpful to some, but I love how JS is loosely typed, so it’s not as interesting to me
  • 8. Application Frameworks • Node.js - Web applications with real-time, two-way connections, where both the client and server can initiate communication (individual creator) • AngularJS (by Google) • Ember.js (spinoff of SproutCore) • Backbone.js (by developer of CoffeeScript) • ReactJS (by Facebook & Instagram) • Many many others One or a combination of several may be the best option for your web app.
  • 9. SharePoint and JavaScript • In SharePoint 2013, using JavaScript is the only way to perform certain types of functionality (like Conditional Formatting) • 2013 introduced a new list/library display override called “JSLink”. You can use this to create your own / modify an existing view • Of course, nearly anything you can do outside of SharePoint with JavaScript can also be done within SharePoint – just not a lot of people are that adventurous • JavaScript is a key component of the new SharePoint App model – lots of modern SharePoint Apps are written with JavaScript and JS Frameworks Below: JSLink in Action
  • 10. SharePoint JSLink Code Sample • At it’s most basic, you’re telling SharePoint to override it’s default list view mechanism, and use the custom one you define instead • In this case, when the column “MoreText” is seen, output that column’s text in bold (using a simple HTML tag <b>) • For the nerds, yes, it’s just a bunch of nested objects with some JSON using an anonymous function (which is called once SP is ready) – but it can do SO much! (function () { // Initialize the variables for overrides objects var overrideCtx = {}; overrideCtx.Templates = {}; /* Using the Fields override leaves the rest of the rendering intact, but allows control over one or more specific fields in the existing view – this is just one of many ways to use the override */ overrideCtx.Templates.Fields = { 'MoreText' : { 'View' : '<b>' + ctx.CurrentItem.MoreText + '</b>' }}; /* Register the template overrides. */ SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); })();
  • 11. CSOM – Client Side Object Model Now we’re cooking with napalm • The Client Side Object Model (CSOM) is a collection of methods exposed to programmers to allow you to speak directly to objects in SharePoint • In other words, you can do lookups on lists or libraries using JavaScript, add new items, even modify existing list / library items • The JSOM – JavaScript Object Model exposes the same objects as the CSOM • The CSOM is constantly being developed. New API’s are being exposed in Office365 all the time • The CSOM is an important part of the SharePoint App Model. You use the CSOM to communicate with SharePoint to retrieve data for your app, then can further manipulate it using JavaScript, or present that data using HTML/CSS • The CSOM isn’t exclusively for JavaScript, you can use it with C# & VB.net as well, and many other languages (even things like Perl, PHP, PowerShell or any language that can speak web services) Yes, this is a real book  And has really good reviews!
  • 12. Example 1: Visual, Responsive Location Chooser • All items are defined by a SharePoint list • Each item has a label (Location X), an image, and a URL (destination upon click) • Using the new JSLink technique in SP2013, we’re able to take that simple information, and using an HTML template, turn that into a dynamic, responsive, flowing layout that presents visually stunning
  • 13. Example 2: Effective Visual Layout of SharePoint List Data • Here’s one of the landing pages for the previous example • One list entry represents the entire top portion of the page • Each of the Properties (in the details) are just a column in that single list entry • Again uses the JSLink technique to translate list content into a powerful visual representation
  • 14. Example 3: Self Service Employee HR Dashboard • Responsive design • Uses a charting library (JQPlot) • Some include transitions • Each “box” is just a webpart • Some web parts use both back-end server side logic, while the front end uses JavaScript for final presentation
  • 15. Example 4: Custom Mysite Landing Page • Tabbed interface (on right) allows the bottom portion of the screen to be a broken down collection of details about each user • Uses the JSLink technique at the bottom to “inject” an image on the left, and an “Action” on the right, otherwise the rest is just regular list data
  • 16. Example 5: HR Recruitment Job Posting Mgmt Tool • Adding large, interactive buttons and making “sections” interactive (with status) added greatly the sites’ overall usability • Uses the JavaScript CSOM to dynamically update and query list data • When each button is clicked • Upon page load (to update the button status’) • And when the site is first created • Also enforces permissions (on Office Use Only column)
  • 18. Example 6: Company Portal HomePage • Another example of using the JSLink technique on SharePoint list data to layout several webparts • That’s an interesting cupcake policy
  • 19. Demo Things to Show • Consultant Dashboard - Conditional Formatting - Elimination of empty web parts - Floating ball icons • Mega / Micro Menus • Projects Dashboard (Time/money/scope & barometer) • Time Entry modals • Client Details drop down (taking you to the client dashboard) • Landing page photo rotator • Collapsible divs • Tabs • URL Shortener • LED Dashboard (with auto refresh)
  • 20. Summary • JavaScript has been around for many years and is only getting stronger – it’ll be around for as long as the web is • Combined with libraries (like jQuery), you can make some awesome little tweaks to add a lot of value, for little expense • In SharePoint: • The new layout possibilities using JSLink are nearly endless, and very easy to make into a reality • The CSOM brings to life a whole world of possibilities, and is the foundation of SharePoint Apps • When your users get it, and it’s easy for them, you’ve built it right
  • 21. Questions? Contact Info Colin Phillips cphillips@itgroove.net blog: mmman.itgroove.net Twitter: @itgroove_colin

Notes de l'éditeur

  1. In Slide Show mode, click the arrow to enter the PowerPoint Getting Started Center.