Skip to content

1. Inleiding

De PDF van dit document is beschikbaar |HIER|.

De voorbeelden in dit document zijn beschikbaar |HIER|.

We willen een .NET-applicatie schrijven waarmee een gebruiker simulaties kan uitvoeren voor de loonberekening van de kinderopvangmedewerkers van de vereniging „Maison de la petite enfance“ in een gemeente. We zullen zowel aandacht besteden aan de organisatie van de code DotNet van de applicatie als aan de code zelf.

De uiteindelijke applicatie, die we [SimuPaie] zullen noemen, zal de volgende drielaagse structuur hebben:

  • de laag [1-dao] (DAO = Data Access Object) zorgt voor de toegang tot de gegevens. Deze worden in een database opgeslagen.
  • De laag [2-métier] zorgt voor het bedrijfsspecifieke aspect van de applicatie, namelijk de loonberekening.
  • De laag [3-ui] (ui = User Interface) zorgt voor de presentatie van de gegevens aan de gebruiker en de uitvoering van diens verzoeken. We noemen [Application] het geheel van modules dat deze functie vervult. Dit is het contactpunt voor de gebruiker.
  • De drie lagen worden onafhankelijk van elkaar gemaakt door het gebruik van .NET-interfaces
  • De integratie van de verschillende lagen zal worden gerealiseerd door Spring IoC

De verwerking van een verzoek van een klant verloopt volgens de volgende stappen:

  1. de klant dient een verzoek in bij de applicatie.
  1. De applicatie verwerkt dit verzoek. Hiervoor kan de applicatie de hulp nodig hebben van de laag [métier], die op haar beurt weer de laag [dao] nodig kan hebben als er gegevens met de database moeten worden uitgewisseld. De applicatie ontvangt een antwoord van de laag [métier].
  2. Op basis daarvan stuurt de applicatie de juiste weergave (= het antwoord) naar de klant.

De interface die aan de gebruiker wordt getoond, kan verschillende vormen aannemen:

  1. een console-applicatie: in dit geval bestaat de weergave uit een reeks tekstregels.
  2. een grafische Windows-toepassing: in dit geval is de weergave een Windows-venster
  3. een webapplicatie: in dit geval is de weergave een pagina HTML
  4. ...

We zullen verschillende versies van deze applicatie schrijven:

  1. een versie ASPNET met één enkel formulier en gebouwd met een eenlaagse architectuur.
  2. een versie die identiek is aan de vorige, maar met Ajax-uitbreidingen
  3. een versie ASP.NET die is gebaseerd op een drielaagse architectuur, waarbij de gegevenslaag is geïmplementeerd met het framework NHibernate. Deze versie zal nog steeds het enige formulier uit versie 1 bevatten.
  4. een versie 4 ASP.NET met meerdere weergaven en één pagina, met de drielaagse architectuur van versie 3.
  5. het servergedeelte van een client/server-applicatie, waarbij de server wordt geïmplementeerd door een webservice die is gebaseerd op de gelaagde architectuur van versie 3.
  6. het clientgedeelte van de voorgaande client/server-toepassing, geïmplementeerd door een laag ASP.NET.
  7. een versie 7 ASP.NET met meerdere weergaven en meerdere pagina's, met de drielaagse architectuur van versie 3.
  8. een versie 8 ASP.NET met meerdere weergaven en meerdere pagina's aan de clientzijde van de webservice van versie 5.
  9. een versie 9 ASP.NET met meerdere weergaven en meerdere pagina's, met de drielaagse architectuur van versie 3, waarbij de gegevenslaag is geïmplementeerd door Spring-klassen die het gebruik van het NHibernate-framework vergemakkelijken.
  10. een versie 10, geïmplementeerd in FLEX en die gebruikmaakt van de webservice van versie 5.

Vereisten


Binnen een [débutant-intermédiaire-avancé]-structuur bevindt dit document zich in het gedeelte [intermédiaire]. Om dit document te kunnen begrijpen, zijn diverse vereisten nodig die te vinden zijn in enkele documenten die ik heb geschreven:

  1. Programmeren ASP.NET [Webontwikkeling met ASP.NET 1.1 (2004)];
  2. C# 2008: [De programmeertaal C# versie 3.0 leren met het .NET 3.5-framework (2008)]: klassen, interfaces, overerving, polymorfisme
  3. [Spring IoC], beschikbaar via URL [Spring IoC voor .NET (2005)]. Geeft een inleiding tot de basisprincipes van Inversion of Control (IoC) of Dependency Injection (DI) van het Spring.Net [http://www.springframework.net]-framework.
  4. [Een drielaagse webapplicatie maken met Spring.NET en VB.NET (2005)], beschikbaar in URL [Création d'une application web à trois couches avec Spring.NET et VB.NET]. Deze cursus presenteert een vereenvoudigde applicatie voor het online kopen van producten. De drielaagse architectuur implementeert het model MVC.

Aan het begin van sommige alinea’s in dit document worden soms leestips gegeven. Deze verwijzen naar eerdere documenten.


Hulpmiddelen


De tools die in deze casestudy worden gebruikt, zijn gratis beschikbaar op het internet. Het gaat om de volgende:

  • Visual C# 2008, Visual Web Developer Express 2008, SQL Server Express 2005, beschikbaar op de URL [http://www.microsoft.com/express/downloads/].
  • Spring IoC voor het instantiëren van de diensten die nodig zijn voor de applicatie, beschikbaar op URL [http://www.springframework.net/] – zie ook [3]
  • NHibernate voor de gegevenslaag van SGBD [http://sourceforge.net/projects/nhibernate/]
  • NUnit: [http://www.nunit.org] voor unit-tests.