Ik ben bezig om te onderzoeken hoe ik een n-tier omgeving moet opzetten. Ik wil zo'n omgeving gaan implementeren binnen VB6 met als database MS SQL Server 2000. Ik heb verschillende artikelen gelezen van diverse mensen. Zo heb ik ondermeer de volgende pagina's gelezen:
- N-Tier Application Development with Microsoft.NET
- What is n-Tier Architecture
- A reminder on Three/Multi Tier/Layer Architecture
- Designing Data Tier Components and Passing Data Through Tiers
- Setting up a COM component project in Visual Basic 6
Verder heb ik (uiteraard) de verschillende topics hier op GoT gelezen die over DAL en BLL gaan. Helaas kom ik nergens de informatie tegen die ik zoek. Ik hoop daarom via dit topic misschien toch wat duidelijk te krijgen.
- DAL en BLL, aparte DLLs?
Implementeer je de DAL en BLL ieder in een aparte DLL? Wat als die twee DLLs nou niet op dezelfde machine komen te staan, hoe maak ik dan binnen de BLL een referentie aan naar de DAL?
Wat ik me ook afvraag is of je per business entity een DLL aanmaakt of dat je een algemene DAL/BLL DLL hebt met daarin verschillende classes per business entity.
- Plaatsing connectionstring
Ik zou nu een connectiestring maken door de gebruiker op te laten geven welke database en SQL login er gebruikt moeten worden. Omdat de presentatielaag zelf geen interactie heeft met de database lijkt dat niet zo heel zinnig. In de meeste voorbeelden zie je dan ook dat de DAL en BLL zelf de connectiestring laden uit een bestand. Opzich geen probleem natuurlijk maar hoe regel je dan de rechten op de SQL server? Ik neem aan dat dit dan niet meer gaat via SQL accounts.
- Wat plaats je waar?
Stel ik heb een tabel met persoonsgevens. Mijn applicatie biedt de mogelijkheid om een persoon toe te voegen. Als eis wordt er gesteld dat een persoon minimaal 16 jaar moet zijn. Als ik het goed heb begrepen gebeurd er ongeveer het volgende bij het toevoegen van een nieuw persoon:
- De presentatielaag stuurt de nieuwe persoonsgegevens door naar de BLL
- De BLL controleert aan de hand van de geboortedatum of de persoon wel 16 jaar of ouder is. Is de persoon jonger dan geeft de BLL door aan de presentatielaag dat de persoon niet voldoet aan de gestelde eisen
- Als de persoon wel 16 jaar of ouder is dan stuurt de BLL alle gegevens door aan de DAL. De DAL zorgt voor het daadwerkelijk plaatsen van de data in de database
Eigenlijk is de BLL dan niet heel veel meer dan een doorgeefluik. Klopt dat?
- Connection pooling
Om gebruik te maken van de ADO connection pooling maak je in het begin van je applicatie een connectie aan die je vervolgens weer sluit zonder het connectie object vrij te geven. Hoe gaat dit in een n-Tier omgeving? Laat je dit gebeuren bij het creeeren van de DAL?
Dit zijn zo'n beetje de zaken die ik nu tegen kom. Ik hoop dat er mensen zijn die me wat verder kunnen helpen. Alle hulp is welkom!
- N-Tier Application Development with Microsoft.NET
- What is n-Tier Architecture
- A reminder on Three/Multi Tier/Layer Architecture
- Designing Data Tier Components and Passing Data Through Tiers
- Setting up a COM component project in Visual Basic 6
Verder heb ik (uiteraard) de verschillende topics hier op GoT gelezen die over DAL en BLL gaan. Helaas kom ik nergens de informatie tegen die ik zoek. Ik hoop daarom via dit topic misschien toch wat duidelijk te krijgen.
- DAL en BLL, aparte DLLs?
Implementeer je de DAL en BLL ieder in een aparte DLL? Wat als die twee DLLs nou niet op dezelfde machine komen te staan, hoe maak ik dan binnen de BLL een referentie aan naar de DAL?
Wat ik me ook afvraag is of je per business entity een DLL aanmaakt of dat je een algemene DAL/BLL DLL hebt met daarin verschillende classes per business entity.
- Plaatsing connectionstring
Ik zou nu een connectiestring maken door de gebruiker op te laten geven welke database en SQL login er gebruikt moeten worden. Omdat de presentatielaag zelf geen interactie heeft met de database lijkt dat niet zo heel zinnig. In de meeste voorbeelden zie je dan ook dat de DAL en BLL zelf de connectiestring laden uit een bestand. Opzich geen probleem natuurlijk maar hoe regel je dan de rechten op de SQL server? Ik neem aan dat dit dan niet meer gaat via SQL accounts.
- Wat plaats je waar?
Stel ik heb een tabel met persoonsgevens. Mijn applicatie biedt de mogelijkheid om een persoon toe te voegen. Als eis wordt er gesteld dat een persoon minimaal 16 jaar moet zijn. Als ik het goed heb begrepen gebeurd er ongeveer het volgende bij het toevoegen van een nieuw persoon:
- De presentatielaag stuurt de nieuwe persoonsgegevens door naar de BLL
- De BLL controleert aan de hand van de geboortedatum of de persoon wel 16 jaar of ouder is. Is de persoon jonger dan geeft de BLL door aan de presentatielaag dat de persoon niet voldoet aan de gestelde eisen
- Als de persoon wel 16 jaar of ouder is dan stuurt de BLL alle gegevens door aan de DAL. De DAL zorgt voor het daadwerkelijk plaatsen van de data in de database
Eigenlijk is de BLL dan niet heel veel meer dan een doorgeefluik. Klopt dat?
- Connection pooling
Om gebruik te maken van de ADO connection pooling maak je in het begin van je applicatie een connectie aan die je vervolgens weer sluit zonder het connectie object vrij te geven. Hoe gaat dit in een n-Tier omgeving? Laat je dit gebeuren bij het creeeren van de DAL?
Dit zijn zo'n beetje de zaken die ik nu tegen kom. Ik hoop dat er mensen zijn die me wat verder kunnen helpen. Alle hulp is welkom!