Question

As fas as I have understood we can say that 3 layered architecture means seperate projects for each concern. Those UI Layer, Business Layer and Data Layer. UI talks to BL and BL talks to DB and vice versa. That's good for maintainability and idea of seperation of concerns are reasonable. But on the other hand, the tiers are different than layers. Namely, tiers are directly related to machines/network. I mean when we say 2 tier, it is generally client machine and database server machine. When we say 3 tier, it is generally client machine, application server machine and database server machine. So in terms of these information developing two tier application that uses 3 layer architecture is possible.

So far, I have used 3 layer but it is time to decide whether should we develop in 3 tier or 2 tier. There will be windows form project in the field and around 150 clients and 100 hand terminals that will be using windows form project and communicate over web services. In hand terminals, it is obvious that best solution is using three tier but for windows clients which will be running on Windows 7, it is hard to decide whether should we talk with database over one application server or directly connecting to database.

Main question here what are benefits of 3 tier architecture over 2 tier. For me one more tier means one more server/host/machine that needs to be up and running all the time which may be overhead.

Please guide us for choosing best tier architecture.

Was it helpful?

Solution

I would only recommend using a '3 tier' (Client, Application Server, and Database Server) if you're going to be doing some major task on the Application Server that would otherwise consume resources available to also run a Database Platform. For example, connection pooling or connection management software running in between the application (Business Layer) and the Database server (Data Layer).

OTHER TIPS

Lets say you have this components: UI, Common, Biz, DAL

In 2 or 3 tier application development, you deploy UI and Common on client and Common, Biz , DAL on server (pay attention common is deployed on both) and you try to connect t your BIZ via .Net Remoting or WCF And finally DB can be on Server or other Servers for the last tier.

I hope this helps

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top