`
happmaoo
  • 浏览: 4428204 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

.NET Petshop详解(三):petshop三层结构之MiddleTire

阅读更多

通过前面的文章,我们对.NET Petshop的整个结构有了一个大致的了解,也清楚的知道了数据库的设计模式和实现的细节,尤其值得一提的是通过存储过程访问数据库。在接下来的这篇文章里,我将和大家一起来探究一下.NET Petshop的中间层。

根据三层结构的设计原则,中间层封装的是业务逻辑和规则,在这个网络宠物商店的例子中,购物处理,订单处理,帐号管理,产品查询等等都是具体的业务逻辑,至于与用户交互并不是中间层要处理的问题。它处理是与具体的用户界面和交互无关,而仅仅是核心的商业规则和逻辑。.NET Petshop的中间层业务逻辑被封装为一个.NET 组件,它的命名空间为Pet Shop.Components(编译后在bin的文件夹里面有一个petshop.dll的文件)。图1.NET Petshop解决方案中间层的类视图和文件视图。

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></path><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><lock v:ext="edit" aspectratio="t"></lock></shapetype>

1.NET Petshop解决方案中间层的类视图和文件视图

接下来,我们模拟顾客到百货超市采购日常用品的过程来说明运作的流程以及抽象出重要的概念(实际上User case,我们在领域分析的时候会这么做,并且是很重要的一步,从这里可以初步的发现在我们实施的系统中将要涉及到的逻辑实体,进而可以为数据库建模设计以及类设计提供参考)。

购物用例的业务分析:

1 客户有购买商品的意愿;

2 客户到登陆管理员处登记,且成功登记;

3 在登记处推一个购物车;

4 在超市内查找所购商品类别存放的货架;

5 在具体的货架上查找某一具体品牌的商品;

6 将符合意愿的商品放入自己的购物车;

7 重复4-6

8 购物完毕;

9 到付款处计算总价格并付款;

10 打印购物清单;

11 退还购物车;

12 取走购物,购物完毕;

备注:在这个用例中,我们做了一些前提和假设,为的是方便.NET Petshop的分析,比如说在实际生活中根本就不需要第二步。

通过这个用例的分析,我们至少可以抽象出一下几个重要概念,并且能在应用程序里面找到对应的类:客户对应Customer、商品对应Product、购物车对应ShoppingCart、商品类别对应Category、具体商品对应Item、清单对应Order

正如我前面说过的,这几个概念对于我们的业务建模和系统建模是非常有用的。正是通过这样的分析,在.NET Petshop的业务逻辑里面共有9个核心类和5个轻量级的数据结构类。同样的方式,我在这里列出这些类,并加以说明(见表1)。

类名称

说明

BasketItem

代表购物车ShoppingCart里的一项购物商品。

Customer

用于帐号管理和登陆验证。

CustomerDetails

用户帐号的详细信息。

CustomerAddress

用户帐号的地址信息。

Error

用于登陆出错的帮助功能。

Item

代表某类产品中的具体一项商品。

ItemResults

搜索Item的结果集。

Order

购物完毕后的购物清单和订单。

Product

大类别里面的某类产品。

ProductResults

搜索产品的结果集。

Profile

用户的配置。

ShoppingCart

购物车,用于购物的整个过程,直到下订单。

Database

通过ADO.NET访问数据库,封装了具体的访问方法。

SearchResults

模糊搜索的结果集。

1.NET Petshop中间层的类

CustomerAddress, CustomerDetails, ItemResults, ProductResults, and SearchResults这几个轻量级的数据结构类为在数据层和展示层之间提供了一种松散的数据绑定调用。这些类都被设计为有公开的属性,ASP.NET web页面可以通过这些属性访问数据。下面这段类的代码说明了这5个类是如何暴露自己的公开属性供展示层使用的。

public class ProductResults

{

private string m_productid;

private string m_name;

public string productid {

get { return m_productid; }

set { m_productid = value; }

}

public string name {

get { return m_name; }

set { m_name = value; }

}

}

.NET Petshop详解(二)中我们就说过数据库的访问是通过存储来进行的,我们看看下面这部分代码就知道了:

public string Login(string userName, string password) {

string customerID;

// params to stored proc

Database data = new Database();

SqlParameter[] prams = {

data.MakeInParam("@username", SqlDbType.VarChar, 25, password),

data.MakeInParam("@password", SqlDbType.VarChar, 25, userName),

data.MakeOutParam("@CustomerID", SqlDbType.VarChar, 25)

};

// create data object and params

data.RunProc("upAccountLogin", prams); // run the stored procedure

customerID = (string) prams[2].Value; // get the output param value

// if the customer id is an empty string, then the login failed

if (customerID == string.Empty)

return null;

else

return customerID;

}

这段代码是Customer类的Login方法,它是通过将用户输入的用户名userName和密码password做为输入参数传递给存储过程upAccountLogin的,这个存储过程完成在Sigon用户帐号表里面查找该用户是否合法,最后返回一个字符串的用户ID值。在这里没有使用SQL查询语句,很好的分离了逻辑。具体的数据库访问是通过Database来完成的,我们将在后面的文章中继续探讨它的运作。

ShoppingCart是比较有意思的一个类,也是很重要的一个类。它是与状态有关的一个类,在.NET Petshop里面,它的状态是通过ASP.NET Session state来管理的,关于其进一步的细节留待后面讨论。

.NET Petshop的中间层的探讨先到此,我在这里只是抛砖引玉,很多的东西要深入代码才可以搞的更加清楚。欢迎大家继续与我一起关注下一篇.NET Petshop的数据展示层。

分享到:
评论

相关推荐

    .net petshop非常详细的说明解释

    《.NET PetShop详解》 .NET PetShop是一个经典的开源项目,它由Microsoft开发,用于演示.NET Framework的功能,尤其是Web应用程序的开发。这个项目为开发者提供了一个全面的学习平台,展示了如何在.NET环境中构建一...

    Net Petshop详解Word版

    Net Petshop详解(一): petshop概览和准备工作 ...Petshop详解(三):petshop三层结构之MiddleTire Net Petshop详解(四):petshop三层结构之PresentationTier Net Petshop详解(五):petshop输出缓存设置

    .Net petshop 4.0+文档

    《.Net PetShop 4.0:微软分层架构的典范》 .Net PetShop 4.0 是微软推出的一个开源示例项目,旨在演示如何利用 .NET Framework 构建一个完整的、分层的企业级应用程序。这个项目对于初学者,尤其是那些在IT行业中...

    .Net Petshop4.0及相关资料

    《.Net PetShop4.0:深入理解三层架构的典范》 .Net PetShop4.0是一款经典的开源应用程序,它以其清晰的三层架构设计,成为了.NET开发者学习和理解企业级应用开发的重要参考。这个项目不仅提供了实际的代码实现,还...

    asp.net PetShop系统演示(源码)

    ASP.NET PetShop是一个经典的示例应用,用于演示和学习ASP.NET技术,特别是对于那些想深入理解微软.NET框架下的Web应用程序开发的开发者和架构师。这个系统以一个宠物商店的业务流程为背景,提供了完整的源码,让...

    [PetShop] PetShop for .Net 3.5 源代码

    基于 .NET Framework 3.5 的 Petshop,使用 LINQ to SQL 改进数据访问层,使用 WCF 来提供RSS,并在 UI 层上做一些改进,如使用 ASP.NET AJAX,ListView 控件等; ☆ 文件清单:☆ PetShop for .Net 3.5 (Source ...

    asp.net 经典 petshop4.0+5.0

    该项目采用了三层架构,包括表现层(UI)、业务逻辑层(BLL)和数据访问层(DAL),体现了良好的软件工程实践。 在 PetShop 4.0 中,你可以学习到以下 ASP.NET 的关键知识点: 1. 使用 ASP.NET 控件,如 GridView ...

    .NET PetShop购物程序

    10. **分层架构**:PetShop采用了典型的三层架构,包括表示层(UI)、业务逻辑层(BLL)和数据访问层(DAL)。这种架构有助于保持代码的组织性和可扩展性。 文件"chinanetboy.com.txt"可能是项目开发过程中的一些...

    三 petshop三层结构之MiddleTire.doc

    本文主要介绍了.NET Petshop应用的三层结构中的中间层,即业务逻辑层(MiddleTier)。Petshop是一个网络宠物商店的示例应用,它采用三层架构来分离数据访问、业务逻辑和用户界面。中间层在三层结构中起到关键作用,...

    asp.net 经典petshop (代码+ppt)

    《ASP.NET经典PetShop项目详解》 PetShop是一款基于ASP.NET技术的经典示例应用,它在.NET Framework 2.0的环境下运行,是学习和理解ASP.NET开发模式、设计原则和最佳实践的理想案例。这个项目以其清晰的架构、模块...

    PetShop4.0官方的ASP.NET三层电子商务范例及PetShop技术详解

    《PetShop4.0官方的ASP.NET三层电子商务范例及PetShop技术详解》是一个非常有价值的资源,它深入探讨了如何构建一个基于ASP.NET的电子商务平台。这个范例应用展示了Microsoft的.NET Framework的强大功能,特别是针对...

    PetShop 4.0 (宠物商店C#版)

    《PetShop 4.0:深入理解C#与ASP.NET应用开发》 PetShop 4.0是一款基于C#编程语言和ASP.NET框架的应用程序,它以宠物商店为业务场景,为开发者提供了一个完整的Web应用程序示例。这个项目旨在帮助学习者理解和掌握...

    C#.net三层架构初学者之petshop详解

    三层架构 初学者 petshop详解 petshop正版安装软件(2.1M) 本人在里面添加了4个学习petshop开发的详细步骤,以及数据库建立,以及怎样在vs2005中一步步教你怎么操作。是本人学习三层架构的经典资料。共享了,希望对...

    PetShop 4.0 官方详解

    .NET PetShop 4.0 是由微软官方发布的示例应用程序,旨在展示如何利用.NET Framework 2.0 构建企业级 n 层应用程序。此应用不仅演示了最佳实践,还展示了如何在不同的数据库平台上运行和部署应用程序,例如 ...

    asp.net petshop 4.0

    项目采用三层架构设计,包括表现层(Presentation Layer)、业务逻辑层(Business Logic Layer)和数据访问层(Data Access Layer)。这种分层设计有助于提高代码的可维护性和可扩展性。 1. **表现层**:主要由ASP...

    petshop4.0详解.pdf

    自PetShop的第一个版本发布以来,它就成为了.NET开发者学习三层架构及面向对象设计模式的重要参考资料。 #### 二、PetShop 4.0背景与设计理念 PetShop 4.0的诞生标志着.NET框架在企业应用开发领域的进一步成熟和...

    .net petshop

    ### .NET PetShop项目中的Membership模块详解 #### 一、Membership模块概述 .NET PetShop项目中的**Membership**模块是.NET框架中的一个重要组成部分,主要用于管理应用程序中的用户账户信息,包括用户的注册、...

    ASP.Net经典案例 PetShop2.0(三层架构源代码)

    **ASP.Net三层架构详解** ASP.Net的三层架构是一种常见的软件设计模式,用于将应用程序的业务逻辑、数据访问和用户界面分离,以实现更好的可维护性、可扩展性和可重用性。PetShop2.0是ASP.Net开发的经典案例,它...

Global site tag (gtag.js) - Google Analytics