Dependency injection

Vanuit een programmeer standpunt gezien is indeling van code een van de belangrijkste aspecten van het programmeren. Een rommelige werkomgeving maakt het lastig om te vinden wat je nodig hebt. Het opruimen hiervan mag dan wel wat extra tijd kosten maar uiteindelijk maakt het je werk makkelijker en sneller. Zo ook in code, als alles netjes is ingedeeld verkleint dit de kans op fouten en zijn de fouten die nog wel bestaan veel sneller en gemakkelijker op te lossen.

Tegenwoordig wordt programmeercode vaak ingedeeld in classes. Hiermee wordt alle code die over eenzelfde onderdeel op bijvoorbeeld een site gaat bij elkaar gezet. Zo zijn er bijvoorbeeld een aantal functies van een knop die bij elkaar staan. De actie van de knop moet echter worden doorgestuurd naar een ander onderdeel of een andere pagina. Hiervoor moeten dus verbindingen gemaakt worden tussen de verschillenden onderdelen.

Een connectie leggen tussen twee onderdelen is vrij simpel. Overigens komen er in grotere projecten steeds meer en meer connecties bij. Hiermee kan de code alsnog onoverzichtelijk en slecht beheerbaar worden. Een onderdeel kan afhankelijk zijn van een 2e onderdeel welke op zijn beurt weer een 3e classe nodig heeft etc.

Hiervoor is de dependency injection structuur bedacht. Hierbij worden alle beschikbare classes geregistreerd in de code als services. Wanneer een van deze services benodigd is hoeft deze alleen maar opgevraagd te worden. Het programma regelt achter de schermen dat de benodigde functionaliteit op de juiste plaats komt.

Praktijk

Wanneer het programma start wordt een lijst met alle beschikbare code componenten ingeladen. Dit gebeurt in de configure service functie. Welke standaard in de Startup class beschikbaar is.


public void ConfigureServices(IServiceCollection services)
{
    services.AddSingleton<Service, Service>();
    services.AddTransient<Service, Service>();
    services.AddScoped<Service, Service>();
}

Deze services bevatten de code die vanaf een andere plaatsen toegankelijk moeten zijn. Het opvragen van deze services gebeurt vervolgens via de constructor. Wanneer een nieuw stuk code wordt geschreven wordt aangegeven welke services er benodigd zijn. Het programma herkent dit en geeft bij het aanroepen van de code de correcte services mee waar gebruik van kan worden gemaakt.


public OperationService(Service service)
{
    ...
}

Dit maakt het beheren van code gemakkelijker en ook overzichtelijker.


Andere blogartikelen

  • Het gebruik van een Photoslider

    Geschreven door: op maandag 7 oktober 2019

    Ze zijn er in alle soorten en maten en staan meestal bovenaan een websitepagina. Dan heb ik het natuurlijk over photosliders. Zo bent u vast bekend met de traditionele foto die langzaam vervaagd en wa ...

    Bekijk het artikel »
  • De Controversie van AMP (Accelerated Mobile Pages)

    Geschreven door: op maandag 30 september 2019

    Er heerst al controversie rondom AMP (Accelerated Mobile Pages) sinds Google dit onderwerp heeft ingevoerd! In deze blog duiken we verder in deze controversie en ontdekken we of deze controversie tere ...

    Bekijk het artikel »
  • CSS attribuut font-display

    Geschreven door: op maandag 30 september 2019

    De snelheid van je website is belangrijk. Niet alleen omdat Google je website hierdoor hoger rankt maar ook omdat het gebruiksvriendelijker is voor de bezoekers. Als een website traag laadt, ben je ee ...

    Bekijk het artikel »
Bel 072 5345 888
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd-gazellen-2018.jpg
Google analytics
partners-logo.jpg
Op de hoogte blijven?

Meld u aan voor de gratis nieuwsbrief om op de hoogte te blijven van onze activiteiten