Tech BlogBrand Name

Vad är skillnaden mellan ett ramverk och ett CMS?

I denna guide tittar vi på hur ett ramverk skiljer sig från ett CMS. Vad är för och nackdelarna och hur bör man resonera när man står vid ett vägval?

På Will & Skill, en digitalbyrå i Stockholm så behöver vi många gånger hjälpa våra kunder med att göra research för att förstå vad som är ett lämpligt val utifrån de behov och önskemål en organisation har. Ibland kan det vara svårt att hitta en tydlig väg framåt när man inte riktigt vet vad man behöver och hur man ska kravställa inför framtida teknikval.

Investering vs kostnad

Teknik är som allting annat, det kan ses som en investering eller en kostnad. Det viktiga är att man behöver hela tiden validera sina val längs vägen för att inte hamna i en återvändsgränd. Teknik behöver underhållas och uppdateras med jämna mellanrum så att det investeringen man gör i en teknikstack återbetalar sig i form av "time-to-market", "developer speed", "convenience" och andra faktorer som påverkar hur pass agilt en organisation kan jobba.

I denna guide går vi genom vad skillnaden är mellan ramverk och CMS, samt hur man bör resonera vid ett stundande teknikval.

Vad är ett ramverk?

Ett ramverk består av kodmoduler som adresserar de mest förekommande uppgifterna en utvecklare stöter på när de utvecklar sajter, system och appar.

Vad är ett ramverk?

Ett ramverk består ofta av färdiga kodmoduler som adresserar de mest förekommande uppgifterna en utvecklare behöver kunna lösa i sin vardag när de utvecklar sajter, system och appar.

Ett ramverk liknar i mångt och mycket det man köper från IKEA, standardiserade delar som kan packas ner i relativt små kartonger och som man kan bygga ihop relativt fort utan att behöva tänka på antalet skruvar som behövs för att få ihop byggsatsen. Syftet är att man som utvecklare får en skjuts i form av de saker som redan finns klara och har lösts av ramverket istället för att återuppfinna hjulet på nytt varje gång eller lägga dyrbar tid på att lösa saker och ting som någon annan löst många gånger bättre.

De saker som förekommer ofta hos flera populära ramverk är bibliotek eller moduler som hanterar routing, URLer, vyer, templates, autentisering, modeller, migrationshantering, sessionshantering och databas-kopplingar.

Vilka fördelar får du med ett ramverk?

De flesta ramverk har en kärna med verktyg som används relativt ofta. Därmed så är syftet att ramverket skall minimera mängden tid och kod det tar för att lösa vanligt förekommande uppgifter i en utvecklares vardag. Du får helt enkelt en komplett verktygslåda med hammare, skruvdragare och andra verktyg som är kompatibla och funkar med skruvarna och de andra beståndsdelarna som ingår.

Kompatibiliteten testas och garanteras av de som skriver ramverket för generella ändamål vilket gör att du som utvecklare inte behöver tänka på det och du kan vara säker på att olika delar av ramverket samspelar med varandra utan alltför mycket trassel.

En annan fördel med att nyttja ett ramverk är att det kan underlätta med saker och ting som rekrytering och utbildning av personal då det finns en hel del material och resurser på nätet. Detta är dessutom väldigt viktigt då ramverk som är populära och omtyckta ofta har en hängiven skara utvecklare som ser till att jobba med ramverket och håller det vid liv.

Vad finns det för nackdelar med att använda ramverk?

Om man inte gör sin hemläxa så kan ett ramverk hindra arbetet mer än att underlätta. Ett vanligt exempel är att man använder ett väldigt stort och komplext ramverk som egentligen inte behövs eller används. Det kan även vara så att ramverket löser vissa saker på ett visst sätt men att projektet egentligen inte har behov av de verktyg som ramverket bistår med.

Ibland kan man göra misstaget att man hoppar på tåget på ett nytt ramverk som verkar hett och presterar bra i prestandatester men kanske inte har en nödvändig skara människor som stöttar det genom att bygga community, evangelisera om ramverkets fördelar och innovera kring de viktiga delar som gör att en stor skara utvecklare kan onboardas och lära sig om ramverket för att därefter använda det i kritiska system hos flera organisationer.

Om du själv skall utveckla ett ramverk från grunden så tar det väldigt mycket tid i början för att få ihop något som är robust och utvecklas kontinuerligt. Därför verkar det vara så att det är uteslutande community-baserade open source ramverk som t ex Django, React, React Native och andra liknande ramverk som oftast lyckats bäst i dagens klimat.

Vad är ett CMS?

I korthet så innebär ett CMS ett publiceringsverktyg för att skapa, uppdatera och hantera sidor, sidmallar, text, bilder, ljudklipp och filmklipp på ett enkelt sätt.

Vad är ett CMS?

CMS är en förkortning från engelskans "Content Management System". På svenska så skulle man kunna säga att det heter ett "Innehållshanteringssystem" även om det inte låter lika bra. Om man skulle sammanfatta det som underlättas av ett CMS så innebär det i princip att man skall kunna skapa, uppdatera och hantera sidor, sidmallar, text, bilder, ljudklipp och filmklipp på ett enkelt sätt.

De flesta populära CMS kommer även med grundläggande funktioner för att kunna hantera plugins som modifierar basfunktionalitet hos CMSet, stöd för roller och rättigheter, sökmotoroptimering, versionshantering av innehåll, kommentarsfunktioner, diverse sökfunktioner, komplex bildhanteringsfunktionalitet och olika sätt att publicera information.

I stort sett så har de flesta CMS på marknaden varit monolitiska när det gäller hur nära själva innehållet kopplas ihop med utseendet eller hur informationen presenteras. På senare tid har det blivit vanligare att man ser på själva innehållet och presentationen som två olika saker som nödvändigtvis inte alls behöver sitta ihop. I detta fall så finns det till exempel alternativ som DatoCMS och Contentful som enbart hanterar administration och export av innehåll och data via APIer som sedan får konsumeras av applikationer (iOS/Android) och ramverk såsom t ex React, Angular och Vue. Denna trend har varit såpass påtaglig att Wordpress, EpiServer och många nu erbjuder APIer för strukturerad konsumtion av data.

Läs mer om hur vi på Will & Skill använder ett så kallat "Headless CMS" här

Vad är fördelarna med ett CMS?

Man får väldigt mycket funktionalitet på köpet som man vanligtvis skulle behöva betala för. Du kan även komma igång relativt fort med att sätta upp ett enkelt CMS och börja skapa sidor för att testa din målgrupp innan du börjar lägga ner mer resurser.

Väljer du ett open-source CMS får du även kontinuerliga uppdatering och ny funktionalitet som underlättar ditt eller ditt teams arbetsflöde. Det finns även en drös människor därute som ofta har väldigt bra erfarenhet och kunskap kring de större CMSen som du kan ta nytta utav vilket många gånger innebär att man får väldigt mycket för nästan ingenting.

Vilka nackdelar behöver jag ta hänsyn till hos ett CMS?

Det du bör ta hänsyn till är att all unik utveckling som görs för att anpassa en sida eller en lösning utefter dina behov ofta innebär att du måste ta ansvar för att underhålla den kodbasen över tid. Det man inte betalar i form av licensavgifter betalar man ofta i form av den tid man lägger på att hänga med i svängarna.

Om man tittar på Wordpress som ett exempel så har det dragits med en hel del säkerhetshål som skapat mycket problem för många stora bolag som använt sig utav en gammal version av Wordpress. Eftersom Wordpress är ett populärt ramverk så är det även en stor måltavla för många hackers därute.

Många gånger så har vi sett att vissa bolag gjort alltför mycket i ett CMS som egentligen borde splittas upp i ett system och ett CMS som kan prata med varandra. När man trycker in alltför mycket funktionalitet i ett CMS som ofta enbart är till för att förenkla publiceringsarbetet så kan man se att bolag målar in sig i ett hörn som många gånger kostar skjortan speciellt när det går bra och man behöver skala.

En annan farhåga kan vara att man snabbt växer ur sin ursprungliga CMS-lösning och då är det viktigt att man kan exportera data på ett smidigt sätt.

Hur bör du tänka när du gör ett vägval?

Ett enkelt litmus test du kan göra på dig själv är att fråga dig själv hur mycket nyutveckling eller användning av externa plugins / bibliotek som krävs för att kunna åstadkomma det du vill göra krävs i ditt projekt. Om svaret är att det krävs en hel del anpassningar så är det bra att ta med ett ramverk i ekvationen. Om svaret snarare är att du inte alls kräver alltför många anpassningar så räcker det till en början med att använda sig utav ett CMS

Nyfiken på att höra mer om ramverk och CMS?

Går du eller någon i din organisation och funderar på vilket CMS ni skall välja för att underlätta arbetet för ert content team? Eller har ni behov som kräver skräddarsydda lösningar utöver det som erbjuds av CMS-plattformar därute? Ni kanske har behöver ha ett samspel mellan CMS och ramverk?

Will & Skill är en stockholmsbaserad digitalbyrå som specialiserar sig på att bygga moderna CMS-lösningar tillsammans med robusta ramverk som Django och React. Tveka inte att höra av dig till oss på Will & Skill för att diskutera mer om just dina behov!

© 2020 Will & Skill