24 mars, 2010

Varför Silverstripe är intressantare än EPiServer – del 2

Varför Silverstripe är intressantare än EPiServer - del 2

Det finns många lösningar för att bygga en stabil och väl fungerande webbplats idag. I stort kan man dela upp lösningarna i två kategorier - kommersiella system som kostar pengar och öppna system som är kostnadsfria och bygger på öppen källkod. Ja, ni vet kanske vilka vi förespråkar?

Detta är en artikel i tre delar som är ämnad att slå hål på de myter och farhågor som finns kring att bygga större, lite mer omfattande webblösningar med system som bygger på öppen källkod. För det går nämligen. Det går mycket väl!

I del 1 - gick vi igenom vad fördelarna med Open Source är och varför större kommersiella CMS som EPiServer kan börja känna sig hotade

I denna del - del 2 - tittar vi under huven på båda CMS:erna och jämför de ramverk de är byggda på. I artikeln har vi valt att jämföra Silverstripe och EPiServer då de är ganska snarlika till gränssnittet och representerar sina kategorier väl.

Ramverk - det som särskiljer

De flesta programmeringsspråk är idag ganska lika varandra. PHP5, C#, Python, Ruby. De är alla kompetenta och klarar ungefär lika mycket. Språket är därför inte lika intressant och kritiskt som det tidigare varit. Det som har blivit betydligt viktigare är ramverket. Det är ramverket som egentligen underlättar utvecklingen, inte språket. Vi på Kreationsbyrån har arbetat i ett antal ramverk, allt från Rails (Ruby), Django (Python), Webforms (ASP.NET), CodeIgniter (PHP) och har kommit fram till följande.

  • Skriptspråk (Ej kompilerbara, t ex PHP, Python och Rails) språk är effektivare att underhålla
  • Rails & Djangos MVC-ramverk är otroligt eleganta och enkla att underhålla. Dessutom snabbar de på utvecklingsprocessen något oerhört
  • Webben handlar om snabbhet. Det handlar om att kunna producera snabbt med kvalitet
  • CMS:en bör bygga på ett stabilt och effektivt ramverk, helst ett MVC-ramverk.

ASP.NET Webforms

EPiServer är ett riktigt dugligt CMS, och likt alla applikationer är det inte fritt från buggar. Men det är inte där skon klämmer. Det är ramverket som är boven i dramat. EPiServer är byggt på ASP.NET, som är en bra plattform för utveckling av windowsapplikationer, dvs program till windows. Ingen tvekan om saken. Men i sin iver att skapa en helhetslösning för utveckling av webb- och windowsapplikationer valde Microsoft att bygga ihop de två ramverken så att det skulle vara lätt att som utvecklare gå från den ena till den andra. ASP.NET Webforms - Microsofts ramverk för webben fungerar alltså i stort på samma sätt som ASP.NET för windowsapplikationer, på så sätt skulle man kunna ha väldigt breda utvecklare som kunde utveckla både för webb och för windows genom att erbjuda samma princip. Genialiskt! Eller? Nja… På pappret kanske.

Problemet är att webbutveckling och windowsbaserad applikationsutveckling skiljer sig markant åt. Istället för att förlita sig på att utvecklarna anpassar sig till webbutveckling har man istället byggt in det i samma skrud som för windowsutveckling. Detta har gett upphov till effektivtetsproblem kring utveckling och underhåll av webbapplikationer i .NET. För att inte nämna begränsningar i att följa standarder i gränssnittet. Man har inte räknat med att webben, och då speciellt gränssnittet, skulle ändra sig så mycket från år till år.

Dessvärre är ASP.NET Webforms inte tillräckligt dugligt för webb. Det är inte uppbyggt enligt MVC, ineffektivt att jobba med och svårt att snabbt anpassa för att möta den ständigt föränderliga webben. Det resulterar i att utvecklingen tar längre tid och blir mer komplicerad än vad den behöver.

Ska poängteras att Microsoft nu även har släppt .NET MVC officiellt och börjar nu röra sig mot ett bättre sätt att utveckla på webben. Problemet är att EPiServer inte är där än, plus att andra MVC ramverk har kommit mycket längre.

Silverstripe & Sapphire

Silverstripe å andra sidan är ett öppet system som byggdes av erfarna och motiverade utvecklare som ville sammanföra effektivteten från Ruby till ett stort öppet comunity som PHP erbjöd. Det är ett system som består av ett ramverk - Sapphire och en webbapplikation - Silverstripe CMS. Ramverket är en direkt port av MVC-ramverket Rails (Ruby) och gör att utvecklingen är både effektiv och flexibel. Det är enkelt att jobba på ett naturligt sätt med AJAX och lägger sig inte i gränssnittet på något stoppande sätt. Det möjliggör även att efter några år bygga på befintlig sajt med ny funktionalitet på ett enkelt sätt. CMS, som är det som är känt som Silverstripe CMS är alltså byggt på Sapphire-ramverket och fungerar som vilken applikation som helst som man skulle kunna bygga på Sapphire. De två utgör en kraftig allians. Det är otroligt roligt att se vad dessa killar från Nya Zeeland har fått ihop. Framförallt är det roligt att det är open-source!

Silverstripe är dock fortfarande ganska ungt vilket gör att det inte samma rika flora av moduler och plugins som andra open-source CMS kan skryta med. Men det är det system som underlättar modulutvecklande och snarare uppmuntrar till att bygga det man behöver själv. Det intressanta är att CMS:et i sig är väldigt likt EPiServer till utseendet och redaktörer som är vana att jobba i EPiServer känner lätt igen sig.

Går det verkligen att jämföra?

Många tycker säkert att det inte går att jämföra kommersiella system som tex EPiServer och liknande med öppna som Silverstripe. I mångas ögon är EPiServer ett seriösare alternativ av olika anledningar. Här är de förklaringarna jag hört

  • EPiServer är säkrare. Open-sourcelösningar är osäkra och bör på så sätt inte användas i affärskritiska system.
  • EPiServer ger bättre support för att de kan sin produkt bäst. Man får garanterat bra hjälp av upphovsmakarna.
  • EPIServer är ett ”enterprise”-CMS som är byggt för att kunna hushålla flera domäner och sajter. Inget som andra open-sourcelösningar kan göra på ett bra sätt.

Alla dessa påståenden är tyvärr felaktiga. Vi har som sagt erfarenhet av båda världarna och detta är vad vi upptäckt:

  • Hur säkert ett system är beror på kärnan. Silverstripes kärna är byggt av Silverstripe själva och endast de distribuerar den. Silverstripe har dessutom hundratusentals fler ”testare” runtom i världen som rapporterar buggar och säkerhetshål direkt. Jämför det med EPiServers 10-tal testare. I vanliga fall lagar man säkerhetshål när de uppstår. Silverstripes community ser oftast till att man alltid är förberedd innan olyckan är framme.
  • Supporten är inte bara bäst utförd av EPiServer utan också begränsad till EPiServer. Nackdelen med skyddad kod är att inte alla kan bli experter. I praktiken har vi också upplevt att supportkön kan bli väldigt lång. I Silverstripes fall finns ett större community man kan fråga, många av de är just experter. Dessutom har man oftast bättre inblick i systemet då det är helt öppet vilket oftast förenklar support och debugging. Skulle inte det räcka kan man alltid bli Silverstripe Partner och få en direktlinje för kommunikation med Silverstripe Ltd.
  • Slutligen har vi det här med större sajter och kunna hushålla de under ett gemensamt paraply. Detta är inget problem i Silverstripe alls. Det är mer eller mindre det det är byggt för. Då det är byggt för en internationell marknad finns det fokus på att kunna byta språk och hushålla multipla sajter.

I nästa del tar vi en titt på redaktörsgränssnittet på de båda CMS:en. De är väldigt snarlika, båda med god användbarhet men Silverstripe briljerar på en punkt. Mer om det i nästa del.

av Herbert Cuba Garcia

Kommentarer