This is the homepage for what I’m calling the 5-layer Architecture. The current version is v0.2, posted on 29-Aug-2011, is also the first publicly published version. My reasons for doing this are (at least partially) covered in the document.
The current PDF is 33 pages long, with some supporting diagrams. My intention is to expand on this by including code examples, and providing one or two “quick start” / cheat-sheet type reference documents to make it more accessible.
- 5-Layer Architecture White Paper (PDF, 725Kb).
- Also available: ‘raw’ copies of the supporting images5-Layer Architecture White Paper as used in the document – they’ve been scaled down in the PDF and don’t reproduce that well (ZIP file, 343Kb).
- The 5-layer Architecture relies on Dependencey Inversion, for an introduction (including plenty of diagrams and sample code) please check out the “companion” article: An Introduction to Dependency Inversion.
Any feedback is of course warmly encouraged and most welcome; email me at: adriank [at] morphological [dot] geek [dot] nz
The 5-Layer Architecture reflects “real-world” work that I have been involved with since around 2003. This work is mainly ASP.NET based; so you might also refer to it (if you feel so bold) as a “Classic ASP.NET Architecture” – classic in the sense that it seeks to describe architectural work I have seen repreated in many solutions over the last few years, and work I have seen discussed in articles and blog posts on the net for some time.
So I’m not claiming anything particularly “new” here; what I am claiming is a “bundling-up” and formal description of architectures I have seen and agree with, specifically including rules and principles that will help designers and developers make informed decisions.
It’s my hope that this work will be of particular use to developers new to architecture or considering moving into architecture more fully.
The 5-Layer Architecture is primarily concerned with the logical and physical partitioning of code into packages which support reuse.
As you can see from the diagram below, it partitions the system into (surprise!) 5 Layers. Unlike a lot of other architectures that focus on the “main horizontal” layers (like the UI, BL and DAL) the 5-Layer Architecture formally recognises other parts as a logical layer that deserves equal recognition. Please read the formal description (link above) for a full and proper introduction.