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?
What is 3-tier architecture with example?
Three-tier architecture is a well-established software application architecture that organizes applications into three logical and physical computing tiers: the presentation tier, or user interface; the application tier, where data is processed; and the data tier, where the data associated with the application is ...
The above describe a very simple architecture of a 3-tier model.
- DAL (Data Access Layer) interacts with Database directly, so all the SQL operation are being done within DAL only.
- BLL (Business Logic Layer) works like a mediator between DAL and the Presentation Tire.
- No direct communication is allowed between DAL and Presentation Layer.
- 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.
- 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.
- As Business rules/logics are being defined inside BLL, any update to business logic will not impact the DAL and the presentation layer
This diagram describes an actual implementation of a 3-tier model.
- Data Access Service and the Database Server can be hosted in single Server.
- Mostly SQL Server 2000/2005/2008 or Oracle can be hosted on Windows 2000/2003 Server.
- Business Server exposes all the operation through Web Service /Remoting/WCF.
- 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.
- Presentation Tier or the Client Consumes the Service exposed at Business Server by using the Proxy through http:// pipeline.
- 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.
- Data/Information are being encapsulated by entity and transferred from one location to another over network followed by all the network protocol.
There are 2 cool project about three tier architecture in C#.
3-tier architecture in C# and T̶h̶r̶e̶e̶ ̶L̶a̶y̶e̶r̶ ̶A̶r̶c̶h̶i̶t̶e̶c̶t̶u̶r̶e̶ ̶i̶n̶ ̶C̶#̶ ̶.̶N̶E̶T̶. Both projects are amazing specificly for you.