Opsummering af mine oplevelser fra ECS 2018 dag 1 (Full Day Tutorial) - Ultimate Modern SharePoint Development PowerClass with SharePoint/Office 365 Dev PnP Team.

Jeg vil I dette indlæg prøve at opsummere nogle af de guldkorn jeg har fået I løbet af første dag på ECS 2018 konferencen. Jeg valgte at vælge udvikler-sporet for at få indblik i de nye muligheder og retningslinjer der er kommet i forhold til tilpasning af SharePoint – Både OnPremise og SharePoint Online. Samt lidt omkring hvad der sker generelt i forhold til tilpasning af Office 365.

Jeg synes der er en tendens til at man er begyndt at være lidt forskrækket over udviklede tilpasninger af SharePoint – Jeg synes den tendens er meget forståelig ovenpå nogle af de løsninger der er leveret igennem tiden på SharePoint som har gjort, at det har været meget svært og dyrt at flytte til en nyere version af SharePoint. Men jeg synes som modellen har ændret er der stadig mange scenarier hvor det giver rigtig god mening fra et forretningsmæssigt synspunkt at lave tilpasninger og giver høj forretningsværdi at udvikle en tilpasning. Et simpelt tænkt eksempel kunne være at få vist data i SharePoint Online fra et forretningssystem som ligger OnPremise. Det kan løses på mange måder, men et løsningsforslag kunne være en SharePoint Webpart udviklet i SharePoint Framework som gør brug af et API der er sikret af Azure Actice Directory.

Tilpasninger kan også ’bare’ være en standardiseret måde at oprette Artifakter i Office 365 som sikrer at når en bruger f.eks. opretter et projekt rum til samarbejde så sker det altid på en ensartet måde og det dermed er let for IT at uddanne forretningen og understøtte deres forretningsbehov.

Jeg er stadig stor fortaler for at man skal forsøge sig med Out of the Box funktionalitet og forsøge at komme så langt som muligt – men nogle gange er der unægtelig behov for udvikling og så er det godt at vide hvordan man griber det an i anno 2018 😊

Hvad er moderne SharePoint udvikling?

Så hvad er ”moderne SharePoint udvikling”? Et bud er at det er at gå væk fra tankegangen om at der kun kommer en ny version hver 3. år, og man derfor ikke behøver at sætte sig ind i ny viden andet end hver 3. år ved at tage et kursus og efterfølgende lave om på den måde man arbejder. I stedet skal man nu forholde sig til ’Constant Change ’ – kontinuerlig udvikling – nye features og ny funktionalitet hver anden uge. En naturlig udvikling i forhold til hvordan alt andet rundt om os også går hurtigere og hurtigere, men det sætter unægtelig nogle krav til dem der skal arbejde med udvikling til SharePoint.

Jeg vil forsøge at opsummere og nævne de vigtigste 5 punkter (efter min mening) i hvordan man kommer godt igennem rejsen fra klassisk SharePoint udvikling til moderne SharePoint udvikling – opsummeret er det følgende punkter:

  • Kom væk fra serveren
  • Livslang læring
  • Tillid
  • Basis er stadig det samme
  • Brug andres erfaring – og del! ’Sharing is Caring’ 

Kom væk fra serveren

Du skal som ’moderne’ udvikler ikke være på serveren – kom væk – også når det gælder OnPremise. Tiden hvor man kan hacke SharePoint og lave genveje ved at læse og skrive direkte til en Content Database, eller skrive serverside kode som kan hijacke SharePoint er ovre. Selvom du stadig kan gøre det OnPremise kan du være helt sikker på at du aldrig kan få koden med ud i SharePoint Online.

Så man kan lige så godt begynde at ændre sit mindset nu hvis man ikke allerede har gjort det. Betragt i stedet SharePoint som et færdig produkt og hjælp dine kunder med at tænke anderledes. Når en kunde beder om X-Y-Z skal du vænne dig til at ikke længere sige ”ja selvfølgelig”, men i stedet udfordre deres krav og fortæl dem hvad der kan lade sig gøre, og fortæl dem hvad der er hensigtsmæssigt.

Tænk på at alt en service – I stedet for server side code så benyt REST, CSOM eller JSOM til at snakke med SharePoint.

Vi vil fremadrettet se mere og mere kode blive eksekveret på klienten – uanset om det er i en browser, Microsoft Teams eller en Office applikation – Tiden er kommet til at betragte klient-side udvikling som enterprise udviklingsplatform.

Livslang læring

Hvis du ikke kan lide forandring er det måske et godt tidspunkt at overveje om du vil arbejde med SharePoint og Microsoft teknologi i det hele taget. Udviklingen går hurtigt og det er nødvendigt vi som udviklere sætter os ind i de nye ting løbende, og ikke bare igennem et kursus én gang hver tredje år når der kommer en ny version af SharePoint.

Konkret er der følgende ting som der er behov at sætte sig ind i  

  • Ny værktøjskasse for at lære SharePoint Framework udvikling. Alt sker ikke længere i Visual Studio
  • Der er nye funktioner og muligheder, men også forhindringer i forhold til tilgangen til udvikling
  • Behov for at lære klient udvikling (TypeScript og JavaScript)
  • Et råd er at lær et nyt framework f.eks. React, Angular i dybden og bliv god til det. Alle de forskellige frameworks har desværre fordele og ulemper i forskellige situationer i forhold til at arbejde med f.eks. State og DOM. – det kan være svært at overskue så her er rådet at træk på nogen med mere erfaring.

Livslang læring er ikke kun for udviklere – det gælder også for SharePoint Produkt gruppen – og de lytter meget aktivt. De arbejder i en konstant feedback cyklus og interagerer med deres community og hører hvad der er behov for. De arbejder på at hjælpe med guidelines for hvordan man transformere sin måde at lave løsninger på, f.eks. hvordan man skifter fra klassiske publishing sites, til modern publishing. Derudover arbejder de på at blive bedre til at opdatere og udgive dokumentation, opdateringer og oplysninger omkring deres produkt roadmap. 

Tillid

Tillid er et meget vigtigt element i den moderne måde at arbejde på. I og med at driften bliver flyttet til Microsoft og vi gør brug af Cloud services bliver vi nødt til at stole på at services ikke er nede og ikke ændrer sig uden notifikation, og det samme for API’er.

Begge dele kan være svært da de fleste har været ude for situationer hvor det ikke er sandt og noget er knækket, men generelt er det vejen det er nødvendigt at gå. Det betyder desværre i praksis at man kan risikere at noget der har virket holder op med at virke. Det bør man tænke ind i sine projekter og eventuelt overveje at afsætte budget til vedligehold af sin løsning eller lave en aftale med sin leverandør om at vedligeholde de tilpasninger de har lavet.

Der ligger rigtig meget Open Source kode tilgængelig til SharePoint – Det er vigtigt at du som udvikler forstår de værktøjer og tredjeparts komponenter du bruger og ikke bruger dem blindt. Sæt dig ind i hvad du installerer uanset om det er fra PnP eller fra andre kilder. Det er vigtigt du forstår det både fra et sikkerhedssynspunkt og også fra et performance synspunkt.

Open Source er et partnerskab. Hvis du finder fejl så rapporter issues og submit fejlrettelser - brug og promover softwaren for dine kollegaer så best practices kan udvikles. Disse principper gælder ikke kun SharePoint, det kunne også være til Gulp eller andet som nu også er i din værktøjskasse.

 

Basis er stadig det samme

Selvom det skal gå hurtigt – eller måske især fordi det skal gå hurtigt er der nogle grundlæggende software udviklings discipliner man ikke skal springe over. ALM (Application lifecycle Management) er stadig alfa og omega. Hvis man tidligere har sprunget over her, er det et rigtig godt tidspunkt at indhente det forsømte.

Man skal stadig benytte VSTS til kildehåndtering og der skal stadig konfigureres Build og Continuos integration. Der skal også stadig benyttes staging miljøer såsom udvikling, test, preprod og prod (eller som minimum et miljø før Prod) – dvs. der er stadig behov for at teste sin kode før den rammer produktion.

At man skifter over til klient-side udvikling er ikke ensbetydende med at kvalitet ikke længere er nødvendigt – og der er fuld tooling support for at gøre det hele fuld automatisk. Værktøjerne hedder bare noget andet end de hed i gamle dage 😊

 

Brug andres erfaring – og del! ’Sharing is Caring’

Det sidste råd jeg gerne vil give videre er brug andres erfaring – og del meget gerne af dine egne erfaringer.  Helt specifikt vil jeg anbefale dig at tage et kig på PnP starter kit og hold øje med det. Den engelske beskrivelse er ”Modern SharePoint Starter Kit- End-to-end showcase solution to get started” hvilket er meget rammende. Der er konkrete eksempler på hvordan du strukturerer, pakker og provisionerer dine egne tilpasninger. Der er eksempler på Site Scripts og Site Designs defineret på tenant level, samt SPFx webparts. PnP teamets ambition med Starter kittet er at lægge fremtidige eksempler ind i Starter Kittet hvilket gør det meget let som udvikler at komme i gang med at lave tilpasninger til SharePoint.

Der er p.t. et par udfordringer som gør at det er lidt svært at starte demoen op. Men de arbejder på det højtryk og forventer det ligger helt klar medio juni. Ligeledes arbejder de på at opdatere dokumentationen så det er lettere at komme i gang med. Hvis du ikke kan vente kan du google efter de fejlbeskeder du støder på undervejs – Der er flere MVP’ere som allerede har blogget omkring PnP Starter Kit og hvad du får ud af det.
Vi vil blogge igen omkring PnP Starter Kit når der er en version der ligger klar til at køre.

https://github.com/SharePoint/sp-starter-kit

Opsummering
Er alt perfekt nu når vi er skiftet til moderne? Perfekt er nok at strække den, men for mig er der kommet mere ro på nu. Jeg har de sidste 1-3 år ikke rigtig kunne mærke hvor Microsoft vil hen – jeg oplever nu at de begynder at konsolidere og fokusere på at få sammenhæng imellem alle de ting de har lanceret de seneste år. Jeg synes det er nogle virkelig utrolig fede services der ligger i Azure og Office 365 – der er virkelig mulighed for at lave nogle fantastiske og innovative løsninger uden det nødvendigvis behøver at koste en jetjager.

Alt i alt en fantastisk lærerig dag i Mainz på European Collaboration Summit :)