JavaScript in SharePoint and not just for Apps. Wictor Wilén

Relevanta dokument
Real world SharePoint 2013 architecture decisions. Wictor Wilén

Services + REST och OAuth

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

SAS USER FORUM SWEDEN 2017 USER FORUM. SAS Viya och öppenhet en gemomgång av LUA-, Java-, Python- och REST-gränssnitten mot SAS Viya

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

SharePoint 2010 licensiering Wictor Wilén

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS & jquery. Marcus Bendtsen Institutionen för Datavetenskap (IDA)

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

Fortsättningskurs Webbklientprogrammering

Webbprogrammering. Sahand Sadjadee

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

JAVASCRIPT. Beteende

"HTML5 och relaterade API:er"

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Mobilanpassning

Webbtjänster med API er

Webbtjänster med API er

JAVASCRIPT-POWERED LOADRUNNER CHRISTIAN GERDES PERFORMANCE ENGINEER LIGHTS IN LINE AB

Erik Wahlström Product Strategist 28/01/15

WWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP

Webbteknik II. Föreläsning 4. Watching the river flow. John Häggerud, 2011

WSS F1. Elektronikcentrum i Svängsta Utbildning AB

On-line produktion TDDC61

Next -> Next -> Finish

Exemple på Tentauppgifter Webbprogrammering

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1

API:er/Mashup. Föreläsning 4 API:er och Mashups. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

MVC med Javascript och Ajax. Filip Ekberg

Webbutveckling med AngularJS

Webbtjänster med API er

Kursplanering Utveckling av webbapplikationer

Alla rättigheter till materialet reserverade Easec

Asp.net mvc intro PER KVARNBRINK,

Server-kod. TDDD80 Mobila och sociala applikationer

Arkitektur. Den Röda Tråden

Tjänstegränssnitt API Vägledning

Räkna med ASP.NET MVC 3

PHP. Dynamiska webbsidor

E12 "Evil is going on"

Högskolan i Gävle. Introduktion till att skapa appar för Android VT Eat App! Jacob Gavin

Tentamen etjänster och webbprogrammering

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

Appar med ryggrad. Introduktion till JavaScriptramverket Backbone

TDP013. Innan AJAX Ett synkront webb. Med AJAX Ett Asynkront webb AJAX. Webbprogrammering och interaktivitet. AJAX, CORS,jQuery, PaaS, Projektet

TDP013. Webbprogrammering och interaktivitet. AJAX, CORS,jQuery, PaaS, Projektet. Anders Fröberg Institutionen för Datavetenskap (IDA)

Webbtjänster med API er

PageSpeed Insights. Det finns 2 omdirigeringar. Omdirigeringar gör att det tar längre tid innan sidan kan läsas in.

MVC med Javascript och Ajax. Filip Ekberg

Webbtjänster med API er

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

TNMK30 - Elektronisk publicering

Öppna SGU. - Vad är öppna data? - 5 star model - Öppen standard - Öppna format - Öppen licens - Teknik - REST / Atom - Exempel

Grundläggande datavetenskap, 4p

Essential Php Security Författare: Shiflett, Chris Antal sidor: 124 Förlag: O'Reilly

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Office 365. Göran Husman - HumanData. General Information

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Webbplats analys emreemir.com

Introduk+on +ll programmering i JavaScript

PHP - Fortsättning. PHP och MySQL

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

On-line produktion TDDC61

TDP013. Innan AJAX Ett synkront webb. Med AJAX Ett Asynkront webb

JS & beteende. TNMK30 - Elektronisk publicering

Hur hänger det ihop? För att kunna kommunicera krävs ett protokoll tcp/ip, http, ftp För att veta var man skall skicka

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

Mål med lektionen! Veta kursmålen. Ha kännedom om några av de grundläggande begreppen.

Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er

TDP013. Node.js, Mocha, Istanbul. Anders Fröberg Institutionen för Datavetenskap

Användbarhet för webben MDI, Webb och speciella behov 1

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

ITK:P2 F1. Hemsidor med HTML HTML. FTP, HTTP, HTML, XML och XHTML

1ME323 Webbteknik 3 Lek0on 6 API. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.se

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Leverans-API för nedladdning av geodata v1.0 - teknisk beskrivning

KONSULTPROFIL Juan. Systemutvecklare.NET/EPiServer/Commerce. Sammanfattning. Kompetens. Uppdrag

Laboration 1 XML, XPath, XSLT och JSON

Mallhantering med Office och SharePoint

98 / 100 Hastighet. PageSpeed Insights. Överväg att Fixa: Utnyttja cachelagring i webbläsare. 9 Godkända Regler. Mobil

Webbprogrammering - 725G54 PHP. Foreläsning II

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Axiell Arena. Optimering av prestanda

Vitec Connect. Teknisk beskrivning REVIDERAT SENAST: VITEC. VITEC Affärsområde Mäklare

Modul 8 Hantering av indata

ASP.NET Thomas Mejtoft

Webbtjänster med API er

Namn: (Ifylles av student) Personnummer: (Ifylles av student) Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Webbservrar, severskript & webbproduktion

PAINTFEUD. Erfarenheter

PHP. TNMK30 - Elektronisk publicering

Viktigt! Glöm inte att skriva TentamensKod (ditt anonyma student-id) på alla blad du lämnar in.

Laboration 2 RESTful webb-api

Hybridappar. Utveckla mobilappar i HTML, Javascript och CSS

Webbsäkerhet för IT-tekniker VT2014 Johan Leitet Nätverkssäkerhet, 1DV425 johan.leitet.se twitter.com/leitet facebook.

KONSULTPROFIL Michael

DB, DATA, LOGIC, EXPOSURE (WEB)

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

PHP-presentation Dataföreningens Open Source-nätverk

Lite mer om CGI-programmering

Transkript:

JavaScript in SharePoint and not just for Apps Wictor Wilén

Wictor Wilén

Agenda Varför JavaScript? JavaScript bibliotek SharePoint JS bibliotek JavaScript Client Side Object Model (JSOM/CSOM) REST Client Side Rendering (CSR)/JSLink

VARFÖR JAVASCRIPT?

Varför använda JavaScript? JavaScript is the Assembly Language for the Web Scott Hanselman Enkelt att lära (!?) Webbläsare och hårdvara mer kapabla nu Ingen Server Side kod! Behöver inte tillgång till servrar Enklare underhåll To the cloud!

JavaScript bibiliotek Uppfinn inte hjulet igen! jquery duh! Knockout MVVM Modernizr HTML5 and CSS3 features LESS enklare CSS SPServices - SharePoint 2007-2013

JAVASCRIPT IN SHAREPOINT

SharePoint JavaScript Mycket odokumenterat Förstå varför det är odokumenterat! UI Features Modal Dialogs Alerts Status Messages Callouts (nytt i 2013) Utility metoder Hämta nuvarande site, användare, spark mm URL encoding (SP.Utilities.HttpUtility.*) Bygga URLer (SP.Utilities.Utility.* & SP.Utilities.UrlBuilder) Script-On-Demand

Tjänster som stödjer JavaScript Excel Services API kallat Ewa Läs och beräkna Workbooks, Sheets & Celler Visio Services API kallat Vwa Tillgång till Pages och Shapes Kan lägga till Overlays Zoom och navigering

Registrera JavaScripts Undvik registrera alla JavaScripts i master pagen Blir bara en massa extra last Orsakar fler onödiga requests till server/cachen Använd ScriptLink kontrollen och SOD metoderna

Script-On-Demand (SOD) JavaScript ramverk för att ladda JavaScripts Tillåter fördröjd laddning av script Lazy loading On Demand Händelser när script laddas och/eller när objekt är redo

Använd Script-On-Demand myscript.js Server Side Client Side

Callout.js Ny UI funktion i 2013 Title Content Actions Events Click Hover

CSOM AND REST

Client Side Object Model Introducerades i SharePoint 2010.NET, Silverlight och JavaScript implementationer Batched kommandon, optimerat för att reducera bandbredd Innehåll bara Foundation features Igenkänning med Server API Förbättrat i SharePoint 2013 Social Publishing User Profiles Search Taxonomy JavaScript CSOM kallas även JSOM

JSOM problem Kopplat till en Site Collection Workaround: Search JSOM eller REST Se upp för Cross Site Scripting (XSS) problem Kan bara användas I SharePoint

REST beskrivet i en slide REST = Representational State Transfer Baserat på HTTP GET, PUT, POST, DELETE och MERGE Returnerar OData (XML i AtomPub format) Kan även returnera JSON Notera: POST operationer i SharePoint kräver Form Digest i X-RequestDigest headern REQUESTDIGEST _api/contextinfo

SharePoint REST interface Introducerades i SharePoint 2010 /_vti_bin/listdata.svc Enkla list operationer Rekonstruerat för SharePoint 2013 /_api/* Stödjer mer features; Search, Social Kan behöva en OAuth access token Men inte i JavaScript i SharePoint

REST operation sample http://server/_api/web/lists/documents?$filter=title Service URI = Web Resource Path = SharePoint endpoint Query String = filter (ej obligatorisk) HTTP GET JSON svar istället för XML: Accept: application/json;odata=verbose header Kan behöva: Authorization: Bearer XXX header

REST and jquery

SNYGGARE LISTOR OCH VYER

Client Side Rendering (CSR) Kallas också JSLink Ersätter Field controller med JavaScript mallar Kan användas på: Site Columns Content Types List Views List Forms Web Parts (XLV) SPClientTemplates registrerar mallar SPClientForms validering

The JSLink attribute

Minimal Download Strategy (MDS) JavaScript och Server Side ramverk Gör så att endast delta behöver laddas ner Ökar perceived performance Reducerar krävd bandbredd Kan hantera partiell JavaScript updatering och registrering Intressanta URLer /_layouts/15/start.aspx#/default.aspx

Problem med MDS Ett enda litet JavaScript fel gör så att MDS inte fungerar Kan orsaka att sida laddas två gånger Dålig prestanda JavaScript måste registreras och laddas korrekt Använd Script-On-Demand Använd RegisterModuleInit() metoden Gör er inte beroende av jquery document.ready() Glöm inte MDSClient attributet För server side kod!

Display Templates Nytt sätt att visa tex Sök resultat Ersätter XSLT rendering XSLT is fallback HTML snuttar med JavaScript och lite speciella taggar.html konverteras till.js filer

Sammanfattning JavaScript är nu i högsta grad ett intressant programmeringsspråk för SharePoint Kan användas för applikationslogik Bör användas för UI anpassningar Är mer eller mindre ett krav för alla SharePoint utvecklare

Tack! @wictor www.wictorwilen.se wictor@wictorwilen.se