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

.Net Petshop详解(二): petshop三层结构之DataTier

阅读更多

交互的三层综述<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

在前面的文章中,我们丛整个系统的角度了解了petshop的三层部署结构物理上的一个概貌,没有从应用程序的角度来说明是如何划分的,也不清楚数据展示层,中间层,数据层是如何交互的。为了更好的说明这个三层的结构以及每一层的具体细节问题,也让大家对整个应用有一个walkthrough,在这里我将说明从系统的角度来看(见参考图1),顾客在购物的过程中,系统的三层是如何的工作以及如何的交互。这个东西有点象UML里面的实例情景故事,对需求和分析的进一步是大有帮助的。

图1 .NET Petshop 架构

从这个情景中,我们可以很清晰的了解到Internet Customer在购物时系统的运作情形。首先通过数据展示层的用户交互界面Cart.aspx页面输入顾客购买的商品以及数量,然后这些购物清单由后台的应用程序(cart.aspx.cs)做相应的预处理(如安全验证,校验,数据的格式化等等),接着调用中间件(在程序结构里面就是一些.NET Assembly,封装了购物的商业逻辑),最后通过数据访问接口来更新数据库里面的数据(数据层)。

数据层(Database)

.NET Petshop的数据库并不是十分的庞大,总共有12个用户表和23个存储过程。Petshop数据库里面存储的是用户数据,帐号数据,产品数据,用户配置数据,订单数据,库存数据以及供应商的数据。应用程序访问数据库的数据并不是直接的与数据库表打交道,而是通过存储过程的运行来获取所需要的数据。这样的设计有一个好处就是,避免了频繁的表操作,而通过运行在服务器端的存储过程可以极大的提高运作效率和提升访问数据的速度,同时也很好的屏蔽了数据库表的逻辑,使得数据库访问变成了数据库提供的服务访问。当然,也有人指责说这些存储过程迁移性是值得怀疑的。

下面我将通过表格把这些数据库的基本表列出来(见表1),并一一做说明,希望对大家深入的理解有帮助。

表名称

备注信息

Account

基本用户信息。

BannerData

存储的是系统界面的banner图片的设置信息。

Category

宠物的类别目录表(比如鱼类,狗类等等)。

Inventory

宠物产品的存货信息。

Item

单个产品的详细信息。

LineItem

订单的每一项的详细信息,包括产品名称和数量,价格等。

Orders

用户购物的订单,一个订单可以包括多项LineItem

OrderStatus

订单的状态

Product

宠物的产品列表,一条Product可能包括多个Item

Profile

用户配置表,用于记录他们的favorites

Signon

用户帐号登陆表,因为常用,故从Account独立出来。

Supplier

供应商信息。

通过上表我们知道了petshop数据库的数据库表的一些信息,但是这些表之间到底是一种什么样的关系呢?关心数据库建模和设计的人可能对这个问题比较感兴趣。在这里,我将给出图表(图2)说明这些数据库表之间的关系。图2中列出了这些表之间的关系和主键信息。

图2petshop数据库物理设计模式

技巧:其实对于从事过数据库建模和设计的人都知道,得到上面的数据库模型图形并不是一件很困难的事情。正如我们前面提到的一样,我们可以用Visio做工程反转就可以得到上面这么美观的设计模型图了。同时,我们也可以在模型图中做修改设计,可以马上应用到你的物理数据库,使其保持同步。

说完了基本的数据库表,接下来我们看看存储过程。用微软的话说,只有设计称存储过程,才算是”cleaner separation of code from the middle-tier”,我个人觉得这样做是很好的。同样的,我把它列在一个表格里(表2)。

存储过程名称

备注信息

upAccountAdd

增加一个帐号。

upAccountGetAddress

获取用户的地址,主要用于下订单时注册地址与送货地址不一。

upAccountGetDetails

获取帐号的详细信息。

upAccountLogin

用户登陆验证。

upAccountUpdate

更新用户帐号。

upCategoryGetList

获取某个类别的产品列表。

upInventoryAdd

增加指定的项到存活信息。

upInventoryGetList

获取存货列表。

upItemAdd

增加一项产品。

upItemGetDetails

获取指定产品项的详细信息。

upItemGetList

获取某一特定类别的产品的具体项目列表。

upItemGetList_ListByPage

功能与上同,但是分页获取数据。

upOrdersAdd

增加一项订单。

upOrdersGet

获取某一订单的信息。

upOrdersGetDetails

获取某一订单的详细信息。

upOrderStatusGet

获取订单的状态。

upProductAdd

增加一类别产品。

upProductGetList

返回某类产品的列表。

upProductGetList_ListByPage

与上同,但是分页获取结果数据。。

upProductSearch

产品搜索。

upProductSearch_ListByPage

与上同,但是翻页获取结果数据。

upProfileGetBannerOption

Banner的配置信息。

upProfileGetListOption

获取用户配置信息。

2petshop存储过程列表

在这些存储过程里面使用了SQL Server2000OpenXML的特性来代替传统的行集结果,使用在非常频繁的数据访问操作,可以减轻系统的负担。

好了,petshopDatatier就说到这里了,在后面的文章我会就一个数据访问的实例再次解说存储过程的执行。接下来我将就中间层做介绍了。

分享到:
评论

相关推荐

    Net Petshop详解Word版

    Net Petshop详解(二): petshop三层结构之DataTier Petshop详解(三):petshop三层结构之MiddleTire Net Petshop详解(四):petshop三层结构之PresentationTier Net Petshop详解(五):petshop输出缓存设置

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

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

    .Net petshop 4.0+文档

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

    二 petshop三层结构之DataTier.doc

    【标题】:“二 petshop三层结构之DataTier.doc”探讨了.NET PetShop的DataTier,即数据层在三层架构中的作用和设计。 【描述】:本文档深入解析了.NET PetShop的三层架构中的数据层(DataTier),阐述了在用户购物...

    .Net Petshop4.0及相关资料

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

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

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

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

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

    [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

    ASP.NET PetShop 4.0 和 5.0 是微软为开发者提供的两个经典示例项目,旨在演示如何在 .NET 平台上构建企业级 web 应用程序。这两个版本分别基于 .NET Framework 2.0 和 3.5,展示了 ASP.NET 技术在不同版本中的应用...

    .NET PetShop购物程序

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

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

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

    四 petshop三层结构之PresentationTier.doc

    《.NET Petshop 三层结构解析:聚焦PresentationTier》 .NET Petshop是一个经典的Web应用程序示例,它展示了如何构建一个高效、可维护的三层架构。本文主要探讨的是该架构中的Presentation Tier,即用户界面层,它...

    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中一步步教你怎么操作。是本人学习三层架构的经典资料。共享了,希望对...

    petshop4.0详解.pdf

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

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

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

    《解剖PetShop》之二:PetShop数据访问层数之据库访问设计

    二、PetShop数据访问层之数据库访问设计  在系列一中,我从整体上分析了PetShop的架构设计,并提及了分层的概念。从本部分开始,我将依次对各层进行代码级的分析,以求获得更加细致而深入的理解。在PetShop 4.0中,...

    asp.net petshop 4.0

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

Global site tag (gtag.js) - Google Analytics