Tijdelijk extra IT-experts nodig?

Neem contact met ons op

Onze expertises

Een betrouwbare partner

ShareValue is Microsoft Solution Partner en SNA-gecertificeerd. Het SNA-keurmerk wordt al jaren aan ShareValue toegekend. Dit keurmerk is ontwikkeld om de risico’s te beperken omtrent keten- en inlenersaansprakelijkheid. Tweemaal per jaar worden wij door een geaccrediteerde inspectie-instelling gecontroleerd, met toekenning van het certificaat als gevolg.

  • Logo MS Solution partner
  • stichtingNormeringArbeid.svg

ShareValue - De standaard voorbij

Meer over ons

Zo werkt ShareValue

  • Experts

    Experts

    Onze experts weten alles van Microsoft 365, .NET, Azure en Front-End.

  • Eigen mensen

    Eigen mensen

    Wij kennen onze mensen goed. Hierdoor zorgen we voor een goede match tussen medewerker en opdracht.

  • Hoog kennisniveau

    Hoog kennisniveau

    Wij investeren in de kennis van onze experts met opleidingen, certificeringen en conferenties.

  • Flexibel

    Flexibel

    Wat de vraag of aanpassing ook is, wij schakelen snel en efficient.

  • Ondernemend

    Ondernemend

    Achterover leunen en afwachten is niet onze stijl. Onze experts denken graag proactief mee met de opdrachtgever.

  • Communicatief

    Communicatief

    Persoonlijk contact is ons kenmerk. Contact met de opdrachtgever en met de medewerkers staat centraal.

Onze opdrachtgevers

Onze architecten, beheerders, consultants, developers en engineers werken verspreid door het hele land bij opdrachtgevers in alle denkbare branches. Op zowel kortdurende als langdurende opdrachten. Wij werken niet alleen voor grote organisaties of A-merken, ook voor het MKB kunnen wij waardevolle experts inzetten om de bedrijfsprocessen te optimaliseren.

Zo ontstond er in het projectteam een goede combinatie tussen kennis van de organisatie, de processen én de techniek

Esra kwam aan het begin van onze samenwerking direct met goede adviezen en die zijn nu volledig doorgevoerd. David nam later het stokje van Esra over en heeft trainingen gegeven aan onze key users en medewerkers, ons begeleidt bij het inrichten van governance, en hij was onze vraagbaak. Ook heeft hij voor ons de samenwerkingsverbanden visueel weergegeven met Power BI. Zo ontstond er in het projectteam een goede combinatie tussen kennis van de organisatie, de processen én de techniek. Zowel met Esra als met David hebben we fijn samengewerkt, dat ging heel goed. Ze voelden dan ook echt als onderdeel van het projectteam.

Annemieke Stomps Projectmanager NTI

De developers van ShareValue hebben een goede werkhouding en zijn echte specialisten op hun vakgebied

De developers van ShareValue hebben een goede werkhouding en zijn echte specialisten op hun vakgebied. Ze hebben niet alleen de juiste papieren, maar houden ook hun vaardigheden bij. De één heeft meer ervaring dan de ander, maar ze begrijpen allemaal onze vraagstukken en leveren snel.

Ernst-Jan Heuseveldt Directeur Rovict

Ik ben erg blij met het team dat we hebben neergezet om de provincie Utrecht te begeleiden in het migratietraject en meer gebruik te maken van de Microsoft-mogelijkheden

De samenwerking met Esra gaat goed, ze is heel kundig. Ze doet hier van alles, van het implementeren van Teams tot het begeleiden en trainen van medewerkers. Straks komt ook Gerard ons versterken vanuit ShareValue. Omdat we meer willen halen uit de Microsoft-suite gaat hij ons helpen om de stip op de horizon te bepalen en wat er dan nodig is om daar te komen. Ik ben erg blij met het team dat we hebben neergezet om de provincie Utrecht te begeleiden in het migratietraject en meer gebruik te maken van de Microsoft-mogelijkheden.

Anika van Dam Projectleider implementatie Digitaal Samenwerken Provincie Utrecht

Bij ShareValue haal je altijd de juiste mensen in huis

Bij Carante Groep zoeken we altijd samenwerkingspartners, geen leveranciers. In ShareValue hebben we zo’n partner gevonden. Op het gebied van SharePoint, Nintex en projectleiding zetten we de deskundigen van ShareValue graag in. Je kunt erop vertrouwen dat je de juiste mensen in huis haalt om de afgesproken werkzaamheden uit te voeren.

Jerry van Rekom Hoofd ICT Carante Groep

De juiste keuze maken uit de vloed aan mogelijkheden

Sharevalue helpt ons al jaren de juiste keuze te maken uit de vloed aan mogelijkheden onder de paraplu van Office 365 en hoe we dit optimaal in onze organisatie kunnen inzetten. Zo werken we al jaren samen aan ons Intranet en Business apps op SharePoint en hebben in korte tijd ook OneDrive en Teams succesvol in gebruik genomen op onze kantoren in Europa.

Yakult

ShareValue heeft ons een uitstekende O365-professional geleverd

ShareValue heeft ons een uitstekende O365-professional geleverd. Met zijn hulp hebben we onze SharePoint omgeving kunnen moderniseren.

GGD-NOG

ShareValue vindt altijd de juiste man die matcht met de behoefte

Dbf en ShareValue kennen elkaar al vele jaren. ShareValue is in al die jaren altijd in staat geweest de juiste man te vinden die matcht met de behoefte van dbf op dat moment. Als het niet uit de eigen organisatie lukte, dan werd er verder gezocht in het brede netwerk wat ze inmiddels hebben.

Jasper Kruter directeur dbf

Altijd bereid om te helpen en mee te denken

Zeer fijne partner om mee samen te werken. Open en transparant naar ons toe en altijd bereid om te helpen en mee te denken!

Een grote pensioenorganisatie

Wat speelt er bij ShareValue?

Joost Joost / 22-05-2023

3 minuten lezen

Ook deze maand heeft Microsoft weer een aantal mooie verbeteringen en nieuwe ontwikkelingen uitgebracht. Eén van deze verbeteringen wil ik met jullie gaan bespreken in mijn blog.

In mijn blog van de maand maart heb ik jullie een uiterlijke verandering laten zien in Power Automate op het gebied van expressies. Deze maand komt er een verbetering uit die het mogelijk maakt om invoergegevens op te maken op basis van voorbeelden; dus expressies genereren in plaats van ze zelf te schrijven in Power Automate!

Hoe ziet dit eruit?

Expressies in Power Automate is een krachtige manier om bewerkingen uit te voeren op gegevens. Nu kan het opmaken van expressies best ingewikkeld zijn, vooral als het gaat om complexe varianten. Het is nu mogelijk om op basis van voorbeelden een expressie op te bouwen. Waardoor je zonder de verschillende functies en bijbehorende syntaxis te kennen die nodig zijn om de gewenste expressies te maken, toch die complexe variant kunt opmaken. Dit is voor elke maker, ervaren of niet, een perfecte toevoeging.

Als je tekst, data of getallen wilt opmaken, kan dit vrij gemakkelijk door alleen voorbeelden te geven van de uitvoerindeling die je door de stroom wilt produceren. Power Automate genereert automatisch de expressieformule die je dan direct kan gebruiken in je flow.

Datum opmaken op basis van voorbeelden.

Hoe gebruik je deze functionaliteit? Stel je voor: je gebruikt een SharePoint-lijst met reserveringen op producten die je uitleent voor twee weken. Als de twee weken verlopen zijn, wil je een e-mail verzenden naar de persoon die het product heeft geleend met de vraag deze in te leveren. Standaard noteert de SharePoint-indeling data als volgt: 2023-05-14. Maar dit wil je in het e-mailmeldingsbericht weergeven als 14 mei.
Laten we eens kijken hoe we de notatie van de datum met opmaakgegevens kunnen wijzigen aan de hand van voorbeelden.

Wanneer je de Flow bewerkt in de Power Automate-ontwerper, selecteer je de actie waarin je de opgemaakte datum wilt invoegen en ga je vervolgens naar een tekstveld op de kaart.
Selecteer in het venster dat opent de optie Expressie > Gegevens opmaken op basis van voorbeelden.

In de lijst die geopend wordt, vind je alle items die in de stroom weergegeven kunnen worden. Selecteer het item dat je wilt omzetten en geef een voorbeeld van de oorspronkelijke gegevens voor het item dat je in de vorige stap hebt geselecteerd.

Power Automate geeft de expressie weer waarmee je de gewenste uitvoer te zien krijgt. Dit kan je testen met een andere waarde om te bevestigen dat de expressie doet wat je verwacht.

Conclusie

Met deze verbetering ben je in staat om makkelijk en snel je expressies vorm te geven, zonder dat je de verschillende functies en bijbehorende syntaxis kent die nodig zijn om de gewenste expressies te maken.
Deze functionaliteit is voor iedere maker een verbetering, eenvoudig in gebruik en krachtig in uitvoer. Probeer het eens uit en je zal zien dat het ook jouw Flow beter maakt.

Wil je meer weten over deze functionaliteit of over het Power Platform in het algemeen? Neem dan gerust contact op met ons zodat we de mogelijkheden kunnen bespreken.

Raymon Raymon / 17-05-2023

7 minuten lezen

Wil jij als developer beter worden in je vak? Zoek dan niet verder! In deze blog schetsen we vijf tips voor het gebruik van ChatGPT om een betere developer te worden, inclusief het samen zoeken naar oplossingen voor toepassingsproblemen, het opsporen van fouten in code, het uitleggen van codefunctionaliteit, het schrijven van betere tests en het verbeteren van de leesbaarheid van de code.

ChatGPT helpt door mee te zoeken naar de oorzaak van een probleem in je toepassing

Mijn team en ik ondervonden een probleem in onze applicatie, waarbij gegevens moesten worden opgenomen en modellen nog moesten worden bijgewerkt. Wij werken aan een Angular applicatie.

Ik ontdekte bijvoorbeeld de kracht van het ontdekken van oplossingen en problemen in een applicatie.

Situatie: De RxJS Subscripition bestond niet

Na lang zoeken via Google begonnen we vragen te stellen aan ChatGPT. We zijn begonnen met de volgende vraag:

“We gebruiken RxJS; we hebben een BehaviourSubject, maar in het begin worden de gegevens ontvangen door de  “subscribe()” methode, maar later niet. Wat zou het probleem kunnen zijn?”

ChatGPT begon de vraag te beantwoorden met mogelijke situaties. Ten slotte stelde ChatGPT voor om te controleren of de subscripition nog actief was. ChatGPT bood ons ook een oplossing om het te controleren.

En dat werkte. Uiteindelijk hebben we de oorzaak gevonden en konden we het probleem oplossen.

De vraag: 

Het antwoord: 

ChatGPT helpt bij het opsporen van problemen met falende tests

In de afgelopen maanden hebben we ChatGPT opgenomen in al ons werk.

Soms kun je falende tests hebben waar de oorzaak niet meteen duidelijk is. ChatGPT kan dan helpen de problemen te ontdekken en helpen bij het vinden van de oplossing.

Bijvoorbeeld bij de volgende situatie. Dit kwamen wij de laatste tijd tegen:

Situatie: Datumfunctie verkeerd berekende datum met Vanilla JavaScript

Onlangs hebben we een oude datumbibliotheek vervangen door een nieuwe. Maar we moesten een vertaallaag creëren, zodat onze afhankelijkheden nog steeds werken.

Nadat we dat hadden gedaan, controleerden we de end-to-end tests. En wat was het geval? Eén fout! Een methode die vroeger werkte, werkte nu niet meer. 


getCalculatedDate(days: number, months: number, years: number) {
    const today: Date = new Date();
    const calculatedDate = new Date(
      today.getFullYear() + years,
      today.getMonth() + months,
      today.getDate() + days
    );
    const days = String(calculatedDate.getDate()).padStart(2, '0');
    const months = String(calculatedDate.getMonth() + 1).padStart(2, '0');
    const years = String(calculatedDate.getFullYear());
    const formattedDate = days + '-' + months + '-' + years;
    return formattedDate;
  }

Het probleem was één uur tijdsverschil. Hoewel we de invoer van de methode niet hebben gewijzigd, heeft de uitvoer van de vergelijkingsfunctie dat wel gedaan.

Na meerdere keren proberen, begonnen we vragen te stellen aan ChatGPT:

  • Wat als ik 3 maanden en 1 dag toevoeg aan vandaag? Welke datum is dat?
  • Leg de berekening uit.
  • Zou het antwoord anders zijn als je eerst dagen optelt in de berekening?

Uiteindelijk hebben we de functie aan ChatGPT gegeven en gevraagd wat hier niet goed ging. ChatGPT ontdekte dat je eerst een dag aan de datum moet toevoegen in vanilla JavaScript. Maak vervolgens een nieuwe datum en voeg de maand en het jaar toe. 

Het grappige was dat het gebeurde op de 31e dag van de maand. En er lijken eigenzinnige dingen te zijn met datums (DATES) in JavaScript (zoals velen van ons weten).

Uiteindelijk hebben we het opgelost. Maar dit laat zien dat als je veel vragen stelt aan ChatGPT, het veel dingen uitlegt en het uiteindelijk kan helpen bij het oplossen van problemen. 

Situatie: ChatGPT legt een stukje code uit

Omdat ik in een grote codebase werk, die ontwikkeld en onderhouden wordt door veranderende teamleden, kan de code niet altijd zo duidelijk zijn als je wilt.

ChatGPT kan je hierin ook helpen. Het heeft me geholpen om de functionaliteit veel eenvoudiger te maken en beter te begrijpen, zodat ik het kon herschrijven.  

Geef ChatGPT een stukje van de code en vraag om het uit te leggen. Zo simpel is het.

Voorbeeld: Vraag om uitleg 

Antwoorden:

ChatGPT kan je helpen betere tests te schrijven

Voor veel developers is het schrijven van tests een uitdagende taak. Na meer dan tien jaar ervaring vraag ik me soms nog steeds af:

  • Welke testen heb ik nodig?
  • Hoeveel testcases moet ik maken?
  • Heb ik alle randgevallen afgedekt?

En nog veel meer. ChatGPT heeft me hiermee ook geholpen.

Soms gebruik ik het om te brainstormen en te vragen om extra testcases die ik heb gemist.

ChatGPT heeft mijn team en mij echt geholpen, waardoor ik betere code geschreven heb om te testen.

Situatie: ChatGPT kan jouw code herschrijven voor een betere leesbaarheid

Soms vind je codevoorbeelden online en vraag je je af hoe het werkt en of er een eenvoudigere manier is om ze te schrijven.

Plaats een code in ChatGPT en vraag het om deze te herschrijven. Zo simpel is het en het helpt echt!

Voorbeeld: Laten we zeggen dat we een complexe productstructuur in onze API hebben. 


{
  "products": [
    {
      "id": 1,
      "name": "Product A",
      "category": {
        "id": 10,
        "name": "Electronics",
        "properties": {
          "warranty": "1 year",
          "returnPolicy": "30 days"
        }
      },
      "brand": {
        "id": 100,
        "name": "Brand X",
        "properties": {
          "country": "USA",
          "established": "1995"
        }
      },
      "properties": {
        "color": "black",
        "weight": "1.2 kg"
      }
    },
    {
      "id": 2,
      "name": "Product B",
      "category": {
        "id": 11,
        "name": "Furniture",
        "properties": {
          "material": "wood",
          "assemblyRequired": "yes"
        }
      },
      "brand": {
        "id": 101,
        "name": "Brand Y",
        "properties": {
          "country": "Germany",
          "established": "2001"
        }
      },
      "properties": {
        "dimensions": "100x50x30 cm",
        "color": "brown"
      }
    }
  ]
}

We willen de producten sorteren op basis van de eigenschap retourbeleid. Een ander heeft deze functie lang geleden ontwikkeld. Het is niet makkelijk te lezen, dus we willen het leesbaarder maken en TypeScript toevoegen.


function s(p){
  return p.sort((a,b)=>a.category.properties.returnPolicy.localeCompare(b.category.properties.returnPolicy))
}

We kunnen ChatGPT vragen om het leesbaarder te maken en typen toe te voegen. Dit is het resultaat: 


interface Properties {
  returnPolicy?: string;
  [key: string]: any;
}

interface Category {
  id: number;
  name: string;
  properties: Properties;
}

interface Product {
  id: number;
  name: string;
  category: Category;
  [key: string]: any;
}

/**
 * Sort an array of products based on the "returnPolicy" property.
 * @param {Product[]} products - The array of products to be sorted.
 * @return {Product[]} - The sorted array of products.
 */
function sortProductsByReturnPolicy(products: Product[]): Product[] {
  return products.sort((productA, productB) => {
    return productA.category.properties.returnPolicy.localeCompare(
      productB.category.properties.returnPolicy
    );
  });
}

Zoals je kunt zien, schreef ChatGPT een product-, categorie- en generieke eigenschappeninterface en paste deze toe op de functie. Maar het voegde er ook enkele expliciete opmerkingen aan toe.

Dus refactoring wordt een stuk eenvoudiger met ChatGPT!

Conclusie

Kortom, ChatGPT kan developers op vele manieren helpen. Of je nu net begint of al jaren developer bent, ChatGPT kan je helpen verbeteren. Deze blog biedt vijf tips voor het gebruik van ChatGPT voor probleemoplossing en leesbaarheid van code. Door ChatGPT te gebruiken, kun je sneller en met minder fouten code schrijven.

Een van de beste dingen van ChatGPT is dat het fouten in code kan vinden. Zelfs ervaren developers maken fouten en het vinden ervan kan lastig zijn. ChatGPT maakt het makkelijk om fouten te vinden en op te lossen. ChatGPT kan je ook uitleggen wat een code doet en betere tests schrijven.

ChatGPT is ook goed in het makkelijker leesbaar maken van code. Grote codebases kunnen moeilijk te onderhouden zijn, vooral als de code beter geschreven moet worden. Om de leesbaarheid van code te verbeteren, kun je met ChatGPT een code toegankelijker maken voor andere developers om te begrijpen.

Een van de krachtigste eigenschappen van ChatGPT is dat het developers kan helpen beter samen te werken. Developers kunnen effectiever werken met ChatGPT om mee te denken over oplossingen, fouten te vinden en de codekwaliteit te verbeteren. In combinatie met menselijke ervaring kan ChatGPT developers helpen betere resultaten te leveren en innovatie te stimuleren.

Kortom, ChatGPT is een waardevolle tool voor developers van alle niveaus. Door de tips in deze blog te volgen en ChatGPT in je werk te gebruiken, kunt je betere code schrijven, tijd besparen en betere resultaten behalen. Of je nu een beginner of een expert bent, ChatGPT is de moeite waard om te verkennen om te zien hoe het jou en jouw team kan helpen. 

Joost Joost / 24-04-2023

2 minuten lezen

Deze maand komen er weer een aantal mooie updates uit op het Power Platform waaronder een aanpassing in het uiterlijk van modelgestuurde apps (model driven apps). Modelgestuurde apps hebben een moderner, vernieuwend uiterlijk gekregen. In deze update zit onder andere een bijgewerkte styling, waaronder lettertypen, kleuren, randen, schaduwen etc. Al deze aanpassingen zijn afgestemd op het nieuwste Fluent design.

Hoe ziet deze moderne, vernieuwende uiterlijk eruit?

Opdrachtbalk

De opdrachtbalk is in een aparte ‘zwevende’ sectie boven aan de pagina terug te vinden. 
Dit uiterlijk is afgestemd op de Microsoft 365-ervaring met afgeronde hoeken en hoogte.

Weergavepagina’s

De grootste verandering op weergavepagina's is de overschakeling van het alleen-lezen raster naar het Power Apps-rasterbesturingselement. Dit biedt de mogelijkheid voor oneindig scrollen door pagina’s. Het Power Apps-rasterbesturingselement ondersteunt ook online bewerken, waarmee gebruikers records kunnen bekijken, openen en bewerken vanuit weergaven en subrasters. 

Formulieren

Het onderdeel formulieren gebruikt ook de nieuwe opdrachtbalk. Maar hier zijn meer aanpassingen gedaan zoals vernieuwde kopteksten, tabbladen en secties. De snelle weergaven, kaartformulieren, kopteksten, sitemaps en de tijdlijn besturingselementen hebben een verandering in uiterlijk doorgemaakt.
Hieronder zie je een formulierpagina met een modern, vernieuwd uiterlijk.

Veldbesturingselementen

Ook de veldbesturingselementen zoals tekst invoer, actie-invoer, opzoeken zijn gebouwd en ontworpen met Fluent-componenten. Deze hebben nu een meer gestroomlijnd ontwerp. De pictogrammen zijn verplaatst naar de rechterkant van het veld labels. Sommige overbodige pictogrammen zijn verwijderd, als voorbeeld: het slotpictogram wordt niet weergegeven voor alleen-lezen velden.

Conclusie

Het Microsoft Fluent uiterlijk wordt de nieuwe moderne, snelle en efficiënte standaard voor veel Microsoft producten. Niet alleen de modelgestuurde apps maar ook andere Power Platform onderdelen worden langzaam getransformeerd in dit uiterlijk. Voor de modelgestuurde app is dit een begin van een modern, en een meer efficiënte manier van werken met je data in een gebruiksvriendelijke en herkenbaar uiterlijk.

Wil je meer weten over deze functionaliteit of over het Power Platform in het algemeen? Neem dan gerust contact op met ons zodat we de mogelijkheden kunnen bespreken.

Marco Marco / 11-04-2023

2 minuten lezen

C# 11 is uit en biedt ontwikkelaars een aantal nieuwe functies en verbeteringen die de programmeertaal nog krachtiger maken. Van raw string literals tot pattern matching op Span<char> en ReadOnlySpan<char>, tot generic attributes en required modifiers, deze nieuwe functies maken het schrijven van software sneller, efficiënter en gemakkelijker. In dit artikel werpen we een blik op enkele van de belangrijkste nieuwe functies in C# 11 en hoe ze je kunnen helpen bij het schrijven van code. Dus, als je klaar bent om te ontdekken hoe C# 11 jouw code naar een hoger niveau kan tillen, lees dan verder!

Raw string literals

Raw string literals maakt het voor ontwikkelaars mogelijk om string literals te schrijven die meerdere regels kunnen beslaan en regeleinden en witruimte bevatten. Hierdoor is het gemakkelijker om strings op meerdere regels te schrijven zonder regeleinden te hoeven ‘escapen’. 

Pattern match Span<char> of  ReadOnlySpan<char> op een constant string

De nieuwe pattern matching functie in C# 11 maakt het mogelijk om te matchen op Span<char> of ReadOnlySpan<char> op een constant string. Hierdoor is het gemakkelijker om te werken met character arrays, vooral wanneer je bewerkingen zoals string vergelijking of substring-extractie moet uitvoeren.


 

List patterns

C# 11 introduceert ook list patterns, die het toelaten om op basis van specifieke kenmerken van een lijst te matchen. Dit maakt het gemakkelijker om bepaalde acties uit te voeren afhankelijk van de inhoud van de lijst.

Generic Attributes

C# 11 introduceert generic attributes, waarmee attributen gedefinieerd kunnen worden die met elk type, inclusief generieke types, kunnen worden gebruikt. Hierdoor is het gemakkelijker om herbruikbare en flexibele attributen te schrijven en informatie over types te verstrekken die door andere delen van uw code kunnen worden gebruikt.

Required Modifier

C# 11 introduceert het concept van required modifiers, waarmee aangeven kan worden dat bepaalde properties van een type door alle afgeleide types verplicht moeten worden geïmplementeerd. Dit is nuttig wanneer je er zeker van wilt zijn dat bepaalde leden altijd aanwezig zijn in alle afgeleide types, ongeacht hun implementatie.

Conclusie

C# 11 brengt een aantal handige nieuwe functies en verbeteringen met zich mee. Of je nu werkt met raw string literals, pattern matching op Span<char> of ReadOnlySpan<char>, generic attributes, required modifiers of list pattern, C# 11 maakt het ontwikkelen van software sneller, efficiënter en gemakkelijker. Upgrade nu naar C# 11 en ontdek de voordelen voor jezelf!

Barry Barry / 28-03-2023

4 minuten lezen

Laten we beginnen met een korte uitleg van het concept Infrastructure-as-Code (IaC). Zoals de naam al doet vermoeden, is IaC een proces van het beheren van infrastructuur door het in de code te beschrijven. Dit betekent dat je bijvoorbeeld in plaats van de Azure website te gebruiken en op knoppen te klikken om een virtuele machine uit te rollen, de eigenschappen van de virtuele machine in code beschrijft en deze uitvoert met een IaC-tool. Klinkt als meer werk dan het gebruik van een simpele knop? Nou ja, in eerste instantie wel. Het levert in het begin wat meer werk op, maar de voordelen op de lange termijn zijn zeker zichtbaar met meerdere omgevingen.

De voordelen van Infrastructure-as-Code

Stel je voor dat je meerdere virtuele machines, drie opslagaccounts en een virtueel netwerk moet implementeren. Vervolgens moet je de netwerkkoppelingen op dat netwerk configureren en schijven formatteren. "Slechts één klik" in de gebruikersinterface wordt urenlang klikken en het invullen van alle formulieren en eigenschappen.

Stel je nu voor dat er tegen het einde iets mis is gegaan en dat je helemaal opnieuw moet beginnen. Met het IaC-model kun je code schrijven om alle infrastructuurcomponenten te beschrijven en vervolgens de implementatie overlaten aan Terraform, Bicep of ARM. Mocht er in dit geval aan het einde iets misgaan, kun je een paar regels code wijzigen om het probleem op te lossen en de code opnieuw uit te voeren.

Een ander voordeel is de mogelijkheid om een broncodeversiesysteem zoals Azure DevOps of Github te gebruiken om je code op te slaan. Hierdoor heb je gelijk versiebeheer en dat maakt het mogelijk om eenvoudig alle wijzigingen in de infrastructuur te zien en beschikbaar te maken voor alle teamleden.

Welke taal gebruik je?

Wanneer je gebruik gaat maken van IaC, moet je nog een aantal keuzes maken. Hierbij is de belangrijkste keuze: welke taal ga je gebruiken? In principe heb je hierbij keuze uit drie talen.

  • ARM template (Json)
  • Bicep
  • Terraform

De drie talen maken allemaal gebruik van de Azure Resource Manager. Deze zorgt ervoor dat de code omgezet wordt naar resource die moet worden aangemaakt. Voor elke taal heb ik een voorbeeld gemaakt voor het aanmaken van een resource group binnen Azure, zodat er een goed verschil is te zien tussen de verschillende talen.

ARM Template

ARM templates was de enige manier om op basis van IaC resources in Azure aan te maken. Dit is ook de standaard ‘taal’ die de Azure Resource Manager gebruikt.

Voor het aanmaken van een resource group is de volgende code nodig:
 


{
 "$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
 "contentVersion": "1.0.0.0",
 "parameters": {
   "rgName": {
     "type": "string"
   },
   "rgLocation": {
     "type": "string"
   }
 },
 "variables": {},
 "resources": [
   {
     "type": "Microsoft.Resources/resourceGroups",
     "apiVersion": "2021-04-01",
     "name": "[parameters('rgName')]",
     "location": "[parameters('rgLocation')]",
     "properties": {}
   }
 ],
 "outputs": {}
}

Bicep

Bicep is een taal die door Microsoft is ontwikkeld als vervanger van de ARM templates. Het voordeel van deze taal is dat het beter leesbaar is en dat je minder regels nodig hebt om hetzelfde te bereiken. Het nadeel van Bicep is, net zoals ARM templates, dat het alleen te gebruiken is op het Azure platform.
Zoals aangegeven heb je voor dezelfde handeling, het aanmaken van een resource group, minder code nodig.
 


targetScope = 'subscription'
resource rg 'Microsoft.Resources/resourceGroups@2021-01-01' = {
 name: 'rg-contoso'
 location: 'westeurope'
}

Terraform

Terraform is een taal die is ontwikkeld door het bedrijf Terracorp. Deze taal is te gebruiken voor alle cloud platforms, Google, AWS en Azure. Hierdoor is het een taal die veel gebruikt wordt door ontwikkelaars in de open-source community en bedrijven met een multi cloud omgeving.
Net zoals Bicep maakt Terraform gebruik van de Azure Resource Manager voor het aan maken van de resources. Doordat Terraform voor meerdere cloud omgevingen gebruikt kan worden, moet je hierbij aangeven dat je de Azure Resource Manager wil gebruiken. Voor het aanmaken van een resource group kan je de volgende code gebruiken:

resource "azurerm_resource_group" "example" {
 name     = "rg-contoso"
 location = "West Europe"
}

Door de opkomst van Bicep en Terraform wordt het eenvoudiger om resources op een eenduidige manier aan te maken. Doordat beide talen goed leesbaar zijn, heb je ook documentatie van de omgeving en in combinatie met Azure DevOps of Github een stukje geschiedenis voor wat betreft de wijzigingen.


resource "azurerm_resource_group" "example" {
 name     = "rg-contoso"
 location = "West Europe"
}

Welke taal kan je het beste gebruiken?

Hier is niet echt een eenduidig antwoord op te geven en heeft heel erg te maken met welke cloud provider je gebruikt en de samenstelling van een team.

Wanneer je alleen gebruik maakt van Microsoft Azure, kan je het beste werken met Bicep omdat deze taal ontwikkeld is voor Microsoft Azure.

Mocht je in de omgeving gebruik maken van verschillende Cloud-omgevingen, bijvoorbeeld AWS en Azure, dan is het advies om juist Terraform te gebruiken omdat je dan met dezelfde taal beide omgevingen kan beheren.

Op dit moment maak ik het liefst gebruik van Terraform, omdat je hiermee de verschillende cloud-omgevingen kunt beheren met één taal. Daarbij is het sinds een paar maanden zo dat alle nieuwe resources ook met Terraform gelijk zijn aan te maken of te configureren.

In mijn volgende blog ga ik verder in op het gebruik van Terraform.

Meer weten?

Mocht je meer willen weten over Infrastructure as Code of hulp kunnen gebruiken bij het inrichten ervan, neem dan contact met ons op. We helpen graag!

{description}

Heb je een Microsoft Expert nodig?

Neem contact met ons op
{description}

Zoek je een nieuwe baan?

Bekijk onze vacatures