I Love Sitecore (en ik zal het missen). Op naar Sitefinity!

Blog

Om met de deur in huis te vallen: ik ben best een beetje bedroefd, want we zijn geen Sitecore-partner meer. Het CMS waar ik de afgelopen jaren veel werk in heb gehad, waar mijn expertise zit. Er zijn echter wat veranderingen in de markt, waardoor wij als bedrijf onze horizon moeten verbreden. Gelukkig hebben wij een gedegen ‘sidekick’ gevonden. En zijn naam is Sitefinity.

Op het gebied van content management systemen (kortweg CMS) in de Microsoftwereld is Sitecore de marktleider. En omdat wij bij ShareValue Microsoft-georiënteerd zijn, is het niet meer dan logisch dat wij zo veel tijd hebben geïnvesteerd in Sitecore, dat we zo veel klanten hebben bediend de afgelopen jaren. Het is ook gewoon een geweldig CMS, laat ik dat vooropstellen.

Het bedrijf Sitecore is echter overgenomen door een investeringsmaatschappij en, zoals dat zo vaak gaat: die willen er natuurlijk zo veel mogelijk geld aan verdienen. Helaas hebben ze ervoor gekozen om de prijzen dusdanig te verhogen, dat het voor veel Nederlandse bedrijven niet meer betaalbaar zal zijn.

De schaalgrootte waar Sitecore voor kiest, past enkel bij de écht grote bedrijven, de multinationals. Dat is een keuze, maar het zorgt er wel voor dat wij onze expertise moesten verbreden met een ander systeem. In de nabije toekomst zal het er namelijk ook voor zorgen dat de hoeveelheid opdrachten voor Sitecore developers en consultants van ShareValue zal afnemen.

Analyse van concurrerende pakketten

Vanuit mijn rol als Competence Lead CMS heb ik een analyse gedaan van verschillende concurrerende pakketten, zoals Episerver, Umbraco en Kentico. Om uiteenlopende redenen vielen ze een voor een af: te duur, te instabiel door vele wijzigingen, niet geschikt vanwege achterlopende techniek. Uiteindelijk is de keuze gevallen op Sitefinity.

Het bedrijf achter Sitefinity is het bij developers bekende Telerik. Het product is daardoor erg developer-friendly: met geoptimaliseerde workflows, betrouwbare en actuele techniek en goede documentatie. Tel daarbij op dat de prijs van dit CMS een kwart is van wat Sitecore tegenwoordig kost en de keuze was uiteindelijk toch snel duidelijk.

Mijn inschatting is dat in de komende jaren vele bedrijven over zullen stappen van Sitecore naar een vergelijkbaar, maar vele malen goedkoper CMS. Sitecore is de Rolls Royce in de Enterprise CMS-wereld en voor de meeste bedrijven sowieso al te veel van het goede. Een simpeler pakket voldoet net zo goed, omdat 95% van de mogelijkheden toch niet benut worden of overbodig zijn. Voor het leeuwendeel van de Nederlandse bedrijven, voor MKB en midden- en grootbedrijf – eigenlijk alle bedrijven onder de 5000 werknemers – is een CMS als Sitefinity een zeer geschikt alternatief.

Soepele overstap

Hoe de overstap naar (bijvoorbeeld) Sitefinity zal gaan en hoe snel dit gerealiseerd kan worden, dat hangt ervan af. Zoals wij IT’ers altijd zeggen: it depends, het is allemaal maatwerk. Qua techniek hoeft het gelukkig geen probleem te vormen, want Sitefinity is net als Sitecore op de laatste versie van het .NET Framework gebaseerd. Plug-ins en add-ons die we hebben geschreven voor Sitecore kunnen we daarom redelijk snel en eenvoudig aanpassen zodat deze ook gebruikt kunnen worden op Sitefinity.

Sitefinity volgt bovendien de bewegingen naar .NET Core (nu .NET 5), wat voor veel bedrijven een vereiste is als ze naar een nieuw pakket overstappen. En tot slot is Sitefinity headless – een manier om alle content via geoptimaliseerde APIs aan te bieden. Hierdoor is het gemakkelijker om met verschillende Front-End technieken en mobiele apps te integreren.

Afscheid nemen doet pijn

Het is erg leuk om met nieuwe techniek bezig te zijn en Sitefinity helemaal onder de knie te krijgen, maar toch doet het pijn om deels afscheid te moeten nemen van Sitecore. Het is namelijk niet alleen het systeem waar ik samen met mijn team straks niet meer actief voor ontwikkel, er zit ook een enorme toegewijde community achter, er is daar zoveel technische kennis aanwezig!

Als je met een probleem zat waar je niet uitkwam, dan is er altijd wel iemand die je kon helpen. En vice-versa, natuurlijk. Er is zo veel documentatie, er zijn vele duizenden blogs, podcasts, video’s door de community gepubliceerd, het is bijna niet voor te stellen. Je komt elkaar tegen op congressen en meetups en virtuele lunches; het was altijd gezellig. Een grote, wereldwijde familie, zo zie ik het bijna.

Gezien we verwachten dat er steeds meer werk komt in Sitefinity en steeds minder in Sitecore, zal ik op den duur deze familie dus achter me moeten laten. En dat doet toch een beetje pijn. Stiekem hoop ik dan ook dat het merendeel van de familie de komende jaren dezelfde verbreding naar Sitefinity maakt.

Hoe nu verder

Bij ShareValue zijn we nu volop bezig om het Sitefinity-pakket beter te leren kennen en met het halen van certificaten. Daarnaast zijn we vooral bezig om kennis en ervaring op te bouwen hoe wij met onze knowhow klanten kunnen helpen om hun Sitecore omgeving naar Sitefinity te migreren.

Ben je ook geïnteresseerd in alternatieven voor Sitecore en hoe je hiervan af kan migreren? Neem dan contact met ons op. We kijken graag met je mee naar de verschillende oplossingen.

Gerelateerde artikelen

Michiel Michiel / 10-12-2020

4 minuten lezen

Op 10 november zag .NET 5 officieel het levenslicht tijdens een driedaags online event. .NET 5 mag met recht een mijlpaal genoemd worden: in het (bijna) 18-jarig bestaan van .NET is dit misschien wel het belangrijkste moment sinds het ontstaan van .NET 1.0.

Mijlpaal!

Waarom is dit zo’n grote mijlpaal?

Met .NET 5 wordt gebroken met het verleden. Tot voor kort werd het .NET Framework (uit 2002) steeds verder ontwikkeld op het bestaande systeem: closed source, Windows only.

.NET 5 is natuurlijk ook niet zomaar ontstaan; het is tenslotte de opvolger van .NET Core 3.1. .NET Core zelf is echter een complete herbouw van .NET en tegelijkertijd alles wat .NET Framework niet is: open source en cross-platform.

<3

Microsoft ❤ Open Source

Die trendbreuk is een aantal jaar geleden ingezet door Satya Nadella en tijdens de Microsoft Build van 2019 nog eens bevestigd: Microsoft ❤ Open Source.

In het tijdperk van Steve Ballmer was dit niet voor te stellen. In de open source wereld werd Microsoft verguisd en ook binnen Microsoft was het niet voor te stellen dat je een presentatie gaf op een Mac.

Dit werd ook pijnlijk duidelijk toen op 4 juni 2018 officieel werd aangekondigd dat GitHub voor 7,5 miljard dollar overgenomen zou worden door Microsoft. Concurrent GitLab zag het aantal geïmporteerde projecten vertienvoudigen. Twee jaar later lijkt de angst dat Microsoft GitHub om zeep zou helpen ongegrond. Microsoft helpt mee aan allerlei open source initiatieven, uiteraard ook hun eigen .NET projecten.

Open source en cross platform

Voordelen van .NET

Zoals aangegeven is .NET 5 open source en cross platform. Het voordeel daarvan is dat er meer mogelijkheden zijn voor hosting. Zelfs binnen Azure kan een .NET webapplicatie op Linux draaien. Cross platform zorgt ook voor meer integratie met andere ontwikkelteams en heb je geen last van “vendor lock-in”: .NET 5 werkt bijvoorbeeld ook op Amazon Web Services (AWS) en de Google Cloud.

Daarnaast zijn er nog meer voordelen, maar één van de belangrijkste naast de bovenstaande, is de performance. .NET 5 is veel sneller dan zijn voorgangers. Meer informatie daarover staat in de zeer uitgebreide blog van Microsoft.

.NET Roadmap

Met .NET 5 houden we één .NET over. .NET Framework, .NET Standard en .NET Core blijven uiteraard werken, maar verdere ondersteuning houdt wel op.

.NET Roadmap

De roadmap voor .NET is voor de komende jaren vastgelegd. Vanaf nu zal er elk jaar een nieuwe .NET versie uitgerold worden. In november 2021 zal .NET 6 uitkomen. Net als andere “even” versies, wordt deze met “Long Term Support” (LTS) geleverd worden.

Ondanks dat .NET 5.0 geen LTS heeft, kan je er wel bedrijfskritische applicaties mee maken. Indien er echter toch terughoudendheid is en er daarom gekozen wordt om te wachten op .NET 6 (met LTS), dan is het zeker niet het moment om af te wachten. Een migratie kan een hele operatie zijn en dan is 11 maanden voorbereiding zeker aan te bevelen en kan .NET 5 als basis dienen.

Een begin kan zijn om business logica onder te brengen in .NET Standard 2.1 class libraries. Dit is namelijk de laatste versie die zowel door .NET Framework als .NET Core / .NET 5 gebruikt kan worden. Door deze transitie te doen, kan oude code blijven werken en kunnen tegelijk de eerste stappen van de migratie worden genomen.

WebForms

Voorbeeld ASP.NET WebForms

Sommige migraties zijn eenvoudig, omdat de techniek blijft bestaan. Zo is een migratie van ASP.NET MVC naar ASP.NET Core MVC een stuk eenvoudiger te realiseren dan een migratie van ASP.NET WebForms naar een .NET 5 webapplicatie, omdat WebForms niet meer bestaat.

In een eerdere blog heb ik Blazor besproken. Voor developers die nu werken met WebForms is dit een goed alternatief: een lage learning curve en de kennis en expertise is al in huis. En ook Blazor heeft componenten die hergebruikt kunnen worden. Verder kunnen met .NET 5 wel alle moderne technieken gebruikt worden. Unit tests als xUnit en bUnit kunnen gebruikt worden om de huidige functionaliteit te testen in de nieuwe omgeving.

Uiteraard zijn er ook andere mogelijkheden om de WebForms applicatie te migreren naar een andere weboplossing. Daarbij zoeken wij altijd naar een oplossing die het beste past bij de omgeving van onze klant.

Een migratie van de oude .NET naar .NET 5.0

.NET 5.0 Migratiescan

ShareValue heeft de kennis in huis om een migratie van een oude .NET versie naar .NET 5 te begeleiden en hier adviezen op te geven. Dit begint met een analyse van het huidige software landschap. Vervolgens brengen we een advies uit, waarbij we ook rekening houden met de impact op de business. Uiteindelijk kunnen we de uitvoering van de migratie samen met de klant realiseren en begeleiden. Wil je hier meer over weten? Neem dan contact met ons op.

/ 05-07-2019

4 minuten lezen

Sitecore is dé leading tool op het gebied van digital marketing. Waar een ander CMS een out of the box oplossing presenteert, is Sitecore volledig aanpasbaar en uitbreidbaar.

Dit is ook waarom ShareValue ervoor kiest om zich te richten op Sitecore als expertise naast SharePoint / Office 365 (intranet) en .NET (maatwerk).

Bij een website zijn allerlei mensen betrokken: Back-End Developers, Front-End Developers, Marketeers, Content Editors en Data-Analysten. In deze blog gaan we dieper in op deze functies en zien we hoe Sitecore juist deze verschillende groepen kan ondersteunen in hun uitdagingen.

Sitecore Installation Framework

Back-End Developers

Een side effect van het succes van Sitecore, is dat het CMS steeds groter en uitgebreider wordt, waardoor installatie met iedere versie omslachtiger wordt.

Waar Sitecore in het verleden een kleine monolithische applicatie was, is Sitecore nu een grote applicatie met een aantal kleine applicaties (microservices). Hierdoor is installatie niet meer slechts een half uurtje werk en geeft het veel keuzes die gemaakt moeten worden.

Het antwoord van Sitecore op deze uitdaging is SIF: het Sitecore Installation Framework. Dit bestaat uit een set Powershell-commando’s, een Web Deployment Package (te downloaden van de Sitecore-site) en een configuratie. Wat levert dit op? Sitecore neemt het installatie-proces uit handen (welke configvelden op welke machines staan, het daadwerkelijk installeren hiervan e.d.). Dit scheelt de Applicatiebeheerder veel werk, en hiermee tijd.

JavaScript Services

Front-End Developers

Er zijn steeds meer nieuwe technieken op Front-End gebied. React, Angular, VueJS… Front-End frameworks volgen elkaar in rap temp op. Helaas is het lastig om deze frameworks te embedden op een dynamic site zonder headless CMS.

Het antwoord hierop is JSS. Sitecore JavaScript Services (JSS) is een Software Development Kit (SDK) welke beschikbaar is voor de meest populaire Front-End frameworks van dit moment. Kortom gebruik de laatste JavaScript frameworks gecombineerd met een Enterprise Backend.

Sitecore Experience Excellerator

Content Editors

Content Editors zitten vrijwel dagelijks met de stress van deadlines. Er is een nieuwe campagne bedacht en er moeten nieuwe uitingen ontwikkeld worden. Voordat de Content Editor met de uitingen aan de slag kan, moeten Design, UX en Development aan het werk. Hierdoor kan de Content Editor nog net voor het verstrijken van de deadline aan de slag, en moet hij/zij in zeer korte tijd de content plaatsen.

Maar, hierop is een antwoord: SXA. SXA (Sitecore Experience Excellerator) is een tool dat Content Editors in staat stelt om alvast eenvoudige pagina’s te ontwikkelen en te vullen met content, nog voordat de Front-End en Back-End Developers hiermee aan de slag zijn. Zo heb je geen last van de strakke content-deadline aan het eind van het proces en kan je alvast vooruit werken.

Marketing Automation

Marketeer

Wanneer bezoekers van je website het platform verlaten, zijn ze weg. Er is dan geen manier meer om met hen te communiceren.

Sitecore maakt het mogelijk om met Marketing Automation aan de slag te gaan. Met Marketing Automation maak je een plan (zie afbeelding) om volledig automatisch in contact te blijven met de bezoeker. Een voorbeeld: een bezoeker van een webshop heeft spullen in zijn/haar winkelmand, maar verlaat de website zonder af te rekenen. Je hebt wel zijn/haar gegevens, en stuurt automatisch na een paar dagen een e-mail met de boodschap ‘vergeet je winkelmand niet af te rekenen! We geven je 5 euro korting als je dat vandaag nog doet’. Wanneer de klant hier niet op reageert, zou je hem/haar eventueel ook automatisch op een bellijst kunnen laten plaatsen.

Machine Learning

Data-analist

Bezoekers haken af wanneer content niet relevant (genoeg) is. De content van veel websites is nog steeds heel statisch, ongeacht het CMS. Maar dankzij technieken als Machine Learning, kunnen we nu content op pagina’s genereren op basis van de informatie die wij hebben over de bezoeker. Dit geeft een Data-Analist veel betere content, maar vooral ook veel meer mogelijkheden om sites te optimaliseren.

Sitecore Cortex is dé machine learning oplossing van Sitecore. Dé manier om ervoor te zorgen dat de bezoekers van jouw website content te zien krijgen die voor hen relevant is. Zo kan je met een zogeheten Content Gap Analyse zien welke content wel en niet goed wordt gelezen, zodat je de minder goede content kunt aanpassen. Ook kan Sitecore Cortex je vertellen wat de meest waardevolle klantgroepen zijn; van doelgroepanalyse tot Customer Journey Mapping. Wat is de intentie van de bezoeker en hoe kun je hier het best op inspelen?

Een voorbeeld dat Sitecore zelf graag noemt: Sitecore Cortex herkende bij een HiFi-webshop een belangrijke nieuwe klantgroep; mensen die bezig waren met verhuizen. Wat bleek; mensen die verhuizen, gaan op zoek naar nieuwe HiFi-producten. Cortex herkende dit onder andere aan de hoeveelheid mensen die hun adres wijzigen bij aanschaf. De webshop kon hier natuurlijk heel goed op inspelen met on- en offline targetting.

Conclusie

Als je “The Hitchhiker’s Guide to the Galaxy” hebt gelezen of gezien, weet je natuurlijk dat het antwoord op de ultieme vraag over het leven, het universum en alles 42 is. Al helpen deze oplossingen van Sitecore ons werk in een steeds complexer wordende situatie natuurlijk ontzettend uiteindelijk het ultieme doel te bereiken: Customer delight. Dat wil jij toch ook?

Onze Sitecore-experts kunnen jou en jouw team op weg helpen met bovenstaande oplossingen. Neem contact met ons op om de mogelijkheden voor jouw situatie te bespreken.

Michiel Michiel / 30-03-2020

5 minuten lezen

Tijdens de Microsoft Build 2019 werd Blazor geïntroduceerd als Front-End alternatief voor JavaScript. Dit jaar gaat Microsoft verder met Blazor en laat met experimentele projecten zien wat de mogelijkheden van Blazor zijn. In mijn ogen is Blazor een mooi nieuw framework met veel toekomst. In deze blog geef ik een korte introductie.

Wat is Blazor?

Blazor is een framework voor full-stack web development met C# en Razor in plaats van JavaScript. Deze webpagina’s zijn op basis van Single Page Applications (SPA’s). Blazor is vergelijkbaar met Node.js als het gaat om één codebase on één stack (van Front-End tot Back-End). Waar Node.js het mogelijk maakt om JavaScript aan de Back-End te gebruiken, doet Blazor dit met C# aan de Front-End zijde.

De voordelen van Blazor

Voordelen

Het grote voordeel van Blazor is dat de hele site geschreven kan worden in één taal. Daarbij kan .NET-code hergebruikt worden aan de client- en serverkant, denk bijvoorbeeld aan datavalidatie. In plaats van validatie in JavaScript voor de Front-End en C# aan de Back-End kant, kan dit nu met één en dezelfde class. Uiteraard kan er nog steeds JavaScript gebruikt worden als dat beter uit komt.

Blazor is ook een mooi platform voor gebruikers die eerder met ASP.NET Web Forms hebben gewerkt of voor bedrijven die nog met Web Forms werken. Zoals bekend zal Web Forms geen onderdeel uitmaken van .NET 5.0. Dit betekent dat de laatste versie voor Web Forms versie 4.8 is. Hier lijken ook geen beveiligingsupdates voor uit te gaan komen, wat betekent dat de huidige Web Forms applicaties vervangen moeten worden voor moderne alternatieven.

Blazor kan hier een geschikt alternatief zijn. Onder andere omdat het gelijkenissen heeft met Web Forms, zoals het maken van herbruikbare web UI-componenten met C# en Razor als vervanging voor de user web controls die Web Forms aanbiedt. Daarnaast is er maar een beperkte leercurve vanwege het gebruik van een bekende taal en framework.


Blazor Server

Blazor Server is de eerste uitvoering van Blazor die met .NET Core 3.1 live is gegaan. Net als bij Web Forms draait bij Blazor Server alle logica op de server. Bij een wijziging van de pagina, door bijvoorbeeld het indrukken van een knop, wordt er contact gelegd met de server. Hier wordt de code uitgevoerd en door middel van SignalR teruggestuurd naar de Document Object Model (DOM). Met behulp van een slim algoritme houdt Blazor bij welke delen van de pagina gewijzigd zijn. Door de verschillen te bekijken tussen de nieuwe en huidige situatie hoeft niet de hele pagina opnieuw geladen te worden. Dit is vergelijkbaar met AJAX in Web Forms.

Blazor WebAssembly

Bij Blazor WebAssembly wordt de code uitgevoerd aan client-side in plaats van aan de server-kant. Hierbij wordt de Blazor library gedownload naar de client en kan deze zonder extra calls naar de server uitgevoerd worden. Uiteraard moet de data wel ontsloten zijn. Verder zijn er weinig verschillen, behalve dat de client iets zwaarder wordt gebruikt dan bij Blazor Server.

Door het Shared component model is het mogelijk te wisselen tussen Blazor Server en Blazor WebAssembly zonder code te herschrijven. Het is wel belangrijk om te beseffen dat de twee hosting-modellen op verschillende plekken draaien. Omdat Blazor Server aan de server-side draait, is de database gewoon beschikbaar. Blazor WebAssembly heeft geen toegang tot die database, omdat deze aan client-side uitgevoerd wordt. Dit betekent dat data op een andere manier opgehaald moet worden, bijvoorbeeld door middel van gRPC of een ander API.

Deze twee methoden van data ophalen kan ondervangen worden door gebruik te maken van een abstracte service-laag en deze op twee verschillende manieren te implementeren. Voor de component model maakt het dan geen verschil hoe de data opgehaald wordt

Blazor WebAssembly wordt in mei gelanceerd en gaat daarna mee in de release van .NET 5.

De toekomst van Blazor

Toekomst van Blazor

Blazor Server en Blazor WebAssembly zijn beide onderdelen van het Blazor platform die daadwerkelijk in het .NET programma zijn opgenomen.

Drie andere onderdelen zijn momenteel nog experimenteel, maar hebben wel veel potentie.
Drie andere onderdelen zijn momenteel nog experimenteel, maar hebben wel veel potentie.

Progressive Web Apps (PWA’s) zijn websites die zich gedragen als een app. Blazor PWA gaat daarmee een stap verder dan Blazor WebAssembly door dergelijke apps mogelijk te maken. Daarnaast kan een PWA ook werken als er geen online verbinding is. PWA’s hoeven niet geïnstalleerd worden op een apparaat, maar kunnen wel als een app een icoon hebben op het scherm zoals een normale app.

Blazor Hybrid gaan nog weer een stap verder waarbij Hybrid apps echt native apps zijn die als zodanig worden uitgevoerd op het apparaat. Deze apps hebben toegang tot alle mogelijkheden van het apparaat (bijvoorbeeld locatie en andere sensoren). De User Interface wordt vervolgens opgebouwd door middel van HTML en CSS.

Deze hybride apps zijn cross-platform en werken niet alleen op Windows, maar ook op een Mac of met Linux.

Blazor Native is de laatste stap in het spectrum en hiervan zijn nog geen demo’s beschikbaar. Het idee is dat Blazor niet alleen web (HTML) kan renderen, maar dat de architectuur zo is opgezet dat dit ook naar Native controls kan.

Samenvatting

Blazor Server is live en maakt het mogelijk om over de hele stack C# te gebruiken. Met Blazor WebAssembly kunnen web applicaties geheel op de client werken.

Samenvattend kan geconcludeerd worden dat Blazor een hele mooie toevoeging is aan het .NET framework die veel potentie heeft voor de toekomst.

Beginnen met Blazor?

Blazor werkt met Visual Studio 2019 16.4, Visual Studio for Mac 8.4 en Visual Studio Code met C# extensie.

Kan ik of een van mijn collega’s jou ondersteunen bij het werken met Blazor? Neem vrijblijvend contact op om de mogelijkheden te bespreken.

Bron afbeeldingen: dotnetconf.net

{description}

Heb je een Microsoft Expert nodig?

Neem contact met ons op
{description}

Wil je weten waar wij goed in zijn?

Ontdek onze expertises