Is the 3 (physical) level hierarchy ineffective?

Note. When I refer to a level, I mean the physical level. Many of the questions on this site related to “tiers” refer to logical layers, which I do not ask.

I am developing an application using the standard 3-layer architecture with presentation, business logic (BLL) and data access (DAL) layers. WPF technology, C #, LINQ, and SQL Server 2008. My question is about the physical architecture of this application.

I can put BLL / DAL in a standard DLL that loads and runs on a user computer, creating a two-tier architecture - a client machine and a database server. But it is not too difficult to turn BLL / DAL into a WCF service, which is located on the application server and is called from the user machine. This will give me a three-tier architecture — a client machine, an application server, and a database server.

My question is this: what is the advantage of using a three-tier architecture? I was often told that 3 levels add scalability, but I don’t immediately think why this would be. And, of course, you are going to get a performance hit with the same data that two flights must make over the wire - from the database server to the application server, and then from the application server to the client computer.

I would appreciate the advice of experienced architects and developers.

+5
source share
5 answers

It depends on the use of your application and your security requirement. If your application is used over the Internet and you arbitrarily store anything that is potentially sensitive, adding a physical delete to the database is highly recommended. Never, never let anyone from outside on any machine with direct access to your database. People can and will try to violate your safety for a better reason than they have nothing to do.

( -), . , . . . , , .

+5

, " X ?" :

  • "", , , , ? ? ? ? ?

  • ? , : , , . ?

  • ?

: - , , , . . . , , .

+4

.

, , , / . , . , / -, .

, - ( ), - Outlook iPhone. , - .

, , .

, .

+3

. , .

3 .

, , , , . , , .

+2
source

The main advantage of 3t applications described as you is not scalability. May be helpful.

To make your architecture scalable, you need another technology that you haven't mentioned. - you need services. I would suggest WCF.

Creating a BLL WCF service (or multiple services) will make your application more efficient and scalable, allowing your BLL to run on different / multiple computers.

+1
source

All Articles