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.