1 / 1378

 浅谈“三层结构”原理与用意

 浅谈“三层结构”原理与用意. 浅谈“三层结构”原理与用意. 2005 年 02 月 28 日, AfritXia 撰写. 2006 年 12 月 28 日, AfritXia 第一次修改. 序. 在刚刚步入“多层结构” Web 应用程序开发的时候,我阅读过几篇关于“ asp.net 三层结构开发”的文章。但其多半都是对 PetShop3.0 和 Duwamish7 的局部剖析或者是学习笔记。对“三层结构”通体分析的学术文章几乎没有。.

diella
Download Presentation

 浅谈“三层结构”原理与用意

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1.  浅谈“三层结构”原理与用意

  2. 浅谈“三层结构”原理与用意

  3. 2005年02月28日,AfritXia撰写

  4. 2006年12月28日,AfritXia第一次修改

  5. 在刚刚步入“多层结构”Web应用程序开发的时候,我阅读过几篇关于“asp.net三层结构开发”的文章。但其多半都是对PetShop3.0和Duwamish7的局部剖析或者是学习笔记。对“三层结构”通体分析的学术文章几乎没有。

  6. 2005年2月11日,Bincess BBS彬月论坛开始试运行。不久之后,我写了一篇题目为《浅谈“三层结构”原理与用意》的文章。旧版文章以彬月论坛程序中的部分代码举例,通过全局视角阐述了什么是“三层结构”的开发模式?为什么要这样做?怎样做?……而在这篇文章的新作中,配合这篇文章我写了7个程序实例(TraceLWord1~TraceLWord7留言板)以帮助读者理解“三层结构”应用程序。这些程序示例可以在随带的CodePackage目录中找到——

  7.   对于那些有丰富经验的Web应用程序开发人员,他们认为文章写的通俗易懂,很值得一读。可是对于asp.net初学者,特别是没有任何开发经验的人,文章阅读起来就感到非常困难,不知文章所云。甚至有些读者对“三层结构”的认识更模糊了……  对于那些有丰富经验的Web应用程序开发人员,他们认为文章写的通俗易懂,很值得一读。可是对于asp.net初学者,特别是没有任何开发经验的人,文章阅读起来就感到非常困难,不知文章所云。甚至有些读者对“三层结构”的认识更模糊了……

  8.   关于“多层结构”开发模式,存在这样一种争议:一部分学者认为“多层结构”与“面向对象的程序设计思想”有着非常紧密的联系。而另外一部分学者却认为二者之间并无直接联系。写作这篇文章并不是要终结这种争议,其行文目的是希望读者能够明白:在使用asp.net进行Web应用程序开发时,实现“多层结构”开发模式的方法、原理及用意。要顺利的阅读这篇文章,希望读者能对“面向对象的程序设计思想”有一定深度的认识,最好能懂一些“设计模式”的知识。如果你并不了解前面这些,那么这篇文章可能并不适合你现在阅读。不过,无论这篇文章面对的读者是谁,我都会尽量将文章写好。我希望这篇文章能成为学习“三层结构”设计思想的经典文章!

  9. “三层结构”是什么?

  10.   “三层结构”一词中的“三层”是指:“表现层”、“中间业务层”、“数据访问层”。其中:

  11. n表 现 层:位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面。

  12. n中间业务层:负责处理用户输入的信息,或者是将这些信息发送给数据访问层进行保存,或者是调用数据访问层中的函数再次读出这些数据。中间业务层也可以包括一些对“商业逻辑”描述代码在里面。

  13. n数据访问层:仅实现对数据的保存和读取操作。数据访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。

  14.   对依赖方向的研究将是本文的重点,数值返回方向基本上是没有变化的。

  15. 为什么需要“三层结构”?——通常的设计方式

  16. 在一个大型的Web应用程序中,如果不分以层次,那么在将来的升级维护中会遇到很大的麻烦。但在这篇文章里我只想以一个简单的留言板程序为示例,说明通常设计方式的不足——在一个大型的Web应用程序中,如果不分以层次,那么在将来的升级维护中会遇到很大的麻烦。但在这篇文章里我只想以一个简单的留言板程序为示例,说明通常设计方式的不足——

  17. 功能说明:

  18. ListLWord.aspx(后台程序文件ListLWord.aspx.cs)列表显示数据库中的每条留言。

  19. PostLWord.aspx(后台程序文件PostLWord.aspx.cs)发送留言到数据库。

  20. 更完整的示例代码,可以到CodePackage/TraceLWord1目录中找到。数据库中,仅含有一张数据表,其结构如下:

  21. 字段名称 数据类型 默认值 备注说明

  22. [LWordID] INT NOT NULLIDENTITY(1, 1) 留言记录编号

  23. [TextContent] NText N’’ 留言内容

  24. [PostTime] DateTime GetDate() 留言发送时间,默认值为当前时间

  25. ListLWord.aspx 页面文件(列表显示留言)

  26. #001 <%@ Page language="c#" Codebehind="ListLWord.aspx.cs" AutoEventWireup="false"

  27. Inherits="TraceLWord1.ListLWord" %>

  28. #002 <!DOCTYPEHTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

  29. #003

  30. #004 <html>

  31. #005 <head>

  32. #006 <title>ListLWord</title>

  33. #007 <metaname="GENERATOR"Content="Microsoft Visual Studio .NET 7.1">

  34. #008 <metaname="CODE_LANGUAGE"Content="C#">

  35. #009 <metaname=vs_defaultClientScriptcontent="JavaScript">

  36. #010 <metaname=vs_targetSchemacontent="http://schemas.microsoft.com/intellisense/ie5">

  37. #011</head>

  38. #012 <bodyMS_POSITIONING="GridLayout">

  39. #013

  40. #014 <formid="__aspNetForm"method="post"runat="server">

  41. #015

  42. #016 <ahref="PostLWord.aspx">发送新留言</a>

  43. #017

  44. #018 <asp:DataListID="m_lwordListCtrl"Runat="Server">

  45. #019 <ItemTemplate>

  46. #020 <div>

  47. #021 <%# DataBinder.Eval(Container.DataItem, "PostTime") %>

  48. #022 <%# DataBinder.Eval(Container.DataItem, "TextContent") %>

  49. #023 </div>

More Related