Kun aloitin hommat SharePointtien parissa back in the day, ympäristöt olivat käytännössä ”on premises” 2010- ja 2013-versioita. SharePoint Online alkoi vasta nostaa päätään pilvessä, vaihtoehtona asiakkaan omien raudan päällä peuhaavien ympäristöjen sijaan. ”On premises” -ympäristöihin kehitettiin joko Farm solution- tai Sandbox solution -ratkaisuja ja Onlineen Add-in-sovelluksia joko SharePoint -tai Provider Hosted -mallin mukaan. Tällöin SharePoint-sivustojen toimintoja ja ulkoasua pystyi muokkaamaan eri tavoin, kuten lisäämällä sivulle Content Editor- tai Script Editor -webpartin. Näihin pystyi kirjoittamaan omaa JavaScriptiä tai CSS:ää. Tämä oli helppo tapa tehdä esimerkiksi pieniä ulkoasumuutoksia.
Esimerkiksi SharePoint Onlinessa nämä ”webpartit” eivät ole oletuksena käytettävissä, mikä taas kertoo, ettei niitä myöskään kannata ottaa käyttöön. SharePoint Onlinen ”classic experience” -sivustoilla oli myös mahdollista ujuttaa ”webpartien” ominaisuuksiin polkuja omiin JavaScript- ja CSS-tiedostoihin. Tällä tavoin on mm. tullut kirjoitettua tavallisesta Task-listasta täysiverinen sovellus kustomoituine muokkausdialogeineen ja dashboard-näkymineen, go figure!
Kuten rivien välistä voi lukea, tämä oli aika kalanhajuista sekä hyvin hankalasti hallittavaa toimintaa. Sittemmin olen yrittänyt pitää käteni mahdollisimman puhtaina ja pois pahanteosta.
Käytännössä uudet ratkaisut tehdään nykyään pilveen. SharePoint Onlinen modernin ilmeen myötä edellä mainittua puukottamista on hankaloitettu ja hyvä niin. Kun pilviympäristössä manipuloidaan HTML-sivun DOM-elementtejä, pitää olla varma siitä, että kyseinen elementti on sivuston rakenteessa vielä huomennakin. Teoriassa pilviympäristö voi päivittyä milloin vain ja sivun rakenne muuttua. Tällöin jonkin elementin ominaisuuksista riippuva toiminto voi hajota.
SharePointin client-side-kehitys haki vuosia suuntaansa, mutta tänä päivänä työkalupakista löytyy SharePoint Framework, kavereiden kesken SPFx. Se on Microsoftin suosittelema työkalupakki ”webpartien” eli verkko-osien kehitykseen, sivujen kustomointiin ja on helposti integroitavissa SharePointin datan kanssa. Itseasiassa, moderni SharePoint-ympäristö on rakennettu SPFx:llä, joten se on luonnollisesti yhteensopiva myös sillä kehitettyjen toiminnallisuuksien kanssa.
SPFx:llä voidaan luoda sivustoille myös pienempiä toiminnallisuuksia. Tämä konsepti on nimeltään SharePoint Framework Extensions. Näillä laajennoksilla voidaan mukiloida käyttöliittymään juuri edellä kuvattuja pieniä muutoksia, lisätä jokin näppärä toiminto tai piilottaa toinen. Sharepoint Framework Extension paketoidaan kuten webpart ja se voidaan lisätä tietyin ehdoin koko SharePoint-tenantin tasolle, sivustokokoelmaan tai esimerkiksi valittuun listaan. Monikäyttöisyys on yhtä hyvä asia kuin toiminnon rajaaminenkin. Uuden version julkaisun myötä muutokset valuvat kaikkiin laajennoksen instansseihin ympäri SharePointia.
Application Customizer Extension on sapluuna, jolla voidaan tehdä ulkoasumuutoksia tai lisätä skriptejä SharePoint-sivustoille. Sivustolta voidaan esimerkiksi piilottaa jokin UI-elementti tai muokata vaikka koko sivuston ulkoasua injektoimalla oma CSS-tiedosto laajennoksen avulla. Mikäli laajennos asennetaan koko tenantin tasolle (Tenant Wide Extensions), muutokset saadaan näkymään kaikilla sivuilla.
Field Customizer on laajennostyyppi, jolla voidaan kustomoida SharePointin listanäkymien kenttiä. Esimerkiksi jos halutaan, että listan kentän muotoilu riippuu sen sisältämästä arvosta, voidaan tämä toteuttaa laajennoksen avulla. Listanäkymien muokkaus pätee niin SharePointin listoihin kuin kirjastoihinkin, sillä perustaltaan ne ovat sama asia.
Aivan kuten nimi sanoo, ListView Command Set Extensionilla voidaan lisätä SharePointin listanäkymien työkalupalkkiin toimintoja, eli käytännössä nappeja tai valikkotoimintoja. Jokaisella tulee varmasti mieleen jokin toiminto, joka parantaisi listan käyttökokemusta, mutta joka puuttuu oletustoiminnoista. Esimerkiksi toiminto, joka siirtää valitut rivit toiseen listaan tai lähettää tiedot sähköpostilla, you name it!
Laajennokset integroituvat käyttöliittymään sulavasti näyttäen SharePointin out-of-the-box-toiminnoilta. SharePoint Frameworkin ansiosta koodia tarvitaan vähemmän ja yhteensopivuus on parempi. Laajan kehittäjäyhteisön ja lukemattomien avoimeen lähdekoodiin perustuvien koodikirjastojen avulla toiminnallisuutta saadaan rakennettua nopeammin ja luotettavammin. Kirjastoja kehitetään jatkuvasti ja niiden avulla käyttöliittymiin tehdyt toiminnot voidaan kytkeä helposti esimerkiksi SharePoint REST- tai MS Graph API:n tai muiden rajapintojen välityksellä vaikka Azuren resursseihin.
SPFx sisältää tukun muitakin SharePoint-kehittäjän elämää helpottavia ominaisuuksia ja niitä myös lisätään uusien versioiden myötä. Tämä tuo lisää mahdollisuuksia käytettävyyden parantamiseen sekä auttaa tekemään parempaa SharePoint-kehitystä jatkossakin.
Kirjoittaja Ossi Lommin työkalupakista löytyy vatupassin lisäksi myös SharePoint Framework.
Kiinnostuitko?
Ota yhteyttä, jos tarvitset apua SharePoint Frameworkin kanssa tai olet kiinnostunut muista palveluistamme. Autamme sinua mielellämme.
Seuraa meitä somessa:
Tutustu myös näihin:


Ei koodi debuggaamalla kulu
Kirjoitin joskus aiemmin kielimuurista asiakkaan ja koodarin välillä blogissa Pardon my Jargon. Samassa raapustuksessa vilisi


Pardon my Jargon
Meidän ohjelmoijien puhetta voidaan usein pitää muiden ammattiryhmien näkökulmasta käsittämättömänä. Tosin sama pätee moneen muuhunkin