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 aCombobox
and aDataGridView
? And how can we seperate code in this situation?
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.
来源:https://stackoverflow.com/questions/13786549/how-to-implement-3-tiers-architecture-in-c-sharp