Gebruik jij ook nog typemachines in je bedrijf? 

Cedric Liesnard, onze Business Productivity Consultant, neemt je mee in een interessant stuk over de ‘impact’ van technologie versus technologie als een sociaal proces tussen verschillende mensen.

Technology marches in seven-league boots from one ruthless, revolutionary conquest to another, tearing down old factories and industries, flinging up new processes with terrifying rapidity.” – Charles A. Beard, 1927

Het kan vaak lijken alsof ontwikkelingen in de techniek als een stoomwals over ons heenkomen. Alsof er geen menselijke bestuurder meer op de stoel zit die de richting of snelheid van de wals kan beïnvloeden laat staan beheersen.

Voor veel mensen kan het ook lijken alsof dat gevoel iets nieuws is. Iets van de laatste paar decennia. Of in ieder geval iets van de tijd sinds zij zelf volwassen geworden zijn. Dit gevoel gaat echter veel verder terug dan je misschien zou denken. Binnen de sociologie van wetenschap en techniek staat dit idee – dat de sociale structuur van onze maatschappij voortvloeit uit een onbeheersbare technologische vooruitgang – bekend als technologisch determinisme.

‘De ‘impact’ van technologie

Dit technologisch determinisme is verleidelijk. Het is immers fijn om over technologie te denken alsof het een constante stroom van verbetering en vooruitgang betreft. Alsof de geschiedenis van technologische ontwikkeling een ordelijk en rationeel pad gevolgd heeft en de wereld om ons heen precies het doel was waar alle beslissingen sinds het begin der tijden naartoe gewerkt hebben.

Deze illusie wordt verder gevoed door onze obsessie met goede resultaten en successen. Maar als je je alleen richt op de zaken die achteraf succesvol blijken, kan je belangrijke en leerzame lessen makkelijk missen of negeren. Daarom ontstond in de sociologie eind vorige eeuw een theorie die recht tegen dit determinisme indruiste: sociaal constructivisme van technologie.

Sociaal constructivisme

Binnen dit raamwerk worden technologische ontwikkelingen gezien als product van een sociaal proces tussen verschillende mensen. Niet per se de (achteraf gezien) “beste” oplossing overleeft dus het innovatieproces, maar juist de oplossing die de meeste stakeholders over de streep trekt. Dit zou meteen vragen moeten oproepen: hoe kunnen we leren van fouten in plaats van ons te richten op successen? En waarom kan een “inferieur” product of proces als winnaar uit de bus komen?

Successen en mislukkingen

Om te beginnen dienen we successen en mislukkingen met hetzelfde gewicht te behandelen. Dit symmetrieprincipe voorkomt dat we successen uitleggen met de cyclische redenering “het is een succes geworden omdat het de beste oplossing was, en het was duidelijk de beste oplossing omdat het nu een succes is”. Als we dit symmetrieprincipe in gedachten houden blijkt vaak dat technologie die we nu als vanzelfsprekend of als intrinsiek de beste oplossing zien in werkelijkheid beïnvloed is door een enorm scala aan factoren waaronder cultuur, geschiedenis, identiteit, moraliteit, machtsverhoudingen, alsook willekeur en geluk.

Context is belangrijk

We vinden het vanzelfsprekend dat computers digitaal en in de basis gebaseerd op Booleaanse algebra zijn. Maar de eerste computers waren analoge machines, die op basis van elektrische, mechanische of hydraulische kwantiteiten een modeloplossing voor een probleem genereerden (zie bijvoorbeeld Deltar: Delta Getij Analogon Rekenmachine, gebruikt voor de Deltawerken).

Digitaal versus analoog?

Deze manier van werken bleek echter onhandig voor precieze berekeningen en niet geschikt voor gegeneraliseerde computers gebaseerd op het model van de Turingmachine. Als we hier niet verder over nadenken is de conclusie duidelijk: digitale computers zijn inherent beter dan analoge computers en dus overleefde de digitale computer en verdween de analoge.

Tegenwoordig is analoog echter aan een comeback bezig, dankzij de enorme groei van artificial intelligence waar gebruik gemaakt wordt van deep neural networks. Analoog was dus zeker geen slechte technologie, maar een waar door de relevante actoren binnen de computerwereld een tijd lang geen grote waarde aan werd toegekend. Als men deze “gefaalde” techniek dus had weggezet als “verdwenen, dus slecht en niet bruikbaar” zou er nu een potentiële oplossing voor een nieuw probleem ontbreken.

Reflectie is ook belangrijk

Wat is dan een voorbeeld van een “inferieur” product dat dankzij sociale processen een winnaar is? Neem het toetsenbord waarmee ik dit stuk geschreven heb. Dikke kans dat je toetsenbord, net als het mijne, een QWERTY-layout heeft (misschien AZERTY als je dit vanuit België leest). Is QWERTY dan de “beste” layout om Nederlands mee te schrijven? Je gokt het al: natuurlijk niet. Maar men was gewend aan QWERTY op de typemachines en dus werd deze overgeheveld naar toetsenborden voor computers.

Ga eens praten met iemand die de Dvorak-layout gebruikt en je bent al snel genezen van het idee dat QWERTY overleeft omdat iedereen het de “beste” layout vindt. Soms overleven bepaalde technologieën wel omdat ze beter geschikt zijn voor hun doel, maar dit moeten we niet beschouwen als een gesloten hoofdstuk of als een afgeronde stap in de technologieboom zoals die vaak in strategy games te vinden is.

Hoe zit het binnen jouw bedrijf?

Laat je successen dus eens voor wat ze zijn en ga als bedrijf na: wat kunnen we leren van onze “fouten” en “mislukkingen”? Wie weet heb je gewoon nog een oplossing liggen voor een probleem dat je in het verleden niet voorzien had. En vraag je eens af waarom je bepaalde processen hanteert zoals ze zijn. Is dat echt omdat het zo’n goede logische processen zijn? Of ben je uit gemakzucht met een eeuwenoude typemachine aan het werken?

“Help! Welk Teams-kanaal moet ik nu waarvoor gebruiken?”

Binnen Microsoft Teams kun je verschillende kanalen gebruiken. In deze blog legt Sander Romeijn, onze Office 365-consultant, je de verschillen uit tussen de kanalen en weet je welke je wanneer kunt inzetten. Door gebruik te maken van het juiste kanaal zorg je ervoor dat data gedeeld is met de juiste personen en voorkom je onnodig werk in het verlenen van toegang.

Wat zijn kanalen binnen Teams?

Binnen Teams vindt het samenwerken en de communicatie plaats in kanalen. Een kanaal is de plek waar een team berichten en bestanden kan delen. Verder is het de plek waar men andere apps kan ontsluiten. Afhankelijk van de doelgroep met wie je samenwerkt kun je kiezen om gebruik te maken van een bepaald type kanaal. 

Standaard, privé en gedeeld

Op dit moment zijn er drie verschillende type kanalen: standaard, privé en gedeeld.  In onderstaand team ‘Project X’ zien we het gebruik van de verschillende kanalen.  

General en Announcements zijn standaardkanalen, Communicatie is een gedeeld kanaal en gedeeld met het team van communicatie en Financials is een privékanaal en alleen gedeeld met bepaalde personen binnen het team.

Wat is een standaardkanaal? 

Een standaardkanaal is altijd toegankelijk voor alle teamleden. Toegang tot dit kanaal regel je dus op teamniveau. Iedereen kent het wel, het Algemeen of General kanaal dat altijd aanwezig is in een team. 

Normaal kunnen alle leden van een team standaard kanalen aanmaken. De beheerders van de organisatie kunnen dit echter aanpassen en beperken tot bepaalde rollen. 

Standaardkanalen kun je niet omzetten naar een ander type kanaal, je kunt er geen privé of gedeeld kanaal van maken. 

Wat is een privékanaal? 

Een privékanaal is niet gedeeld met alle leden van het team. Voor dit kanaal word je uitgenodigd om deel te nemen.  

Net als bij standaardkanaal heb je hier weer de mogelijkheid om berichten te posten en samen te werken in documenten. Het gebruiken van apps is echter beperkt. Je kunt bijvoorbeeld geen gebruik maken van de wiki, apps of de kanaalvergaderingen. 

Net als een standaardkanaal kun je ook een privékanaal niet omzetten naar standaard- of gedeeld kanaal. Verder is het niet mogelijk om een privékanaal te verplaatsen naar een ander team. 

Wat is een gedeeld kanaal? 

Een gedeeld kanaal is bedoeld om samen te werken met een groep mensen die binnen of buiten de organisatie werkzaam zijn. Het grote verschil met een standaardkanaal is dat je het gedeeld kanaal met een groep kunt delen. In het gedeelde kanaal kun je ook berichten delen, samenwerken in bestanden en werken met apps.  

De eigenaren van een team kunnen een gedeeld kanaal aanmaken en de eigenaren van het gedeelde kanaal kunnen leden toevoegen of het kanaal delen met een team/groep. 

Net als een standaard- en privékanaal kun je ook een gedeeld kanaal niet omzetten naar standaard of privékanaal.

Voorbeeld: wanneer gebruik je nu een gedeeld kanaal? 

Voor alle projecten binnen bedrijf X bestaat er een Teams-omgeving. De afdeling communicatie is bij al deze projecten betrokken. Om alle communicatiemedewerkers toe te voegen aan al deze projecten is niet handig. Daarom is er per project een gedeeld kanaal gemaakt en dit kanaal is gedeeld met het team van communicatie.  Zo regel je toegang voor de communicatiemedewerkers via het eigen communicatieteam in plaats van de toegang per project. 

Eigenschappen per kanaal 

In onderstaande tabel zie je de kenmerken per tabel zodat je snel de keuze kunt maken voor het juiste kanaal: 

Kenmerken Standaardkanaal Privékanaal Gedeeld kanaal 
Personen kunnen toegevoegd worden aan het kanaal zonder toegevoegd te worden aan het team NeeNeeJa
Lidmaatschap van het kanaal NeeJaJa
Kanaal kan direct met andere teams gedeeld worden NeeNeeJa
Kanaal kan met één klik gedeeld worden met alle leden van de standaard kanalen N.v.t.NeeJa
Gasten kunnen lid worden van het kanaal JaJaNee
Externe deelnemers kunnen lid worden van het kanaal (*door middel van B2B Direct connect)NeeNeeJa
Moderatie mogelijk JaNeeNee
Breakout-rooms mogelijk bij meetings JaNeeNee
Link naar het kanaal op te halen JaNeeNee
Elk kanaal heeft een eigen SharePoint Site NeeJaJa
Alle kanalen van deze soort hebben één gedeelde SharePoint Site JaNeeNee
Ingeplande meetings JaNeeJa
Het gebruik van Planner JaNeeNee
Bots, connectoren en berichtextensies JaNeeNee
TagsJaNeeNee
AnalyticsJaJaNee

Wil je meer weten of de verschillende Teams-kanalen of de technische inrichting? Neem dan contact op met [email protected]

Eenvoudig geautomatiseerd testen van Logic Apps, kan dat?!

Tijdens de 3-daagse conferentie Integrate 2022 sprak Michael Stephenson over “Automated Testing of Logic Apps”. Geautomatiseerd testen van Logic Apps was voorheen nogal een karwei, maar met de toevoeging van de Logic Apps Standard moet het nu een makkie zijn. Sjoerd Alaerds, onze Integratie Consultant, neem de proef op de som. Eerst lees je meer over de basis van Logic Apps en Automated testing om dit vervolgens zelf toe te passen in de praktijk.

Azure Logic Apps

Azure Logic Apps is een cloudplatform voor het maken en uitvoeren van geautomatiseerde werkstromen die toepasbaar zijn om te integreren. Azure Logic Apps is een onderdeel van de Azure Integration Services, waarbij een van de vele voordelen is dat het een schaalbare integratie-oplossing is. Ook is de Azure Logic Apps multifunctioneel waardoor het verbinden van verouderde, moderne en geavanceerde systemen binnen cloud-, on-premises en hybride omgevingen. 

Automated testing

Testen is een belangrijk onderdeel binnen Software Development. En door dit te automatiseren kun je consistentie waarborgen van de software. Deze geautomatiseerde test stappen kun je toepassen in het uitrolproces zodat na wijzigingen de tests worden uitgevoerd, waardoor je zeker weet dat er geen onverwachte wendingen plaats kunnen vinden.

In de praktijk: zelf een Logic App testen

Zelf heb ik gebruik gemaakt van deze link als het gaat om een tutorial. Hierin legt Michael Stephenson uit welk Test Framework ontwikkeld is om de Logic App geautomatiseerd te testen. En hoe dat deze toegepast kan worden. 

In een opsomming van stappen leg ik je kort uit wat er nodig is om een Logic App te testen.

1. Het aanmaken van een Logic App (Standard) binnen de Azure Portal. Heel belangrijk om te kiezen voor Standard, hiervoor is dit Test Framework gebouwd. 

  1. Heel belangrijk om te kiezen voor Standard, hiervoor is dit Test Framework gebouwd. 
geautomatiseerd testen van Logic Apps

2. Aanmaken van een App Registratie waarmee een Secret gekoppeld kan worden aan de Logic App. 

3. MSTest Test Project in Visual Studio, waarin de NuGet package “IPB.LogicApp.Standard.Testing” toegevoegd wordt, zodat het Test Framework kan worden gebruikt.

4. Twee methodes schrijven om de setup van de connectie voor te bereiden. 

5. Eén  configuratie file schrijven (“appsettings.json”) met de juiste instellingen om connectie te maken met de Logic App. 

6. Testmethode schrijven, waarin de standaard LogicApp connecties worden getest. 

7. Optioneel: je eigen testcase maken om bijvoorbeeld je response te testen. 

Goed opdrachtgeverschap is een vak

Wat is ‘Opdrachtgeverschap’? En specifieker nog: wat is ‘Goed opdrachtgeverschap’? Onze senior projectmanager Edwin Fokker gaat je hierin meenemen. Niet omdat hij een uitgebreid wetenschappelijk onderzoek heeft uitgevoerd of bestudeerd, maar vanuit zijn eigen 25 jaar ervaring als projectmanager. Goed opdrachtgeverschap is een vak. Je doet dat er niet zo maar even bij!

“Dit artikel gaat met name over jou als opdrachtgever, diegene die eindverantwoordelijk is voor business ICT-projecten.   

Goed opdrachtgeverschap is kort samengevat:

  • je houding
  • je gedrag
  • en actie in jouw rol als opdrachtgever.

Jij bent eindverantwoordelijk voor het initiëren, sturen, laten uitvoeren en implementeren van veranderingen die projectmatig worden uitgevoerd. Jij krijgt, of beter, neemt eindverantwoordelijkheid voor deze verandering.

Dit is nogal wat. Je wilt ‘iets’ veranderen en/of verbeteren in je dienstverlening naar je klanten, afnemers en/of de interne organisatie. 

Jij als goede opdrachtgever:  

  1. Bent de eigenaar van het project
    Jij voelt dat zo en gedraagt je er ook naar. Jij wilt de resultaten van het project hebben en implementeren in jouw organisatie. Goed opdrachtgeverschap staat of valt met eigenaarschap. 
  1. Speelt een actieve en beslissende rol in de formulering van de projectkenmerken
    Bestaande uit de doelstelling, business case, scope en niet te vergeten de out of scope, de requirements, de op te leveren producten, de project- en exploitatiekosten, de planning en de governance. Dit zijn de kaders en richtlijnen van jouw project, waarop je actieve sturing geeft bij de uitvoering. 
  1. Bent volledig en juist geïnformeerd tijdens jouw project
    Over de status van de op te leveren producten, de financiën, de issues en risico’s en besluit over de te nemen maatregelen om de kans op succes te vergroten. 
  1. Hebt een luisterend oor
    Voor de adviezen van de (vertegenwoordiging van de) gebruikers van je organisatie en betrokken leveranciers die allen aangestoken door jouw enthousiasme een actieve rol vervullen in jouw project. 
  1. Hebt een open en eerlijke relatie met de projectmanager van jouw project
    De projectmanager faciliteert jouw feestje en ondersteunt jou, net als je Stuurgroep, in de besluitvorming tijdens jouw project. 
  1. Stapt op de zeepkist bij het vieren van succesjes
    Met de direct betrokkenen tijdens je project en je vraagt om extra aandacht en inzet voor je project als het ‘even’ tegenzit.  
  1. Stopt het project
    Als de business case niet meer valide is of te krijgen is en als je geen goed gevoel meer hebt over de slagingskans en terugverdientijd van jouw project. 

Jij als opdrachtgever wilt ‘iets’ hebben. Jij wilt profijt hebben van de resultaten en op te leveren producten van het project. De business case, die up-to-date wordt gehouden tijdens het project en de vooraf gedefinieerde exploitatiefase erna, ondersteunt je daarbij. De tijd is echt voorbij dat de business case van het project tijdens initiatie- of opstartfase eenmalig wordt vastgelegd en doorgerekend.  

Als jij je (deels) herkent in dit betoog, maar toch nog vragen, opmerkingen en/of je bedenkingen hebt, dan hoor ik dat graag. Je bent van harte welkom om samen met mij in gesprek te gaan, zodat we van elkaars kennis en ervaringen kunnen leren.”

  

Verdwijnt de ICT-afdeling met de self-service PowerBI tool?

Dat is de vraag die BI Consultant en Data analist Roger Persoon zich stelt. Het antwoord lees je hieronder:

“Microsoft Power BI is een interactieve tool voor het visualiseren van data. Het doel is om gegevens om te zetten naar informatie en dit beschikbaar te maken voor de eindgebruiker.

Risico’s van self-service tools

Power BI is ontwikkeld om een self-service BI-tool te zijn. Self-service BI is heel populair op dit moment. Daarmee verzamelen medewerkers data die ze vervolgens rapporteren in bijvoorbeeld dashboards. Niet meer afhankelijk zijn van de ICT-afdeling lijkt ideaal, maar brengt ook een aantal risico’s met zich mee.

Hieronder een van de risico’s die ik niet vaak genoemd zie als ik de moeilijkheden opzoek voor invoering van PowerBI. Als je dit googelt gaat het voornamelijk over de moeilijkheden van PowerBI zelf: de tool dus en welke kennis je hiervoor nodig hebt. Niet wat voor effect het heeft op de werkvloer.

Want even serieus: is het echt een optie om aan medewerkers die tot dan toe alleen wat Excel-sheets kant-en-klaar krijgen voorgeschoteld met hierop data die hen moet ondersteunen in hun werkzaamheden na een korte introductie een aantal datasets te geven en te zeggen: ga hier maar mee aan de slag. Succes ermee! 

Allereerst wordt hiermee vergeten dat dit veelal niet tot hun kernactiviteit behoort maar een middel is om te controleren dan wel te rapporteren over hun dagelijkse werkzaamheden. 

Van papier naar digitaal

Tijdens mijn werkzame leven heb ik veelal gewerkt voor softwarebedrijven die bij lokale overheden documentmanagementsystemen implementeerden. Dit allemaal in het kader van ondersteuning van de medewerkers. Hiervoor moesten de meeste medewerkers hun werkwijze, die ze soms al jaren hanteerden, veranderen. Documenten moesten niet meer in de kast worden opgeborgen met kleurcodes op alfabet worden opgeborgen maar geregistreerd en geclassificeerd. En niet te vergeten: digitaal. Ook uitgaande post wordt niet meer via de brievenbus bezorgd: alles gaat via de BerichtenBox van Mijn Overheid.

Dit zou dan het einde van de postkamer worden: iedereen doet dit zelf (self-service dus).

Stapsgewijze invoering

Veelal ging dit geschetste toekomstbeeld voor de medewerkers te vlug. De gevolgen waren dat ze hun eigen papieren archief creëerden en het systeem links lieten liggen. Beter ging het dan ook als je de invoering stapsgewijs uitvoerde.

Allereerst laat je de postkamer ‘digitaliseren’. Papier wordt vervangen door digitale opslag (wat in de praktijk betekende het scannen van inkomende post en het printen van uitgaand post). Maar intern worden de documenten alleen nog beschikbaar gesteld via het documentmanagementsysteem.

Daarna ga je stapsgewijs verder: e-mails registreren door medewerkers, communicatie naar de burgers toe via de berichtenbox van Mijn Overheid totdat je uiteindelijk toch het geschetste en gewenste toekomstbeeld hebt bereikt. Nog makkelijker gaat dit proces als je de medewerkers kunt prikkelen zodat de veranderingen zelf vragen: “Waarom kan ik mijn e-mail niet zelf registreren?” of “Waarom moet ik de vergunning via de postkamer versturen?”.  

‘Klant en kok ineen’

Als ik mijn ervaring hierin projecteer naar PowerBI als self-service BI tool zie ik wel enige overeenkomsten. Het concept van self-service is namelijk eenvoudig: de klant bedient zichzelf. Voorheen gebeurde dat door het personeel. Denk bijvoorbeeld aan tankstations, warenhuizen of een zelfbedieningsrestaurant. De klant redt zichzelf prima en het personeel is alleen nog aanwezig voor ondersteunende taken. Dit zou echter betekenen in het geval van PowerBI t.o.v. het zelfbedieningsrestaurant: je bent ook nog de kok.  

Implementatie van PowerBI als self-service tool

Mijns inziens kan dit ook beter stapsgewijs. Begin allereerst met de rapporten en dashboards via PowerBI te delen. En ja, dit zal nog steeds door de ICT-afdeling gebeuren (beter nog: hier heb je genoeg specialisten voor). De organisatie raakt vertrouwd met de presentatie van de gegevens via deze weg. Kunnen ze al een beetje spelen met filters en in- en uitzoomen op de data (drillen).

Op deze manier creëer je vanzelf een vraag bij de afdelingen en medewerkers die meer willen. Die inderdaad zelf de dashboards willen maken en via verschillende invalshoeken de data willen bekijken om direct een trendbreuk te kunnen constateren. Of alleen de data die voor de medewerker/afdeling zelf relevant is willen weergeven. Ook hier kun je nog als tussenstap kiezen dat er een aanvraag wordt gedaan om een dataset beschikbaar te stellen die die data bevat waarmee aan de slag kan worden gegaan binnen PowerBI om het te visualiseren: ook weer een rol voor de ICT-afdeling.

Onderhoud en controle blijft belangrijk

Om een wildgroei aan rapporten te voorkomen zal er verder ook nog enige controle moeten worden uitgevoerd op de rapporten/dashboards. Er is een kans dat meerdere medewerkers – gedeeltelijk – hetzelfde rapport maken en dan loop je het risico dat de gemaakte rapporten andere definities bevatten dan centraal is afgesproken. Ook hierin zou de ICT-afdeling een rol in kunnen spelen: onderhoud en controle blijft een belangrijke factor.

Self-service BI kan werken, maar…

Self-service BI klinkt aanlokkelijk, maar zal niet voor iedereen werken en zou stap voor stap moeten ingevoerd. Zie het niet als kans om de ICT-afdeling uit het proces te halen maar geef ze meer een ondersteunende en controlerende rol. Ook zullen er genoeg afdelingen en medewerkers zijn die niet aan self-service BI willen. Probeer ze dat dan ook niet op te dringen: als ze zelf niet de meerwaarde ervan inzien is invoering gedoemd te mislukken.”

Gebruik van C# in web development?

Onze software developer Nino van Laar vraagt zich af waarom de programmeertaal C# niet vaker wordt gebruikt bij het ontwikkelen van webapplicaties. Hij neemt je tijdens zijn zoektocht mee naar het antwoord: 

“Een analyse van alle openbare GitHub repositories toont aan dat C# al enkele jaren een stabiele lijn toont op het percentage van gebruik binnen de repositories, variërend tussen 3 en 4% (Zapponi, 2022). Ontwikkelaars gebruiken C# voor een breed scala aan projecten zoals Windowsapplicaties, games en web development.  

Weinig websites gebouwd in C# 

Aangezien C# meer dan 20 jaar bestaat, is er veel documentatie en expertise aanwezig die geraadpleegd kan worden voor snelle en adequate ontwikkeling. Desondanks is het percentage websites wat gebruik maakt van C# als ontwikkelcode slechts 8% (W3Techs, 2022). De meeste websites blijven geprogrammeerd in PHP waardoor deze bij uitstek de populairste code is om te gebruiken in webdevelopment.

Hierbij rijst dan ook de volgende vraag: ‘Waarom wordt C# nog niet grootschalig ingezet voor de ontwikkeling van webapplicaties?’ 

Ontwikkelen van webapplicaties

C# is een moderne, object georiënteerde programmeertaal ontwikkeld door Microsoft. Het stelt ontwikkelaars in staat om veilige en robuuste applicaties te ontwikkelen onder het .NET platform. De ontwikkeling van webapplicaties in C# gebeurt doorgaans in het ASP.NET framework, welke is gebouwd op het bekende .NET framework. ASP.NET voegt enkele belangrijke functionaliteiten toe aan .NET die nodig zijn voor het ontwikkelen van webapplicaties, zoals:

  • Een basis framework voor het verwerken van web requests in C# 
  • Een web-page templating syntax, beter bekend als Razor, waarmee dynamische webpagina’s kunnen worden gebouwd door het gebruik van C#
  • Libraries voor veelvoorkomende websites zoals een model, view, controller (MVC) 
  • Een authenticatiesysteem waarin libraries, een database en templatepagina’s zijn opgenomen voor het verwerken van logins. Hiernaast is het eenvoudig om multifactorauthenticatie en externe authenticatie in te stellen 
  • Editor extensions om eenvoudig syntax highlighting, code completion en andere specifieke functionaliteiten in de IDE naar keuze te krijgen

C# steeds populairder 

Langzaam maar zeker wint C# aan populariteit bij ontwikkelaars voor web development. Dit komt mede door het openstellen van de framework code op Github. Iedereen kan de code nu inzien, reviewen, aanpassen en/of aanvulling doorvoeren op de bestaande code.  

Hierdoor groeit er een community die steeds actiever wordt in de doorontwikkeling van ASP.net. Verbeteringen en bugfixes laten daardoor minder lang op zicht wachten en worden regelmatige vrijgegeven. 

Support op meerdere platforms

Een ander speerpunt om C# te gebruiken is de cross-platform support. Het framework is gebouwd om alleen op Windows te werken maar applicaties en hulpmiddelen ontwikkeld met behulp van .NET kunnen eenvoudig op andere platforms werken zoals macOS en Linux. Visual Studio, de IDE ontwikkeld door Microsoft, geeft gebruikers hierdoor de kans webapplicaties op elk operating system te ontwikkelen en in gebruik te nemen.  

Aangezien ASP.NET verder gebouwd is op .NET hebben ontwikkelaars ook direct voordelen bij onder andere: 

  • Automatisch geheugenmanagement 
  • Cross-platform architectuur 
  • Package management
  • Garbage collection 
  • Asynchroon programmeren 
  • Eenvoudige ontwikkeling van MVC-webapplicaties en RESTful API’s 

Razor syntax: makkelijk te leren

ASP.NET maakt gebruik van zijn eigen markup syntax voor het embedden van .NET code in webpagina’s. Hiervoor gebruiken zij de Razor syntax. Deze syntax, ontwikkeld in 2010, is een vereenvoudigde syntax die eenvoudig te leren is als beginner en meer productiviteit brengt bij een expert. Een Razor webpagina bestaat uit HTML en Razor code. Wanneer een server een request krijgt om een pagina te laden zal eerst de Razor code uitgevoerd worden om vervolgens de HTML aan te genereren en terug te sturen naar de gebruiker.  

Er is hierbij een grote overeenkomst te vinden met PHP, waarbij PHP-pagina’s bestaan uit PHP en HTML en op dezelfde manier op de server worden gegenereerd. Ontwikkelaars met C# ervaring zullen dan ook eerder uit te voeten kunnen met de Razor syntax dan de PHP-syntax.

PHP blijft koploper

PHP vertoont ontzettend veel overeenkomsten met ASP.NET in combinatie met Razor bestanden. Beide programmeertalen kunnen embedded worden in de HTML-code, zijn cross platform in te zetten en zijn op basis van performance aan elkaar gewaagd.  

Toch blijft PHP de koploper in de strijd om populairste programmeertaal voor webapplicaties. Dit komt met name door onderstaande punten: 

  • Vanwege de populariteit is er een enorme community ontstaan waarbij veel ontwikkelaars zich hebben opgewerkt tot specialist 
  • Er is een grote database vol referenties en educatief materiaal 
  • PHP ondersteunt vrijwel iedere database 
  • Er is een grote collectie aan open-source add-ons 
  • De hosting van een PHP-website is doorgaans goedkoop 
  • PHP is eenvoudig te leren

Voor zowel PHP als C# zijn er dus voor- en nadelen die het ontwikkelproces dan wel vereenvoudigen als bemoeilijken. Maar waarom heeft C#, en in het bijzonder ASP.NET, nog zo’n kleine marktwaarde in de websites?

Overstap naar ASP.NET

Het antwoord hierop lijkt vrij voor de hand liggend. Tot nog toe was ASP.NET een framework dat enkel gericht was op het ontwikkelen van webapplicaties voor een Windows machine. Sinds 2016 is ASP.NET Core uitgekomen waarmee deze restrictie van Windows verdween. Het lijkt er dan ook op dat het grote publiek nog niet de overstap heeft gemaakt naar C# vanuit de meer populaire webontwikkelmethodes zoals PHP. De verwachting is dat steeds meer bedrijven, zeker vanwege de release van ASP.NET Core, de overstap naar ASP.NET overwegen en zullen nemen.

PHP versus C#

Persoonlijk heb ik in zowel PHP als C# geprogrammeerd. Als beginnend programmeur is PHP een ontzettend eenvoudige taal om te leren. Simpele websites kunnen op deze manier in een handomdraai worden gemaakt. Het leren van C# vergt wat meer inspanning en duurt dan ook langer om daadwerkelijk te kunnen gebruiken.  

Vanwege de object georiënteerde structuur binnen .NET is het eenvoudiger om code te differentiëren dan in PHP. Een persoonlijke voorkeur gaat hiervoor dan ook uit naar C#. Waar PHP zich behoudt tot een programmeertaal voor webapplicaties kan het leren van C# de horizon verbreden en de stap naar andere ontwikkelmethodes binnen .NET vereenvoudigen.”

Etesian op weg naar landelijke dekking met 50 medewerkers

Sinds mei 2022 heeft Etesian, een IT-Consultancy bedrijf van oorsprong uit hartje Kerkrade, maar liefst 50 vakbekwame professionals uit het hele land aan boord die maatwerkoplossingen leveren voor diverse IT-vraagstukken. Met deze enorme groei in medewerkers is het bedrijf op weg naar een landelijke dekking binnen Nederland. 

Ondanks de schaarste op de arbeidsmarkt is Etesian, met de inzet van verschillende kanalen, in staat geweest te blijven groeien. Van een groot eigen netwerk tot samenwerkingsverbanden met onderwijsinstellingen en recruitment partners die helpen met het vinden van professionals met de juiste kennis en ervaring. 

Actief in Nederland en België

Momenteel is Etesian actief in Nederland en België en helpen zij klanten met het implementeren van complexe IT-oplossingen. Het ontwikkelen van applicaties, e-Commerce oplossingen, de integratie van ERP-data of financiële gegevens met andere systemen, het implementeren van Microsoft 365 of het managen van diverse  IT-projecten. Een kleine greep uit de diensten die deze 50 professionals leveren aan klanten in binnen- en buitenland.  

Familiegevoel

Etesian is gebleken, ook in tijd van schaarste, op de werknemersmarkt een aantrekkelijke werkgever te zijn door marktconforme arbeidsvoorwaarden, persoonlijk ontwikkelplannen en extra opleidingsbudget. De meerdere teambuildingsactiviteiten naast het werk en een informele cultuur zorgen voor het onmiskenbare familiegevoel.  

Toekomst

In 2015 hebben Lars Schmitz en Sven Engels samen Etesian opgericht met als doel uit te groeien tot een middelgrote IT-dienstverlener. In Kerkrade begonnen als een kleine lokale IT-speler en in zeven jaar tijd uitgegroeid tot een graag geziene IT-partner in het zuiden en midden van het land. De komende periode wil Etesian doorgroeien naar een middelgrote speler zodat zij heel Nederland kunnen voorzien van hun expertise. 

Verschillende datums gebruiken op één pagina in Power BI?  Het kan!

Onze Business Intelligence Consultant, Andrew Tan, kreeg bij zijn opdrachtgever het verzoek een bestaand QlikView-dashboard om te zetten naar Power BI. De informatie uit het dashboard helpt de control room bij zaakgericht werken om de bedrijfsvoering verder te verbeteren.

“Een zaak is in dit verband een samenhangende hoeveelheid werk, met een duidelijke aanleiding (registratie-instroom) en een duidelijk resultaat zodra de zaak is uitgestroomd (beëindiging).” 

Hoe ziet het Power BI-dashboard eruit? 

Het nieuwe dashboard in Power BI bestaat uit drie pagina’s waarop de zaakfeiten op verschillende detailniveaus worden getoond.  

  • De eerste pagina bevat een dashboard waarin het aantal geregistreerde zaken en aantal beëindigde zaken in diverse visualisaties worden getoond.  
  • De tweede en derde pagina vormen een verdieping van het overzicht op de eerste pagina. Deze pagina’s bevatten meer details voor analysedoeleinden.  

In het onderliggend datamodel van Power BI zijn meerdere relaties gedefinieerd tussen de feittabel, waarin zaken worden geteld, en de datumtabel. Dezelfde datumtabel wordt gebruikt om de zaakfeiten te filteren op registratiedatum en beëindigingsdatum. Dit is een goed voorbeeld van een rollenspeldimensie of role-playing dimension. 

“De rollenspeldimensie is een dimensie waarin op een andere manier op gerelateerde feiten kan worden gefilterd.” 

In dit geval kan de datum betrekking hebben op de registratie of beëindiging van een zaak. In Figuur 1 is dit als volgt terug te zien. 

Figuur 1

Grijze lijnen = actieve koppeling

De eerste relatie tussen de feit- en datumtabel is de grijze lijn tussen respectievelijk Registratiedatum en Datumveld. De grijze kleur van deze lijn duidt aan dat de koppeling tussen feit- en datumtabel actief is. Dat wil zeggen: de telling van het aantal zaken geschiedt op basis van de Registratiedatum en wordt gerapporteerd met de meetwaarde ‘Aantal zaken geregistreerd’. Deze meetwaarde is direct bruikbaar in het dashboard. 

Gele gestippelde lijnen = inactieve koppeling

De tweede relatie tussen de feit- en datumtabel is de gele gestippelde lijn tussen Beëindigingsdatum en Datumveld. De gestippelde lijn duidt erop dat de koppeling tussen feit- en datumtabel niet actief is. De datumtabel heeft immers al een actieve relatie met de feittabel via de Registratiedatum. Het is namelijk zo dat in Power BI slechts één relatie actief kan zijn tussen twee tabellen.

Problemen op de weg?

De beperking in het datamodel levert een praktisch probleem op. Dit zou betekenen dat het aantal beëindigde zaken niet tegelijkertijd gerapporteerd kan worden met het aantal geregistreerde zaken in het dashboard van de eerste pagina. Daarom is de meetwaarde ‘Aantal zaken beëindigd’ niet direct bruikbaar en geel gemarkeerd in Figuur 1.

DAX formule lost het op

Genoemd probleem is opgelost door voor beëindigde zaken een berekende meetwaarde (measure) aan te maken in Power BI, dus geen berekende kolom (calculated column). De DAX formule, die aan de nieuwe meetwaarde wordt toegevoegd, zorgt ervoor dat bij de telling van het aantal beëindigde zaken toch gebruik gemaakt kan worden van de beëindigingsdatum ondanks dat de koppeling met de datumtabel niet actief is.  

De gebruikte DAX formule bestaat uit twee delen.  

  1. Het eerste deel telt met behulp van CALCULATE() alle beëindigde zaken bij elkaar op.  
  1. Het tweede deel gebruikt USERELATIONSHIP() om de inactieve koppeling tussen feit- en datumtabel op basis van beëindigingsdatum te activeren voor de berekening in het eerste deel.  

 
In Figuur 1 is te zien dat de nieuwe meetwaarde ‘Aantal zaken beëindigd’ voorafgegaan wordt door een icoon met rekenmachine. Dit geeft aan dat het gaat om een berekende meetwaarde of measure.

Rollenspeldimensies als best practice

Voor de oplossing in het datamodel is de rollenspeldimensie ingezet als best practice. Het resultaat is tweeledig. Voor het dashboard op de eerste pagina kunnen Aantal beëindigde zaken en Aantal geregistreerde zaken tegelijkertijd gerapporteerd worden zonder dat ze elkaar bijten. Vanuit beheeroogpunt is een werkafspraak toegevoegd aan het data fundament zodat rollenspeldimensies altijd geïmplementeerd worden met een measure in Power BI. Dit heeft als voordeel dat de werkwijze bij Power BI is gestandaardiseerd en werkzaamheden overdraagbaar maakt.