SlideShare une entreprise Scribd logo
1  sur  43
SharePoint & jQuery – What I Wish I
 Would Have Known When I Started…

Mark Rackley – Solutions Architect /
SharePoint Practice Lead / Developer
Email: mrackley@juniper-strategy.com
Blog: http://www.sharepointhillbilly.com
Twitter: http://www.twitter.com/mrackley
Agenda
• jQuery Overview
• jQuery & SharePoint – What’s the
  Point?
• Deployment, Maintenance, Upgrades
• SPServices
• Development & Debugging
• Examples
                           2
What is jQuery?
• JavaScript utility library
• Quickly write interactive and USABLE
  applications
• You don’t have to deploy assemblies (perfect
  for tightly controlled environments)
What Skills do I need?
• JavaScript (duh)
• CSS, XML
• A development background
   – It IS code
   – Uses development constructs
   – If you can’t write code, your ability to do magic will be limited to
     what you can copy/paste
• CAML, CAML, CAML… Sorry…
• Ability to think outside the box
   – Use all the pieces together
SharePoint & jQuery? Why?
Resolves many common SharePoint complaints without
          having to crack open Visual Studio
SharePoint & jQuery? Why?




        “It looks like SharePoint”
SharePoint & jQuery? Why?




            “That’s SharePoint?”
SharePoint & jQuery? Why?




   “I’m so sorry… SharePoint can’t do that out of the box”
SharePoint & jQuery? Why?




           “Sure, no problem”
SharePoint & jQuery? Why?
 “That will take 3
 weeks???”
 becomes “2 days?
 Awesome! I love
 you… here, please
 accept this bonus
 for being such a
 wonderful
 developer”
jQuery makes your SharePoint
    applications USABLE
Common Myths
• It’s not secure
Busted… It uses SharePoint’s security. All scripts run with
privileges of current user
• It doesn’t perform well
Plausible… It performs very well if you use it correctly in the right
situations
• I can’t elevate privileges if I need to
Confirmed…
Yeah but…
• I can’t interact with SharePoint Lists and
  Libraries without screen scraping
You can call Web Services with JavaScript (SPServices is a
wonderful jQuery library that wraps SharePoints Web Service
calls) and the Client Object Model in 2010
• It has no real use in my environment because
  of “x”
Quickly prototype and tweak web parts before writing in Visual
Studio. In fact, in some environments it is the only development
option.
So… jQuery MUST be…
Not So Fast…
• It does “expose” business logic to user if they dig around
• It executes on the client side and can perform slow if
  manipulating larges amounts of data
• Be extra careful for external facing applications
• You can’t do EVERYTHING with jQuery like…
   –   Timer Jobs
   –   Workflows (although it can eliminate the need for some)
   –   Event Handlers
   –   Elevate Privliges
   –   Easily interact with all business systems
• jQuery CAN harm your farm!
Deployment Options
Deployment options
• Folders in SPD / Visual Studio Module
• File System
  – Deployed with a WSP (don’t think of manually
    copying)
  – Not an option for Office 365 or hosted SharePoint
    2010
• External Reference
  – Microsoft Ajax Content Delivery Network (CDN)
    http://www.asp.net/ajaxlibrary/cdn.ashx
Deployment options
• Document Library
  – Easily modify scripts
  – Keep track of changes with Metadata
  – Recover from screw ups with Versioning
  – Less control, more flexibility versus other options
Deployment options
Reference Options
• ScriptLink
      • MasterPages, Delegate Controls, Web Parts, Controls, Custom
        Pages
      • Ensures Script is not loaded multiple times
      • Renders in the correct place in the markup
      • Need Visual Studio or SPD
      • More upfront work
• Content Editor Web Part (CEWP)
      • Quick & Easy
      • Don’t have to deploy anything
      • Adds CEWP overhead
Reference Options
• Custom Action
       • Loads Script on every page
       • Works in sandbox

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction
    ScriptSrc="~sitecollection/SiteAssets/jquery.min.js"
    Location="ScriptLink"
    Sequence="100"
    >
  </CustomAction>
</Elements>
Maintenance Best Practice
• Don’t add script directly in your Master Pages
  – Difficult to maintain
  – Must make modifications in SPD / Visual Studio
  – Use Custom Action instead
• Don’t add scripts directly in your CEWP
  – Using content link instead of editing the CEWP
     source.
  – No reuse
Moving Between Environments and
Upgrading to 2010
• It just works… (woo hoo)
  – Uses list names and not GUIDs so no issues
    moving from dev to prod
  – For the most part works identical in 2007 and
    2010 (I’m sure there’s the occasional issue but I’ve
    never run into it).
  – Might want to tweak in 2010 to take advantage of
    2010 features (ribbon, modal pop-ups)
jQuery is another
tool for the
SharePoint
Developer’s toolkit

Understand the
limitations
Use it wisely
Development Basics
• jQuery methods are executed using jQuery() or $()
• $(document).ready() is your “main()”
   – Don’t HAVE to, but easy to quickly locate where script starts
• $(‘#elementID’) to interact with any element
   – Divs, tables, rows, cells, inputs, selects.. Etc.. Etc.. Etc…
   – <table id=‘myTable’></table>
   – $(‘#myTable’).append(‘<tr><td>add a row</td></tr>’);
• $(‘#elementID’).val() gets values of inputs
   – <input type=‘text’ id=‘myTextBox’ >
   – $(‘#myTextBox’).val();
• $(‘#elementID’).val([value]) sets the values of inputs
   – $(‘#myTextBox’).val(‘Hello World’);
Development Basics
• $(‘#elementID’).html() gets the raw html within an element
  (great for divs, spans, tables, table cells, etc.)
   – <div id=‘myDiv’>Hello World</div>
   – $(‘#myDiv’).html() = ‘Hello World’
• $(‘#elementID’).html(“<html text>”) to set raw html
   – $(‘#myDiv’).html(‘Hello World! Welcome to SPSSTL!’)
• $(‘#elementID’).hide(), $(‘#elementID’).show(), and
  $(‘#elementID’).toggle()
   – $(‘#myDiv’).hide()
   – $(‘#myDiv’).show()
   – $(‘#myDiv’).toggle()
SharePoint Form Fields
//Text / Date Fields
$(“input[title=’Field Display Name’]”).val();

//LookUp / Choice Fields (be aware of >20 items in Lookup)
$(“select[title=’Field Display Name’]”).val();

//Is my check box checked?
if( $("input[title=’Field Display Name’]").is(':checked'))
{
       alert("it's checked");
}


More information:
http://bit.ly/jQueryAndSharePointFields
SPServices
• jQuery library to execute SharePoint’s Web
  Services
  –   Get List Items
  –   Add/Update List Items
  –   Create lists, content types, site columns, etc.
  –   Create document library folders
  -   Create cascading drop down lists
  -   Get user groups and permissions
  -   Potentially call ANY SharePoint Web Service
SPServices
• Works identical in SharePoint 2007 and
  SharePoint 2010
• Runs with permissions of current user
• Communicate across sites
• Works with Anonymous access!
SPServices - FYI
• Use internal field names
• Returned values have “ows_” in front of field
  names
  $(this).attr("ows_Title");
• Lookup & People fields
  – Value returned as “ID;#Value” (1;#Field Value)
• Check for new item ID on item add to make sure
  item added correctly
  var newID =
  $(xData.responseXML).find("[nodeName=z:row]").attr("ows_ID");
SPServices GetListItems
SPServices UpdateListItems
Development Tips
• Develop for performance
  – Limit rows returned using CAML
  – Avoid screen scraping (Use SPServices)
  – Don’t call web services until the data is needed.
• Use those ID’s to your advantage
  – <td id=‘ListName-4’>
• Attributes are awesome
  – <input type="text" title="list title 4" id="4">
  – $('#4').attr("title");
  – $(‘input*title=“list title 4”+’).val();
Don’t abuse the DOM!
It’s expensive to search the Document Object Model (DOM)
              <select id=“MySelect”></select>

        for (i=0;i<=500;i++)
        {
                $("#MySelect").append("<option>One Item " + i +
"</option>");
        }
___________________________________________________________________________________________________________________


              var options = “”;
              for (i=0;i<=500;i++)
              {
                      options += "<option>All Items " + i + "</option>";
              }
              $("#MySelect").append(options);
Debugging… ugh.. It ain’t pretty
• Alerts.. Alerts.. Alerts.. Alerts…
• Developer Tools
   – Set breakpoints
   – Evaluate expressions and variables inline (like REAL
     debugging!)
   – Firebug for Firefox
      • Considered to be best of the free tools out there
   – IE Developer Tools
      • Comes installed on IE 8+
      • console.log (don’t forget to remove before deploying)
Debugging… Common Errors
• Usually it means your library didn’t get loaded
   – Object Expected
   – Object doesn’t support method
• Make sure you don’t load scripts more than once
   – Null Object reference
• Check your braces
• Make sure you end lines with “;”
• Check for missing quotes
When all else fails, delete your script and rebuild it slowly in
chunks, testing as you go.
DEMOS
So, what’s the deal?
”Fast Food” Development
•   You don’t have to be a SharePoint Guru
•   It’s Cheap
•   It’s Quick
•   It’s Easy
•   It gets the job done
”Fast Food” Development
•   Don’t abuse it, You’ll pay for it later
•   Limited choices
•   There are healthier options
•   Adds page bloat
•   Can slow your performance
Getting Started…
• A Dummies Guide to SharePoint and jQuery
  – http://bit.ly/jQueryForDummies

• SPServices
  – http://spservices.codeplex.com

• Super Awesome 3rd party libraries that
  integrate well
  – Modal dialogs - http://www.ericmmartin.com/projects/simplemodal/
  – Calendar - http://arshaw.com/fullcalendar/
  – Charts - http://g.raphaeljs.com/
More jQuery Resources
• jQuery Pocket Reference
  – http://oreilly.com/catalog/0636920016182
• CSS Pocket Refernce
  – http://oreilly.com/catalog/9780596515058/
Questions?
      Don’t drink the
      haterade…



Mark Rackley
mrackley@juniper-strategy.com
www.twitter.com/mrackley
www.sharepointhillbilly.com
                                43

Contenu connexe

Tendances

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
 
SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014Mark 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
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopMark 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 using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePointRene Modery
 
What is SharePoint Development??
What is SharePoint Development??What is SharePoint Development??
What is SharePoint Development??Mark Rackley
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery GuideMark Rackley
 
Intro to SharePoint Web Services
Intro to SharePoint Web ServicesIntro to SharePoint Web Services
Intro to SharePoint Web ServicesMark Rackley
 
The SharePoint & jQuery Guide
The SharePoint & jQuery GuideThe SharePoint & jQuery Guide
The SharePoint & jQuery GuideMark Rackley
 
SEF2013 - A jQuery Primer for SharePoint
SEF2013 - A jQuery Primer for SharePointSEF2013 - A jQuery Primer for SharePoint
SEF2013 - A jQuery Primer for SharePointMarc D Anderson
 
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsSPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsMark Rackley
 
A Power User's Intro to jQuery Awesomeness in SharePoint
A Power User's Intro to jQuery Awesomeness in SharePointA Power User's Intro to jQuery Awesomeness in SharePoint
A Power User's Intro to jQuery Awesomeness in SharePointMark Rackley
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathMark Rackley
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointChad Schroeder
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
 
NOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itNOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itMark Rackley
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOMMark Rackley
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityMark Rackley
 

Tendances (20)

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 & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014SharePoint & jQuery Guide - SPSNashville 2014
SharePoint & jQuery Guide - SPSNashville 2014
 
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
 
Introduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint WorkshopIntroduction to Client Side Dev in SharePoint Workshop
Introduction to Client Side Dev in SharePoint Workshop
 
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 using jQuery with SharePoint
Introduction to using jQuery with SharePointIntroduction to using jQuery with SharePoint
Introduction to using jQuery with SharePoint
 
What is SharePoint Development??
What is SharePoint Development??What is SharePoint Development??
What is SharePoint Development??
 
(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide(Updated) SharePoint & jQuery Guide
(Updated) SharePoint & jQuery Guide
 
Intro to SharePoint Web Services
Intro to SharePoint Web ServicesIntro to SharePoint Web Services
Intro to SharePoint Web Services
 
The SharePoint & jQuery Guide
The SharePoint & jQuery GuideThe SharePoint & jQuery Guide
The SharePoint & jQuery Guide
 
SEF2013 - A jQuery Primer for SharePoint
SEF2013 - A jQuery Primer for SharePointSEF2013 - A jQuery Primer for SharePoint
SEF2013 - A jQuery Primer for SharePoint
 
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint LimitationsSPTechCon Boston 2015 - Overcoming SharePoint Limitations
SPTechCon Boston 2015 - Overcoming SharePoint Limitations
 
A Power User's Intro to jQuery Awesomeness in SharePoint
A Power User's Intro to jQuery Awesomeness in SharePointA Power User's Intro to jQuery Awesomeness in SharePoint
A Power User's Intro to jQuery Awesomeness in SharePoint
 
Introduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPathIntroduction to StratusForms #SayNoToInfoPath
Introduction to StratusForms #SayNoToInfoPath
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
NOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need itNOW I Get it!! What SharePoint IS and why I need it
NOW I Get it!! What SharePoint IS and why I need it
 
SharePoint REST vs CSOM
SharePoint REST vs CSOMSharePoint REST vs CSOM
SharePoint REST vs CSOM
 
SharePoint Performance
SharePoint PerformanceSharePoint Performance
SharePoint Performance
 
Using jQuery to Maximize Form Usability
Using jQuery to Maximize Form UsabilityUsing jQuery to Maximize Form Usability
Using jQuery to Maximize Form Usability
 

En vedette

FYE 2015_Got Motivation combined_final
FYE 2015_Got Motivation combined_finalFYE 2015_Got Motivation combined_final
FYE 2015_Got Motivation combined_finalLeah Hoops
 
SNCR OnStar Final PR 12.31.15
SNCR OnStar Final PR 12.31.15SNCR OnStar Final PR 12.31.15
SNCR OnStar Final PR 12.31.15Brent Wilkins
 
Autoradio dvd gps skoda
Autoradio dvd gps skodaAutoradio dvd gps skoda
Autoradio dvd gps skodaradiovoiture
 
BEye product presentation
BEye product presentationBEye product presentation
BEye product presentationBEye
 
Doing a TED Talk_ The Full Story - Wait But Why
Doing a TED Talk_ The Full Story - Wait But WhyDoing a TED Talk_ The Full Story - Wait But Why
Doing a TED Talk_ The Full Story - Wait But WhyGary Reece
 
Introduction to a Responsive Master Page with the Design Manager
Introduction to a Responsive Master Page with the Design ManagerIntroduction to a Responsive Master Page with the Design Manager
Introduction to a Responsive Master Page with the Design ManagerShareGate
 
Apego al tratamiento con cpap
Apego al tratamiento con cpapApego al tratamiento con cpap
Apego al tratamiento con cpapCesar Salazar P
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastMark Rackley
 
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..Mark Rackley
 
Secrets Of Successful Portal Implementations Dec2008
Secrets Of Successful Portal Implementations   Dec2008Secrets Of Successful Portal Implementations   Dec2008
Secrets Of Successful Portal Implementations Dec2008Susan Hanley
 
Dippers, Drops, and Silver Boxes
Dippers, Drops, and Silver BoxesDippers, Drops, and Silver Boxes
Dippers, Drops, and Silver Boxeswww.sgis.org
 
Supplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals PresentationSupplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals PresentationSusan Hanley
 
Welcome to the Neighborhood
Welcome to the NeighborhoodWelcome to the Neighborhood
Welcome to the NeighborhoodMorgan Appel
 
Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...
Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...
Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...Mark Rackley
 
SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...
SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...
SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...Mark Rackley
 
Breaking Down Barriers (to enterprise social) in the Land of Dinosaurs
Breaking Down Barriers (to enterprise social) in the Land of DinosaursBreaking Down Barriers (to enterprise social) in the Land of Dinosaurs
Breaking Down Barriers (to enterprise social) in the Land of DinosaursSusan Hanley
 
Best Practices in Social Networking
Best Practices in Social NetworkingBest Practices in Social Networking
Best Practices in Social NetworkingEric Sheninger
 

En vedette (20)

FYE 2015_Got Motivation combined_final
FYE 2015_Got Motivation combined_finalFYE 2015_Got Motivation combined_final
FYE 2015_Got Motivation combined_final
 
SNCR OnStar Final PR 12.31.15
SNCR OnStar Final PR 12.31.15SNCR OnStar Final PR 12.31.15
SNCR OnStar Final PR 12.31.15
 
Autoradio dvd gps skoda
Autoradio dvd gps skodaAutoradio dvd gps skoda
Autoradio dvd gps skoda
 
BEye product presentation
BEye product presentationBEye product presentation
BEye product presentation
 
Mid term solution
Mid term solutionMid term solution
Mid term solution
 
Doing a TED Talk_ The Full Story - Wait But Why
Doing a TED Talk_ The Full Story - Wait But WhyDoing a TED Talk_ The Full Story - Wait But Why
Doing a TED Talk_ The Full Story - Wait But Why
 
Introduction to a Responsive Master Page with the Design Manager
Introduction to a Responsive Master Page with the Design ManagerIntroduction to a Responsive Master Page with the Design Manager
Introduction to a Responsive Master Page with the Design Manager
 
Cpap
CpapCpap
Cpap
 
Cpap uso y causas
Cpap uso y causasCpap uso y causas
Cpap uso y causas
 
Apego al tratamiento con cpap
Apego al tratamiento con cpapApego al tratamiento con cpap
Apego al tratamiento con cpap
 
SPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint BeastSPSDenver - Wrapping Your Head Around the SharePoint Beast
SPSDenver - Wrapping Your Head Around the SharePoint Beast
 
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..
#SPSEMEA SharePoint & jQuery - What I wish I would have known a year ago..
 
Secrets Of Successful Portal Implementations Dec2008
Secrets Of Successful Portal Implementations   Dec2008Secrets Of Successful Portal Implementations   Dec2008
Secrets Of Successful Portal Implementations Dec2008
 
Dippers, Drops, and Silver Boxes
Dippers, Drops, and Silver BoxesDippers, Drops, and Silver Boxes
Dippers, Drops, and Silver Boxes
 
Supplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals PresentationSupplement For Secrets Of Successful Portals Presentation
Supplement For Secrets Of Successful Portals Presentation
 
Welcome to the Neighborhood
Welcome to the NeighborhoodWelcome to the Neighborhood
Welcome to the Neighborhood
 
Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...
Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...
Just Freakin Work!! Avoiding Obstacles and Overcoming Pain - SharePoint Devel...
 
SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...
SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...
SharePoint Saturday NYC - SharePoint and jQuery, what I wish I would have kno...
 
Breaking Down Barriers (to enterprise social) in the Land of Dinosaurs
Breaking Down Barriers (to enterprise social) in the Land of DinosaursBreaking Down Barriers (to enterprise social) in the Land of Dinosaurs
Breaking Down Barriers (to enterprise social) in the Land of Dinosaurs
 
Best Practices in Social Networking
Best Practices in Social NetworkingBest Practices in Social Networking
Best Practices in Social Networking
 

Similaire à SPSDenver - SharePoint & jQuery - What I wish I would have known

SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery EssentialsMark Rackley
 
SPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery EssentialsSPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery EssentialsMark Rackley
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsMark Rackley
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your WebsiteAcquia
 
SharePoint Development 101
SharePoint Development 101SharePoint Development 101
SharePoint Development 101Greg Hurlman
 
JSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyJSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyPaul Hunt
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your websitehernanibf
 
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechConThe SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechConSPTechCon
 
Utilizing jQuery in SharePoint: Get More Done Faster
Utilizing jQuery in SharePoint: Get More Done FasterUtilizing jQuery in SharePoint: Get More Done Faster
Utilizing jQuery in SharePoint: Get More Done FasterMark Rackley
 
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...Sébastien Levert
 
Spsatx slides (widescreen)
Spsatx slides (widescreen)Spsatx slides (widescreen)
Spsatx slides (widescreen)Ryan Dennis
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationSean Burgess
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Dutyreedmaniac
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyLeslie Doherty
 
Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Mikael Svenson
 
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
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsPaul Hunt
 

Similaire à SPSDenver - SharePoint & jQuery - What I wish I would have known (20)

SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery Essentials
 
SPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery EssentialsSPSTC - SharePoint & jQuery Essentials
SPSTC - SharePoint & jQuery Essentials
 
SharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentialsSharePoint Cincy 2012 - jQuery essentials
SharePoint Cincy 2012 - jQuery essentials
 
Spsemea j query
Spsemea   j querySpsemea   j query
Spsemea j query
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
 
SharePoint Development 101
SharePoint Development 101SharePoint Development 101
SharePoint Development 101
 
JSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday JerseyJSLink for ITPros - SharePoint Saturday Jersey
JSLink for ITPros - SharePoint Saturday Jersey
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your website
 
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechConThe SharePoint and jQuery Guide by Mark Rackley - SPTechCon
The SharePoint and jQuery Guide by Mark Rackley - SPTechCon
 
Utilizing jQuery in SharePoint: Get More Done Faster
Utilizing jQuery in SharePoint: Get More Done FasterUtilizing jQuery in SharePoint: Get More Done Faster
Utilizing jQuery in SharePoint: Get More Done Faster
 
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
 
Spsatx slides (widescreen)
Spsatx slides (widescreen)Spsatx slides (widescreen)
Spsatx slides (widescreen)
 
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD CombinationLotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
Lotusphere 2012 Speedgeeking - jQuery & Domino, a RAD Combination
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013Nsc 2013 06-17 - random rants on 2013
Nsc 2013 06-17 - random rants on 2013
 
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
 
SUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT ProsSUGUK Cambridge - Display Templates & JSLink for IT Pros
SUGUK Cambridge - Display Templates & JSLink for IT Pros
 

Plus de Mark Rackley

Column Formatter in SharePoint Online
Column Formatter in SharePoint OnlineColumn Formatter in SharePoint Online
Column Formatter in SharePoint OnlineMark Rackley
 
SharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXSharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXMark Rackley
 
A Power User's Introduction to jQuery Awesomeness in SharePoint
A Power User's Introduction to jQuery Awesomeness in SharePointA Power User's Introduction to jQuery Awesomeness in SharePoint
A Power User's Introduction to jQuery Awesomeness in SharePointMark Rackley
 
Citizen Developers Intro to jQuery Customizations in SharePoint
Citizen Developers Intro to jQuery Customizations in SharePointCitizen Developers Intro to jQuery Customizations in SharePoint
Citizen Developers Intro to jQuery Customizations in SharePointMark Rackley
 
A Power User's intro to jQuery awesomeness in SharePoint
A Power User's intro to jQuery awesomeness in SharePointA Power User's intro to jQuery awesomeness in SharePoint
A Power User's intro to jQuery awesomeness in SharePointMark Rackley
 
#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...
#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...
#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...Mark Rackley
 
Wrapping your head around the SharePoint Beast (For the rest of us)
Wrapping your head around the SharePoint Beast (For the rest of us)Wrapping your head around the SharePoint Beast (For the rest of us)
Wrapping your head around the SharePoint Beast (For the rest of us)Mark Rackley
 
What IS SharePoint Development?
What IS SharePoint Development?What IS SharePoint Development?
What IS SharePoint Development?Mark Rackley
 

Plus de Mark Rackley (8)

Column Formatter in SharePoint Online
Column Formatter in SharePoint OnlineColumn Formatter in SharePoint Online
Column Formatter in SharePoint Online
 
SharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXSharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFX
 
A Power User's Introduction to jQuery Awesomeness in SharePoint
A Power User's Introduction to jQuery Awesomeness in SharePointA Power User's Introduction to jQuery Awesomeness in SharePoint
A Power User's Introduction to jQuery Awesomeness in SharePoint
 
Citizen Developers Intro to jQuery Customizations in SharePoint
Citizen Developers Intro to jQuery Customizations in SharePointCitizen Developers Intro to jQuery Customizations in SharePoint
Citizen Developers Intro to jQuery Customizations in SharePoint
 
A Power User's intro to jQuery awesomeness in SharePoint
A Power User's intro to jQuery awesomeness in SharePointA Power User's intro to jQuery awesomeness in SharePoint
A Power User's intro to jQuery awesomeness in SharePoint
 
#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...
#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...
#SPSTC Maximizing the SharePoint User Experience with Free 3rd Party jQuery L...
 
Wrapping your head around the SharePoint Beast (For the rest of us)
Wrapping your head around the SharePoint Beast (For the rest of us)Wrapping your head around the SharePoint Beast (For the rest of us)
Wrapping your head around the SharePoint Beast (For the rest of us)
 
What IS SharePoint Development?
What IS SharePoint Development?What IS SharePoint Development?
What IS SharePoint Development?
 

Dernier

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
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
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
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
 
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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
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
 

SPSDenver - SharePoint & jQuery - What I wish I would have known

  • 1. SharePoint & jQuery – What I Wish I Would Have Known When I Started… Mark Rackley – Solutions Architect / SharePoint Practice Lead / Developer Email: mrackley@juniper-strategy.com Blog: http://www.sharepointhillbilly.com Twitter: http://www.twitter.com/mrackley
  • 2. Agenda • jQuery Overview • jQuery & SharePoint – What’s the Point? • Deployment, Maintenance, Upgrades • SPServices • Development & Debugging • Examples 2
  • 3. What is jQuery? • JavaScript utility library • Quickly write interactive and USABLE applications • You don’t have to deploy assemblies (perfect for tightly controlled environments)
  • 4. What Skills do I need? • JavaScript (duh) • CSS, XML • A development background – It IS code – Uses development constructs – If you can’t write code, your ability to do magic will be limited to what you can copy/paste • CAML, CAML, CAML… Sorry… • Ability to think outside the box – Use all the pieces together
  • 5. SharePoint & jQuery? Why? Resolves many common SharePoint complaints without having to crack open Visual Studio
  • 6. SharePoint & jQuery? Why? “It looks like SharePoint”
  • 7. SharePoint & jQuery? Why? “That’s SharePoint?”
  • 8. SharePoint & jQuery? Why? “I’m so sorry… SharePoint can’t do that out of the box”
  • 9. SharePoint & jQuery? Why? “Sure, no problem”
  • 10. SharePoint & jQuery? Why? “That will take 3 weeks???” becomes “2 days? Awesome! I love you… here, please accept this bonus for being such a wonderful developer”
  • 11. jQuery makes your SharePoint applications USABLE
  • 12. Common Myths • It’s not secure Busted… It uses SharePoint’s security. All scripts run with privileges of current user • It doesn’t perform well Plausible… It performs very well if you use it correctly in the right situations • I can’t elevate privileges if I need to Confirmed…
  • 13. Yeah but… • I can’t interact with SharePoint Lists and Libraries without screen scraping You can call Web Services with JavaScript (SPServices is a wonderful jQuery library that wraps SharePoints Web Service calls) and the Client Object Model in 2010 • It has no real use in my environment because of “x” Quickly prototype and tweak web parts before writing in Visual Studio. In fact, in some environments it is the only development option.
  • 15. Not So Fast… • It does “expose” business logic to user if they dig around • It executes on the client side and can perform slow if manipulating larges amounts of data • Be extra careful for external facing applications • You can’t do EVERYTHING with jQuery like… – Timer Jobs – Workflows (although it can eliminate the need for some) – Event Handlers – Elevate Privliges – Easily interact with all business systems • jQuery CAN harm your farm!
  • 17. Deployment options • Folders in SPD / Visual Studio Module • File System – Deployed with a WSP (don’t think of manually copying) – Not an option for Office 365 or hosted SharePoint 2010 • External Reference – Microsoft Ajax Content Delivery Network (CDN) http://www.asp.net/ajaxlibrary/cdn.ashx
  • 18. Deployment options • Document Library – Easily modify scripts – Keep track of changes with Metadata – Recover from screw ups with Versioning – Less control, more flexibility versus other options
  • 20. Reference Options • ScriptLink • MasterPages, Delegate Controls, Web Parts, Controls, Custom Pages • Ensures Script is not loaded multiple times • Renders in the correct place in the markup • Need Visual Studio or SPD • More upfront work • Content Editor Web Part (CEWP) • Quick & Easy • Don’t have to deploy anything • Adds CEWP overhead
  • 21. Reference Options • Custom Action • Loads Script on every page • Works in sandbox <?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction ScriptSrc="~sitecollection/SiteAssets/jquery.min.js" Location="ScriptLink" Sequence="100" > </CustomAction> </Elements>
  • 22. Maintenance Best Practice • Don’t add script directly in your Master Pages – Difficult to maintain – Must make modifications in SPD / Visual Studio – Use Custom Action instead • Don’t add scripts directly in your CEWP – Using content link instead of editing the CEWP source. – No reuse
  • 23. Moving Between Environments and Upgrading to 2010 • It just works… (woo hoo) – Uses list names and not GUIDs so no issues moving from dev to prod – For the most part works identical in 2007 and 2010 (I’m sure there’s the occasional issue but I’ve never run into it). – Might want to tweak in 2010 to take advantage of 2010 features (ribbon, modal pop-ups)
  • 24. jQuery is another tool for the SharePoint Developer’s toolkit Understand the limitations Use it wisely
  • 25. Development Basics • jQuery methods are executed using jQuery() or $() • $(document).ready() is your “main()” – Don’t HAVE to, but easy to quickly locate where script starts • $(‘#elementID’) to interact with any element – Divs, tables, rows, cells, inputs, selects.. Etc.. Etc.. Etc… – <table id=‘myTable’></table> – $(‘#myTable’).append(‘<tr><td>add a row</td></tr>’); • $(‘#elementID’).val() gets values of inputs – <input type=‘text’ id=‘myTextBox’ > – $(‘#myTextBox’).val(); • $(‘#elementID’).val([value]) sets the values of inputs – $(‘#myTextBox’).val(‘Hello World’);
  • 26. Development Basics • $(‘#elementID’).html() gets the raw html within an element (great for divs, spans, tables, table cells, etc.) – <div id=‘myDiv’>Hello World</div> – $(‘#myDiv’).html() = ‘Hello World’ • $(‘#elementID’).html(“<html text>”) to set raw html – $(‘#myDiv’).html(‘Hello World! Welcome to SPSSTL!’) • $(‘#elementID’).hide(), $(‘#elementID’).show(), and $(‘#elementID’).toggle() – $(‘#myDiv’).hide() – $(‘#myDiv’).show() – $(‘#myDiv’).toggle()
  • 27. SharePoint Form Fields //Text / Date Fields $(“input[title=’Field Display Name’]”).val(); //LookUp / Choice Fields (be aware of >20 items in Lookup) $(“select[title=’Field Display Name’]”).val(); //Is my check box checked? if( $("input[title=’Field Display Name’]").is(':checked')) { alert("it's checked"); } More information: http://bit.ly/jQueryAndSharePointFields
  • 28. SPServices • jQuery library to execute SharePoint’s Web Services – Get List Items – Add/Update List Items – Create lists, content types, site columns, etc. – Create document library folders - Create cascading drop down lists - Get user groups and permissions - Potentially call ANY SharePoint Web Service
  • 29. SPServices • Works identical in SharePoint 2007 and SharePoint 2010 • Runs with permissions of current user • Communicate across sites • Works with Anonymous access!
  • 30. SPServices - FYI • Use internal field names • Returned values have “ows_” in front of field names $(this).attr("ows_Title"); • Lookup & People fields – Value returned as “ID;#Value” (1;#Field Value) • Check for new item ID on item add to make sure item added correctly var newID = $(xData.responseXML).find("[nodeName=z:row]").attr("ows_ID");
  • 33. Development Tips • Develop for performance – Limit rows returned using CAML – Avoid screen scraping (Use SPServices) – Don’t call web services until the data is needed. • Use those ID’s to your advantage – <td id=‘ListName-4’> • Attributes are awesome – <input type="text" title="list title 4" id="4"> – $('#4').attr("title"); – $(‘input*title=“list title 4”+’).val();
  • 34. Don’t abuse the DOM! It’s expensive to search the Document Object Model (DOM) <select id=“MySelect”></select> for (i=0;i<=500;i++) { $("#MySelect").append("<option>One Item " + i + "</option>"); } ___________________________________________________________________________________________________________________ var options = “”; for (i=0;i<=500;i++) { options += "<option>All Items " + i + "</option>"; } $("#MySelect").append(options);
  • 35. Debugging… ugh.. It ain’t pretty • Alerts.. Alerts.. Alerts.. Alerts… • Developer Tools – Set breakpoints – Evaluate expressions and variables inline (like REAL debugging!) – Firebug for Firefox • Considered to be best of the free tools out there – IE Developer Tools • Comes installed on IE 8+ • console.log (don’t forget to remove before deploying)
  • 36. Debugging… Common Errors • Usually it means your library didn’t get loaded – Object Expected – Object doesn’t support method • Make sure you don’t load scripts more than once – Null Object reference • Check your braces • Make sure you end lines with “;” • Check for missing quotes When all else fails, delete your script and rebuild it slowly in chunks, testing as you go.
  • 37. DEMOS
  • 39. ”Fast Food” Development • You don’t have to be a SharePoint Guru • It’s Cheap • It’s Quick • It’s Easy • It gets the job done
  • 40. ”Fast Food” Development • Don’t abuse it, You’ll pay for it later • Limited choices • There are healthier options • Adds page bloat • Can slow your performance
  • 41. Getting Started… • A Dummies Guide to SharePoint and jQuery – http://bit.ly/jQueryForDummies • SPServices – http://spservices.codeplex.com • Super Awesome 3rd party libraries that integrate well – Modal dialogs - http://www.ericmmartin.com/projects/simplemodal/ – Calendar - http://arshaw.com/fullcalendar/ – Charts - http://g.raphaeljs.com/
  • 42. More jQuery Resources • jQuery Pocket Reference – http://oreilly.com/catalog/0636920016182 • CSS Pocket Refernce – http://oreilly.com/catalog/9780596515058/
  • 43. Questions? Don’t drink the haterade… Mark Rackley mrackley@juniper-strategy.com www.twitter.com/mrackley www.sharepointhillbilly.com 43