Backendontwikkeling van beheersoftware in .NET met EF Code First, Repository Pattern en Autofac

Nora
Kamoen
  1. Deze bachelorproef behandelt de ontwikkeling van een backend-applicatie voor RealDolmen Education voor het beheer van cursussen. Een belangrijk aspect hiervan is de modulaire opbouw. Ook is het noodzakelijk om de gehele ontwikkeling voldoende af te stemmen op de business kant zodat het resultaat inzake de datastructuur en functionaliteit voor hen het meest optimaal is. De volledige ontwikkeling gebeurt in .NET gebruik makend van EF Code First, Repository Pattern en Dependency Injection.

    Voor de ontwikkeling wordt vertrokken vanuit de principes van Domain Driven Design en wordt gebruik gemaakt van Entiteiten, Aggregate Roots, Repositories en Services. Binnen de entiteiten wordt een opdeling gemaakt in Aggregate Roots en losse entiteiten. De Aggregate Roots zijn ‘Course’, ‘Company’ en ‘Session’. Binnen elke entiteit zijn ook velden aanwezig die voorzien in logging en soft delete. De resulterende entiteiten worden dan omgezet naar een database gebruik makend van Entity Framework Code First. Op deze manier is het heel eenvoudig aanpassingen te maken in de datastructuur.

    De toegang tot de database wordt voorzien door Repositories. Hierbij wordt vertrokken van een generieke Repository waarvan alle andere kunnen overerven. Wanneer een andere implementatie nodig is kan deze uitgewerkt worden in de specifieke Repository. Binnen de repositories zijn methodes aanwezig voor alle CRUD-acties.

    Doorheen de volledige applicatie wordt gebruik gemaakt van Dependency Injection aan de hand van Autofac. Alle dependencies worden geregistreerd aan de hand van hun interfaces in een container. Autofac levert gebruik makend van deze container de juiste dependencies aan de juiste klassen.

    Voor de WebAPI wordt gebruik gemaakt van Owin middleware. Hierdoor kan de API draaien op eender welke server. Alle configuraties binnen de API dienen dan toegevoegd te worden aan de Owin middleware zodat de server deze zo kan consulteren.

    Binnen de controllers zijn GET, POST, DELETE en PATCH-methodes aanwezig. Deze methodes geven enkel DTO’s terug naar de client. Zo heeft de front-end enkel wat nodig is.

    De code wordt tevens uitvoerig getest gebruik makend van het XUnit framework voor .NET en Owintesting. Binnen XUnit worden testklassen geïnitialiseerd aan de hand van een constructor en afgebroken via de IDisposable interface. Er kan ook een onderscheid gemaakt worden tussen Facts en Theories. Theories kunnen variabele data meegeleverd krijgen binnen de test.

    Voor het deployment wordt gebruik gemaakt van Visual Studio Team Services en een Dacpac voor het online brengen van de database.

Download scriptie (7.21 MB)
Universiteit of Hogeschool
Odisee
Thesis jaar
2016
Promotor(en)
Joris Maervoet