SlideShare una empresa de Scribd logo
1 de 26
Building Rich
December 1st, 2012
                               Interface
                        Components with
                            SharePoint




Louis-Philippe Lavoie
SharePoint Specialist
GSoft
@lplavoie
@lplavoie
Who am I?
        Louis-Philippe Lavoie




            http://spdynamite.net   @lplavoie


@lplavoie
Target Audience
     • Developer / Advanced
            • 1-3 years of SharePoint
            • Web development background
            • Know
               • HTML, jQuery
               • Bonus: JSON & OData
     • You should be here if :
            • Building (complex) InfoPath forms
            • Using Silverlight



@lplavoie
Agenda
     • What is a Rich Interface?
     • Why would I want one?
     • How do I build it? [+ Demo]
     • Things to keep in mind
     • Peek at SharePoint 2013

     Objective : Understand the tools and techniques
     required to build rich interfaces on SharePoint

@lplavoie
What?

@lplavoie
Rich Interface
     • Browser-based with features and UX similar to
       desktop-based

     • Uses a number of technologies:
            • Before: Browser plug-ins
            • Now:
               •   JavaScript
               •   AJAX / JSON
               •   CSOM or web services
               •   HTML Templates


@lplavoie
Why?

@lplavoie
Why : Better User
     Experience
     • No post backs (aka faster UI)

     • More intuitive

     • Better usability

     • More modern look / less cluttered


@lplavoie
Why : Good Developer mojo
     • Gain new, cutting-edge skills
            • Get ahead
     • Increase your value
     • SharePoint 2013 is all about JavaScript
     • Faster development cycle
            • No code (or very little)
            • Easier to deploy and debug




@lplavoie
Why : Happier IT Admins
     • Scalability
            • Minimize bandwidth, server processing and database IO
            • Delegate processing to client (but it’s not security!)
     • Security
            • Isolation of privileged server-side code and
              authenticated client-side requests
            • Separation of responsibilities
     • Administration
            • Easier / lighter to deploy
     • Integration & Interoperability
@lplavoie
Why : Satisfied Managers
     • Recent Industry standards (future-proof)
     • Larger developer base to pick from
            • Web developers
     • Faster development cycle
            • Rapid prototyping
            • Faster delivery




@lplavoie
How?

@lplavoie
Tools
     • Base : JavaScript
            • jQuery : De-facto standard with SharePoint
     • UI Design
            • jQuery UI or jQuery Mobile : Best integration with
              jQuery
            • Twitter Bootstrap, Foundation, etc. : Very promising but CSS do not
              play well with SP
     • Architecture
            • KnockoutJS
                • MVVM design
                • Auto-bindings
                • HTML Templating

@lplavoie
SharePoint’s end points
     • End Points
            •   REST services (Listdata.svc / OData)
            •   JSOM (Client.svc)
            •   SPServices
            •   SOAP endpoints / asmx web services : Deprecated


     • Sample: Simple Item Repository
            • Works with: Chrome, Firefox, Safari (OSX, iPhone, iPad),
              IE8+
            • IE7 : JSON2.js (https://github.com/douglascrockford/JSON-js)
            • Simple or Grouped items

@lplavoie
Features : Drag & Drop +
     Touch
     Possible with: Chrome, Firefox, Safari
     (OSX, iPhone, iPad), IE7+

     • Major players (for SharePoint):
            • jQuery UI + jQuery Touch Punch
            • jQuery Mobile


     • Drag & Drop is part of the HTML5 spec


@lplavoie
Features : Responsive
     Possible with: Chrome, Firefox, Safari (OSX, iPhone,
     iPad), IE8+

     • @media Queries or a responsive framework
       (Foundation, Bootstrap Twitter)
     • IE7, IE8 : HTML5Shims but UX is degraded

     • See also : SharePoint HTML5 Master Pages


@lplavoie
Build it! :
     Task board
     jQuery + jQueryUI + KnockoutJS




@lplavoie
SP2013 : REST oriented
     • More exhaustive REST endpoints
            • Available for most service applications
            • More commands and data

     • Web app model specifically for this

     • Hosted or Cloud-hosted
            • More integration points



@lplavoie
SP2013 : JavaScript oriented
     • Remote-Loadable Chrome Control
     • Client Side Rendering
            • HTML Templating (JSLink / micro templating)
            • No more XSLT
     • Minimal Download Strategy
            • Leverage AJAX to minimize postbacks and bandwidth
            • Must be built into custom controls
     • HTML5/CSS3/JavaScript now part of SP2013
       Certification

@lplavoie
Keep in mind
     • Localization : Objects are referred to by display
       name
            • MUI may cause display names to change
            • Use SP’s built-in handler for resource localization
     • Limited data/state management
            • Best: Cookies or server-side
            • HTML5 will help
     • Behaviour of browser back button
            • Modern frameworks now handle it
     • Client-side is outside DMZ (i.e. not secure)

@lplavoie
Build up your skills!
     • Browser ecosystem can be unforgiving (IE7 ?!)
            • Modern frameworks and a good test strategy will solve that
     • Asynchronous processing can be complex
            • See Promises (Deferred)
     • Modules don’t always cooperate
     • Many different options
            • For client-server communication
            • For architecture
            • For UI
     • Many ways to do it wrong
            • Read up on best practices

@lplavoie
Summary
     • We have seen:
            •   What is a “Rich Interface”
            •   Tools and Techniques used to build one
            •   Live example
            •   Peek at SP2013
            •   Caveats + possible solutions




@lplavoie
Additional Resources
     • FREE HTML5/CSS3/JavaScript courses
            • http://www.microsoftvirtualacademy.com/tracks/developing-html5-apps-jump-start
            • See also : PluralSight ($)
                 • http://pluralsight.com/training/Courses/TableOfContents?courseName=knocko
                   ut-mvvm

     • FREE Certification (Exam 70-480)

     • KnockoutJS Tutorials
            • http://learn.knockoutjs.com/



@lplavoie
Thank You!
     • @lplavoie

     • louis-philippe.lavoie@gsoft-group.com

     • http://spdynamite.net
            • GSoft’s SharePoint Team Blog




@lplavoie
Remember to fill out your evaluation forms to win some great
                                 prizes!

                                &
                   Join us for SharePint today!


   Date & Time:          Dec 1st, 2012 @6:00 pm
   Location:             Pub Italia
   Address:              434 ½ Preston Street
   Parking:              On street with meters $
   Site:                 http://www.pubitalia.ca/


@lplavoie

Más contenido relacionado

La actualidad más candente

To infinity and Beyond with Plone 5!
To infinity and Beyond with Plone 5!To infinity and Beyond with Plone 5!
To infinity and Beyond with Plone 5!Rikupekka Oksanen
 
Getting SEO performance in Angular Meteor with ngmeta
Getting SEO performance in Angular Meteor with ngmetaGetting SEO performance in Angular Meteor with ngmeta
Getting SEO performance in Angular Meteor with ngmetaWill Haire
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSPantheon
 
Our Battle Against Technical Debt
Our Battle Against Technical DebtOur Battle Against Technical Debt
Our Battle Against Technical Debtifnu bima
 
Web Components at Scale, HTML5DevConf 2014-10-21
Web Components at Scale, HTML5DevConf 2014-10-21Web Components at Scale, HTML5DevConf 2014-10-21
Web Components at Scale, HTML5DevConf 2014-10-21Chris Danford
 
HTML5のご紹介
HTML5のご紹介HTML5のご紹介
HTML5のご紹介yoshikawa_t
 
Web Development Today
Web Development TodayWeb Development Today
Web Development Todaybretticus
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a ServiceAndrew Bauer
 
Intro to drupal
Intro to drupalIntro to drupal
Intro to drupalhernanibf
 
Careers in SharePoint, Office 365, Azure & Power BI
Careers in SharePoint, Office 365, Azure & Power BICareers in SharePoint, Office 365, Azure & Power BI
Careers in SharePoint, Office 365, Azure & Power BIMatthew J. Bailey , MCT
 
Making Wcm Easy With Alfresco Share 3 2
Making Wcm Easy With Alfresco Share 3 2Making Wcm Easy With Alfresco Share 3 2
Making Wcm Easy With Alfresco Share 3 2Alfresco Software
 
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...Eric Greene
 
WordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational IntranetWordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational IntranetTech Liminal
 
Making Multisite Work for You
Making Multisite Work for YouMaking Multisite Work for You
Making Multisite Work for Youdrywallbmb
 
Service Workers: no more offline!
Service Workers: no more offline!Service Workers: no more offline!
Service Workers: no more offline!maciej-adamczak
 
tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 Fabio Franzini
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Asish Padhy
 

La actualidad más candente (20)

To infinity and Beyond with Plone 5!
To infinity and Beyond with Plone 5!To infinity and Beyond with Plone 5!
To infinity and Beyond with Plone 5!
 
Frontender in-2016
Frontender in-2016Frontender in-2016
Frontender in-2016
 
Getting SEO performance in Angular Meteor with ngmeta
Getting SEO performance in Angular Meteor with ngmetaGetting SEO performance in Angular Meteor with ngmeta
Getting SEO performance in Angular Meteor with ngmeta
 
Content as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMSContent as a Service: What to Know About Decoupled CMS
Content as a Service: What to Know About Decoupled CMS
 
Our Battle Against Technical Debt
Our Battle Against Technical DebtOur Battle Against Technical Debt
Our Battle Against Technical Debt
 
Web Components at Scale, HTML5DevConf 2014-10-21
Web Components at Scale, HTML5DevConf 2014-10-21Web Components at Scale, HTML5DevConf 2014-10-21
Web Components at Scale, HTML5DevConf 2014-10-21
 
HTML5のご紹介
HTML5のご紹介HTML5のご紹介
HTML5のご紹介
 
Web Development Today
Web Development TodayWeb Development Today
Web Development Today
 
WordPress as a Service
WordPress as a ServiceWordPress as a Service
WordPress as a Service
 
Intro to drupal
Intro to drupalIntro to drupal
Intro to drupal
 
Careers in SharePoint, Office 365, Azure & Power BI
Careers in SharePoint, Office 365, Azure & Power BICareers in SharePoint, Office 365, Azure & Power BI
Careers in SharePoint, Office 365, Azure & Power BI
 
Making Wcm Easy With Alfresco Share 3 2
Making Wcm Easy With Alfresco Share 3 2Making Wcm Easy With Alfresco Share 3 2
Making Wcm Easy With Alfresco Share 3 2
 
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
Building WordPress sites with AngularJS and the RESTful plugin JSON API @ Dev...
 
Html5
Html5Html5
Html5
 
WordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational IntranetWordPress as a CMS - Case Study of an Organizational Intranet
WordPress as a CMS - Case Study of an Organizational Intranet
 
Making Multisite Work for You
Making Multisite Work for YouMaking Multisite Work for You
Making Multisite Work for You
 
Concrete5 workshop
Concrete5 workshopConcrete5 workshop
Concrete5 workshop
 
Service Workers: no more offline!
Service Workers: no more offline!Service Workers: no more offline!
Service Workers: no more offline!
 
tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365 tTecniche di sviluppo mobile per share point 2013 e office 365
tTecniche di sviluppo mobile per share point 2013 e office 365
 
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
Building Responsive Intranet using Sharepoint Framework solutions - Asish Pad...
 

Similar a Building rich interface components with SharePoint

Spsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jquerySpsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jqueryMarijn Somers
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfxVincent Biret
 
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
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFXVincent Biret
 
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint FrameworkVincent Biret
 
Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...
Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...
Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...Marie Smith
 
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
 
Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Jani Tarvainen
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent Biret
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's PerspectiveAPI Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's PerspectiveNiall Roche
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPAGil Fink
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Brian Culver
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointChad Schroeder
 
Sps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flowSps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flowVincent Biret
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Jeremy Likness
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Henry S
 

Similar a Building rich interface components with SharePoint (20)

HTML5
HTML5HTML5
HTML5
 
Spsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jquerySpsbe2012 sessie start to-jquery
Spsbe2012 sessie start to-jquery
 
HTML 5
HTML 5HTML 5
HTML 5
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
#SPSOttawa 2017 migrate to the #SharePoint Framework #spfx
 
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
 
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
#SPSNYC 2018 Migrate your custom components to the #SharePoint Framework #SPFX
 
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework#SPSToronto 2018 migrate you custom development to the SharePoint Framework
#SPSToronto 2018 migrate you custom development to the SharePoint Framework
 
Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...
Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...
Google Developers Group Cloud Los Angeles, Progressive Web Applications by Ta...
 
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
 
Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016Exploring Content API Options - March 23rd 2016
Exploring Content API Options - March 23rd 2016
 
Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)
 
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's PerspectiveAPI Architecture Summit 2014- APIs: A Mobile Developer's Perspective
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
 
The Characteristics of a Successful SPA
The Characteristics of a Successful SPAThe Characteristics of a Successful SPA
The Characteristics of a Successful SPA
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
Bringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePointBringing HTML5 alive in SharePoint
Bringing HTML5 alive in SharePoint
 
Sps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flowSps toronto introduction to azure functions microsoft flow
Sps toronto introduction to azure functions microsoft flow
 
Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!Single Page Applications: Your Browser is the OS!
Single Page Applications: Your Browser is the OS!
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 

Último

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 

Último (20)

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 

Building rich interface components with SharePoint

  • 1. Building Rich December 1st, 2012 Interface Components with SharePoint Louis-Philippe Lavoie SharePoint Specialist GSoft @lplavoie
  • 3. Who am I? Louis-Philippe Lavoie http://spdynamite.net @lplavoie @lplavoie
  • 4. Target Audience • Developer / Advanced • 1-3 years of SharePoint • Web development background • Know • HTML, jQuery • Bonus: JSON & OData • You should be here if : • Building (complex) InfoPath forms • Using Silverlight @lplavoie
  • 5. Agenda • What is a Rich Interface? • Why would I want one? • How do I build it? [+ Demo] • Things to keep in mind • Peek at SharePoint 2013 Objective : Understand the tools and techniques required to build rich interfaces on SharePoint @lplavoie
  • 7. Rich Interface • Browser-based with features and UX similar to desktop-based • Uses a number of technologies: • Before: Browser plug-ins • Now: • JavaScript • AJAX / JSON • CSOM or web services • HTML Templates @lplavoie
  • 9. Why : Better User Experience • No post backs (aka faster UI) • More intuitive • Better usability • More modern look / less cluttered @lplavoie
  • 10. Why : Good Developer mojo • Gain new, cutting-edge skills • Get ahead • Increase your value • SharePoint 2013 is all about JavaScript • Faster development cycle • No code (or very little) • Easier to deploy and debug @lplavoie
  • 11. Why : Happier IT Admins • Scalability • Minimize bandwidth, server processing and database IO • Delegate processing to client (but it’s not security!) • Security • Isolation of privileged server-side code and authenticated client-side requests • Separation of responsibilities • Administration • Easier / lighter to deploy • Integration & Interoperability @lplavoie
  • 12. Why : Satisfied Managers • Recent Industry standards (future-proof) • Larger developer base to pick from • Web developers • Faster development cycle • Rapid prototyping • Faster delivery @lplavoie
  • 14. Tools • Base : JavaScript • jQuery : De-facto standard with SharePoint • UI Design • jQuery UI or jQuery Mobile : Best integration with jQuery • Twitter Bootstrap, Foundation, etc. : Very promising but CSS do not play well with SP • Architecture • KnockoutJS • MVVM design • Auto-bindings • HTML Templating @lplavoie
  • 15. SharePoint’s end points • End Points • REST services (Listdata.svc / OData) • JSOM (Client.svc) • SPServices • SOAP endpoints / asmx web services : Deprecated • Sample: Simple Item Repository • Works with: Chrome, Firefox, Safari (OSX, iPhone, iPad), IE8+ • IE7 : JSON2.js (https://github.com/douglascrockford/JSON-js) • Simple or Grouped items @lplavoie
  • 16. Features : Drag & Drop + Touch Possible with: Chrome, Firefox, Safari (OSX, iPhone, iPad), IE7+ • Major players (for SharePoint): • jQuery UI + jQuery Touch Punch • jQuery Mobile • Drag & Drop is part of the HTML5 spec @lplavoie
  • 17. Features : Responsive Possible with: Chrome, Firefox, Safari (OSX, iPhone, iPad), IE8+ • @media Queries or a responsive framework (Foundation, Bootstrap Twitter) • IE7, IE8 : HTML5Shims but UX is degraded • See also : SharePoint HTML5 Master Pages @lplavoie
  • 18. Build it! : Task board jQuery + jQueryUI + KnockoutJS @lplavoie
  • 19. SP2013 : REST oriented • More exhaustive REST endpoints • Available for most service applications • More commands and data • Web app model specifically for this • Hosted or Cloud-hosted • More integration points @lplavoie
  • 20. SP2013 : JavaScript oriented • Remote-Loadable Chrome Control • Client Side Rendering • HTML Templating (JSLink / micro templating) • No more XSLT • Minimal Download Strategy • Leverage AJAX to minimize postbacks and bandwidth • Must be built into custom controls • HTML5/CSS3/JavaScript now part of SP2013 Certification @lplavoie
  • 21. Keep in mind • Localization : Objects are referred to by display name • MUI may cause display names to change • Use SP’s built-in handler for resource localization • Limited data/state management • Best: Cookies or server-side • HTML5 will help • Behaviour of browser back button • Modern frameworks now handle it • Client-side is outside DMZ (i.e. not secure) @lplavoie
  • 22. Build up your skills! • Browser ecosystem can be unforgiving (IE7 ?!) • Modern frameworks and a good test strategy will solve that • Asynchronous processing can be complex • See Promises (Deferred) • Modules don’t always cooperate • Many different options • For client-server communication • For architecture • For UI • Many ways to do it wrong • Read up on best practices @lplavoie
  • 23. Summary • We have seen: • What is a “Rich Interface” • Tools and Techniques used to build one • Live example • Peek at SP2013 • Caveats + possible solutions @lplavoie
  • 24. Additional Resources • FREE HTML5/CSS3/JavaScript courses • http://www.microsoftvirtualacademy.com/tracks/developing-html5-apps-jump-start • See also : PluralSight ($) • http://pluralsight.com/training/Courses/TableOfContents?courseName=knocko ut-mvvm • FREE Certification (Exam 70-480) • KnockoutJS Tutorials • http://learn.knockoutjs.com/ @lplavoie
  • 25. Thank You! • @lplavoie • louis-philippe.lavoie@gsoft-group.com • http://spdynamite.net • GSoft’s SharePoint Team Blog @lplavoie
  • 26. Remember to fill out your evaluation forms to win some great prizes! & Join us for SharePint today! Date & Time: Dec 1st, 2012 @6:00 pm Location: Pub Italia Address: 434 ½ Preston Street Parking: On street with meters $ Site: http://www.pubitalia.ca/ @lplavoie