How to implement 3 tiers architecture in c#

Trần Minh picture Trần Minh · Dec 9, 2012 · Viewed 27.4k times · Source

I read many articles talk about 3 tiers architecture in c# but i see that:

  • Almost use Bussiness Logic Layer(BLL) as a object mapping corresponding table in database. This BLL object has some methods like these:

    +GetData(): return this;

    +Update(this);

    +Insert(this);

    +Delete(this);

  • This BLL object calls corresponding DAL(Data Access Layer) to execute to corresponding table of database.

  • I think if with above methods, we can oly get a record and update it. But if we have got many records and want to put it into a dataset, how can we update all records changed? Must we use loop for all records to do that?
  • Moreover, in the database, there are many tables related to each other, so how can we put them into dataset, make relations and add, update, delete records like using BindingSource with a Combobox and a DataGridView? And how can we seperate code in this situation?

Answer

Moiz picture Moiz · Dec 9, 2012

enter image description here

The above describe a very simple architecture of a 3-tier model.

  1. DAL (Data Access Layer) interacts with Database directly, so all the SQL operation are being done within DAL only.
  2. BLL (Business Logic Layer) works like a mediator between DAL and the Presentation Tire.
  3. No direct communication is allowed between DAL and Presentation Layer.
  4. Although there is no physical presence of the Entity Layer, but Entity encapsulates all the information/data and passes it from one layer to the other.
  5. So all the Database object name and the Database Schema is being restricted inside the DAL which gives an extra security layer to the application.
  6. As Business rules/logics are being defined inside BLL, any update to business logic will not impact the DAL and the presentation layer

enter image description here

This diagram describes an actual implementation of a 3-tier model.

  1. Data Access Service and the Database Server can be hosted in single Server.
  2. Mostly SQL Server 2000/2005/2008 or Oracle can be hosted on Windows 2000/2003 Server.
  3. Business Server exposes all the operation through Web Service /Remoting/WCF.
  4. A highly configured server with Windows 2000/2003 can be used to host the Business Service, or else Microsoft BizTalk Server also can be used for this.
  5. Presentation Tier or the Client Consumes the Service exposed at Business Server by using the Proxy through http:// pipeline.
  6. Client can be any standalone machine with the application is being installed in case of Desktop Application (Win-Form or Console Application), or having a Browser to run Web Application.
  7. Data/Information are being encapsulated by entity and transferred from one location to another over network followed by all the network protocol.