N Tier Development standards

Am new user of the n-tier development, and am wondering how can i determine the number of layers to use? i know the structure and divisions DAL and BLL, but some user may divide their projects into more tiers, depending on what reasons should developer make it more or less tiers? is it performance and functionality reasons? please explain. also is there a standard number of tiers?

Answers


To manage the application development and maintenance, one needs to divide the application into logical (and physical) units/group - each devoted to specific concern (in terms of functionality or in terms of infrastructure or in some other terms). Division can be vertical and/or horizontal. Layer is a horizontal split while vertical splits get driven from domain perspective (modules/sub-modules). At a very broad level, number of layers get decided based on degree of separation of concerns that you want to achieve. Common layers are data access, business logic, presentation. But you can more such as business facade that provides simpler API on top of business logic, or services layer that allow external application to integrate with yours and so on. Each layer can have sub-layers and so on. And there can be cross-cutting concerns such as logging, security, audit trails etc

Tier indicates physical separation of layer(s) - tiering is done so that different layers can be scaled independently of each other. So you can have database server, application server (hosing business layer) and web server (hosting presentation) as tiers.

Will recommend reading this article to understand more on layers and tiers.


Need Your Help

Node.js How to pass Ajax success message to app.js

javascript jquery ajax json node.js

Node.js how to pass Ajax success message to app.js, because i need to know user Log-in status

Why would you ever implement finalize()?

java jvm

I've been reading through a lot of the rookie Java questions on finalize() and find it kind of bewildering that no one has really made it plain that finalize() is an unreliable way to clean up reso...

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.