In het artikel Applicatie architectuur heb ik de diverse lagen behandeld waaruit een applicatie kan bestaan. In dit artikel vertaal ik deze lagen in aparte Visual Studio solutions.
Zoals zichtbaar in onderstaande tabel is iedere applicatie laag een aparte solution geworden. In de betreffende solution staat alleen functionaliteit die in de betreffende laag thuis hoort. Voor de presentatie laag heb ik voorbeeld uitwerkingen opgenomen voor een ASP.net website, een Windows applicatie en een Console applicatie.
Solution | Map | ||
src | |||
_SharedAssemblies | |||
EntLib_4_1 | |||
ApplicationA | |||
Presentation.WebAppUI | |||
ClientScripts | |||
CustomControls | |||
Images | |||
Pages | |||
Resources | |||
Styles | |||
UserControls | |||
Utilities | |||
Presentation.WinAppUI | |||
Forms | |||
Resources | |||
UserControls | |||
Utilities | |||
Presentation.ConsoleUI | |||
Services.Interfaces | |||
Services.MessageTypes | |||
Business.ApplicationFacade | |||
Business.Workflow | |||
Business.Components | |||
Business.Entities | |||
Data.AccessComponents | |||
Data.DataHelpers | |||
Data.ServiceAgents | |||
OperationalManagement | |||
Caching | |||
ConfigurationManagement | |||
ExceptionManagement | |||
Logging | |||
UnitTests | |||
ApplicationB |
De map _SharedAssemblies bevat alle assemblies, met uitzondering van het .NET framework, waarnaar gereferereerd wordt in de code. De gedachte hierachter is dat de code altijd gecompileerd dient te kunnen worden, bijvoorbeeld op een build server, zonder een aparte installatie van de benodigde componenten. Op deze manier wordt er ook voor gezorgd dat altijd met de juiste versie van deze componenten wordt gewerkt. In de tabel is als voorbeeld opgenomen Enterprise Library 4.1 van de Patterns & Practices groep van Microsoft.
Reacties