Architecture N层问题

Architecture N层问题,architecture,Architecture,在典型的N层应用程序中,我对各层的理解如下: DAL-与db交互的代码 BLL-业务规则(这与DAL有何不同?它叫DAL吗?什么是示例BLL类?) 表示层 另外,“服务层”从何而来?好吧,让我们从DAL开始。 它让您在编写BLL时忘记了DB的所有问题。也就是说:DAL负责插入、选择、更新、删除操作,负责事务,执行存储过程。 你如何在现实生活中使用它?假设您的数据库中有一个表TBL1。在DAL中创建一个名为Tbl1Adapter的类。使用虚拟方法CreateRecord、GetRecord(id)

在典型的N层应用程序中,我对各层的理解如下:

DAL-与db交互的代码 BLL-业务规则(这与DAL有何不同?它叫DAL吗?什么是示例BLL类?)

表示层


另外,“服务层”从何而来?

好吧,让我们从DAL开始。 它让您在编写BLL时忘记了DB的所有问题。也就是说:DAL负责插入、选择、更新、删除操作,负责事务,执行存储过程。 你如何在现实生活中使用它?假设您的数据库中有一个表TBL1。在DAL中创建一个名为Tbl1Adapter的类。使用虚拟方法CreateRecord、GetRecord(id)、UpdateRecord(id、newData)、DeleteRecord(id)。您的BLL将调用此方法。但Tbl1Adapter类将在内部执行DB任务。它将调用存储过程,或将SQL命令发送到DB,或将使用一些复杂的DB驱动程序来满足您对BLL的需求:)除了DAL并不意味着只使用数据库之外,它还可以用于处理ASCII文件、输入设备以及其他一些东西。 该层提供数据

接下来是BLL: BLL是关于处理数据的。它从DAL获取数据,并将数据交给DAL保存。但所有数据操作都出现在BLL中:数字相乘,条件(如果…那么…)全场,执行其他一些火箭科学逻辑。。。所以BLL是应用程序的核心。 这一层是应用程序的大脑

表示层: 这是一个最容易理解和非常有趣的发展。这一切都是关于应用程序如何显示其工作结果的。它可能是一个带有数据网格和按钮的windows窗体,可能是一个网页,可能是一些很酷的音频界面。 该层是应用程序的一个界面:眼睛和耳朵从用户(或其他系统)获取数据,嘴巴向用户(或其他系统)提供数据

服务层有点棘手。 它通常是其他应用程序的API。比如说,我有一个可以乘以数字的web服务。它叫巨脑:) 您有一个应用程序,它从用户处获取两个数字。但是你决定使用我的MegaBrain服务,而不是在你的应用程序中实现BLL——给他那些数字,然后返回结果。
所以服务层是。。。嗯,我不知道如何用两个词来形容它。服务层让您的应用程序使用另一个应用程序的BLL。它类似于DAL,但数据访问层只存储和提供数据,而服务层对输入数据执行一些操作并产生一些结果(返回乘法结果或打开电视;)

很好的解释,我明白了,服务层将是原始应用程序和外部应用程序之间的链接。