SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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...
 

Ähnlich wie 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 (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent biret azure functions and flow (ottawa)
Vincent biret azure functions and flow (ottawa)Vincent Biret
 
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
 
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
 

Ähnlich wie 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 (ottawa)
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 (toronto)
Vincent biret azure functions and flow (toronto)Vincent biret azure functions and flow (toronto)
Vincent biret azure functions and flow (toronto)
 
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
 

Kürzlich hochgeladen

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Kürzlich hochgeladen (20)

Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

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