《系统规划与设计 (2).ppt》由会员分享,可在线阅读,更多相关《系统规划与设计 (2).ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、网站系统开发技术网站系统开发技术第一讲第一讲 网站系统规划与设计网站系统规划与设计IT规划的意义和作用规划的意义和作用因为因为ITIT只有与公司的业务方面紧密合作,才能确保公司保只有与公司的业务方面紧密合作,才能确保公司保持竞争力持竞争力随着网络供应链协作、电子市场和买家卖家及服务提供者随着网络供应链协作、电子市场和买家卖家及服务提供者的整合不断深入,一个好的企业战略必须包括一个好的的整合不断深入,一个好的企业战略必须包括一个好的ITIT战略这个战略要充分重视内部和外部客户以及供应商。战略这个战略要充分重视内部和外部客户以及供应商。上世纪上世纪9090年代后,年代后,ITIT的作用也已演变为帮
2、助组织达到业的作用也已演变为帮助组织达到业务目标,创造竞争优势。务目标,创造竞争优势。现在现在ITIT战略的重点是如何利用战略的重点是如何利用ITIT创造商业价值创造商业价值系统规划做什么?Situation analysisituation analysisStrategy formulation trategy formulation Strategy implementationtrategy implementationWhere we are today?here we are today?Where we want to be?here we want to be?How we a
3、re going to get there?ow we are going to get there?网站系统网站系统的规划的规划(WSP)系统规划的主要步骤系统规划的主要步骤用用户户需需求求初初步步调调查查确确定定新新系系统统目目标标选选择择开开发发方方案案可可行行性性研研究究系系统统规规划划报报告告系统规划系统规划pp 系统系统系统系统生命周期的第一阶段生命周期的第一阶段生命周期的第一阶段生命周期的第一阶段 制定系统制定系统制定系统制定系统的发展战略的发展战略的发展战略的发展战略 制定系统制定系统制定系统制定系统的总体方案,安排项目开发计划的总体方案,安排项目开发计划的总体方案,安排项目开
4、发计划的总体方案,安排项目开发计划 制定系统建设的资源分配计划制定系统建设的资源分配计划制定系统建设的资源分配计划制定系统建设的资源分配计划 系统可能在技术上是成功的,但在组织的层面上是失败的系统可能在技术上是成功的,但在组织的层面上是失败的系统可能在技术上是成功的,但在组织的层面上是失败的系统可能在技术上是成功的,但在组织的层面上是失败的 避避避避免免免免系统规划系统规划p 系统规划阶段结束的标志系统规划阶段结束的标志系统规划报告立项报告立项报告可行性报告可行性报告开发计划书开发计划书系统分析系统分析解决“做什么?”的问题 通过详细调查通过详细调查通过详细调查通过详细调查 明确需求明确需求明
5、确需求明确需求 逻辑模型逻辑模型逻辑模型逻辑模型8系统需求分析系统需求分析 o系统需求的定义o系统需求的层次9系统需求系统需求的定义的定义oIEEE软件工程标准词汇表中需求的定义:用户解决问题或达到某种目的所需要的条件或权能。系统或系统组件要满足合同、标准、规范或其他正式规定的文档所需要的条件或权能。反映以上(1)或(2)中描述的条件或权能的文档说明。10系统需求系统需求的层次的层次o系统需求包括三个层次:o业务需求:反映了组织机构或客户对系统高层次的目标要求。o用户需求:描述了用户使用产品所能完成的任务。o功能需求:说明了系统的功能,用户使用这些功能以完成任务。系统需求系统需求的层次的层次o
6、需求层次图:案例:图书馆管理系统案例:图书馆管理系统的需求分析的需求分析 o系统功能需求o基本数据维护模块o基本业务模块o数据库模块o信息查询模块系统功能系统功能需求需求o系统的功能需求主要包括以下几个方面:借阅者可以通过网络查询书籍信息和预定书籍。借阅者可以通过网络查询书籍信息和预定书籍。借阅者能够借阅书籍和还书。借阅者能够借阅书籍和还书。图书管理员能够处理借阅者的借阅和还书请求。图书管理员能够处理借阅者的借阅和还书请求。系统管理员可以对系统的数据进行维护,如增加、系统管理员可以对系统的数据进行维护,如增加、删除和更新书目,增加、删除和更新借阅者帐户,删除和更新书目,增加、删除和更新借阅者帐
7、户,增加和删除书籍。增加和删除书籍。系统功能系统功能需求需求o系统主要包括以下几个模块:基本数据维护模块基本数据维护模块基本业务模块基本业务模块数据库管理模块数据库管理模块信息查询模块信息查询模块基本基本数据维护模块数据维护模块o基本数据维护模块包括的主要功能模块:添加借阅者帐户添加借阅者帐户修改更新借阅者帐户信息修改更新借阅者帐户信息添加书目添加书目修改和更新书目信息修改和更新书目信息添加书籍添加书籍删除书籍删除书籍基本基本业务模块业务模块o 基本业务模块包含的功能:借书借书还书还书书籍预留书籍预留取消书籍预定取消书籍预定17数据库数据库模块模块o数据库模块的功能:借阅信息管理借阅信息管理书
8、籍信息管理书籍信息管理帐户信息管理帐户信息管理书籍预留信息管理书籍预留信息管理信息信息查询模块查询模块o信息查询模块主要是查询数据库中的相关信息查询书籍信息查询书籍信息查询借阅者信息查询借阅者信息系统系统的的UML基本模型基本模型o统一建模语言(UML)是按照软件工程思想推出的面向对象分析设计领域的主流工业标准。UML定义良好,表示能力强大,建模图形结构清晰,可对复杂的系统建立可视化模型,在信息系统分析和设计中具有较强的优势。系统系统的的UML基本模型基本模型o系统的用例图o系统的时序图o系统的协作图o系统的状态图o系统的活动图系统系统的用例图的用例图o这是一个调查、分析和逐步完善的过程。UM
9、L系统分析进行三方面的内容:系统角色分析、系统用例分析和角色与系统用例关联的分析。系统系统的用例图的用例图o创建用例图之前首先需要确定参与者。o系统的参与者主要有三类:读者(也可称为借阅者)读者(也可称为借阅者)图书馆管理员图书馆管理员图书馆管理系统维护者图书馆管理系统维护者 系统系统的用例图的用例图o借阅者请求服务的用例图o图书馆管理员处理借书、还书等的用例图o系统管理员进行系统维护的用例图 借阅者借阅者请求服务的用例图请求服务的用例图图书馆图书馆管理员处理借书、还书等的用例图管理员处理借书、还书等的用例图系统系统管理员进行系统维护的用例图管理员进行系统维护的用例图 系统系统的活动图的活动图
10、o在UML中,通过活动图对各个用例的业务流程进行描述。UML活动图记录了单个操作或方法的逻辑,或者单个业务流程的逻辑。o活动图的描述包括:定义活动图的范围;添加起始和结束点;添加活动;添加活动间的转变;添加决策点;找出可并行活动之处。系统系统的活动图的活动图o借阅者的活动图o图书管理员的活动图o系统管理员的活动图1.借阅者的活动图借阅者的活动图2.图书管理员的活动图图书管理员的活动图3.系统管理员的活动图系统管理员的活动图系统管理员维护借阅者帐户的活动图系统管理员进行书目信息维护的活动图系统管理员维护书籍信息的活动图系统系统系统系统管理员维护借阅者帐户的活动图管理员维护借阅者帐户的活动图管理员
11、维护借阅者帐户的活动图管理员维护借阅者帐户的活动图系统系统系统系统管理员进行书目信息维护的活动图管理员进行书目信息维护的活动图管理员进行书目信息维护的活动图管理员进行书目信息维护的活动图(3 3)系统管理员维护书籍信息的活动图)系统管理员维护书籍信息的活动图)系统管理员维护书籍信息的活动图)系统管理员维护书籍信息的活动图系统系统的时序图的时序图o通过类对象按时间顺序的消息交互图通过类对象按时间顺序的消息交互图叫时序图叫时序图 ;n n系统系统管理员添加书籍的时序图管理员添加书籍的时序图n n系统系统管理员添加借阅者帐户的时序图管理员添加借阅者帐户的时序图n n系统系统管理员删除书目的时序图管理
12、员删除书目的时序图n n图书图书管理员处理书籍借阅的时序图管理员处理书籍借阅的时序图n n图书图书管理员处理书籍归还的时序图管理员处理书籍归还的时序图n n借阅者借阅者查询书籍信息的时序图查询书籍信息的时序图n n借阅者借阅者预留书籍的时序图预留书籍的时序图系统系统管理员添加书籍的时序图管理员添加书籍的时序图 系统系统管理员添加借阅者帐户的时序图管理员添加借阅者帐户的时序图 系统系统管理员删除书目的时序图管理员删除书目的时序图图书图书管理员处理书籍借阅的时序图管理员处理书籍借阅的时序图图书图书管理员处理书籍归还的时序图管理员处理书籍归还的时序图借阅者借阅者查询书籍信息的时序图查询书籍信息的时序
13、图借阅者借阅者预留书籍的时序图预留书籍的时序图系统系统的协作图的协作图o系统管理员添加书籍的协作图o系统管理员删除书籍的协作图o图书管理员处理借书的协作图o图书管理员处理还书的协作图o借阅者预留书籍的协作图系统系统管理员添加书籍的协作图管理员添加书籍的协作图系统系统管理员删除书籍的协作图管理员删除书籍的协作图图书图书管理员处理借书的协作图管理员处理借书的协作图图书图书管理员处理还书的协作图管理员处理还书的协作图借阅者借阅者预留书籍的协作图预留书籍的协作图系统系统的状态图的状态图o书的状态图o借阅者帐户的状态图书书的状态图的状态图借阅者借阅者帐户的状态图帐户的状态图系统系统中的类中的类o系统中主
14、要的类o各个类之间的关系系统系统中主要的类中主要的类参与者相关的类系统中用到的其他类参与者参与者相关的类相关的类系统系统中用到的其他类中用到的其他类各个各个类之间的关系类之间的关系系统系统的配置与实现的配置与实现o系统的组件图o系统的配置图业务业务对象组件图对象组件图用户用户界面的组件图界面的组件图系统系统的配置图的配置图系统架构设计系统架构设计o逻辑架构设计逻辑架构设计o物理架构设计物理架构设计o设计数据访问层设计数据访问层o数据呈现数据呈现o处理缓存处理缓存o处理异常处理异常逻辑架构设计逻辑架构设计o分层架构设计是企业级应用程序架构模式中应用最分层架构设计是企业级应用程序架构模式中应用最为
15、广泛的模式之一,它将一个项目的功能、组件、为广泛的模式之一,它将一个项目的功能、组件、类以及代码分隔到不同的层,这些层之间通过松耦类以及代码分隔到不同的层,这些层之间通过松耦合的方式进行关联,从而实现系统。合的方式进行关联,从而实现系统。o架构模式的最常见形式为三层架构,该架构将应用架构模式的最常见形式为三层架构,该架构将应用程序划分为用户界面层、业务逻辑层和数据层。程序划分为用户界面层、业务逻辑层和数据层。逻辑架构设计(续)逻辑架构设计(续)物理架构设计物理架构设计物理架构图物理架构图物理架构图物理架构图数据访问层设计数据访问层设计o数据访问逻辑组件数据访问逻辑组件数据访问逻辑组件数据访问逻
16、辑组件uu提供对数据库的增、删、改、查方法,封装对某个表或提供对数据库的增、删、改、查方法,封装对某个表或提供对数据库的增、删、改、查方法,封装对某个表或提供对数据库的增、删、改、查方法,封装对某个表或某一组相关表的数据操作。某一组相关表的数据操作。某一组相关表的数据操作。某一组相关表的数据操作。o业务实体组件业务实体组件uu每一个数据访问逻辑组件都要处理特定类型的业务实体,每一个数据访问逻辑组件都要处理特定类型的业务实体,每一个数据访问逻辑组件都要处理特定类型的业务实体,每一个数据访问逻辑组件都要处理特定类型的业务实体,并且在界面层和业务逻辑层也需要使用这些业务实体并且在界面层和业务逻辑层也
17、需要使用这些业务实体并且在界面层和业务逻辑层也需要使用这些业务实体并且在界面层和业务逻辑层也需要使用这些业务实体uu在在在在DotNet FrameworkDotNet Framework解决方案下常见有四种方式表解决方案下常见有四种方式表解决方案下常见有四种方式表解决方案下常见有四种方式表示业务实体组件:示业务实体组件:示业务实体组件:示业务实体组件:XMLXML、DataSetDataSet、Typed Typed DataSetDataSet、ClassClass业务实体组件业务实体组件oXMLXML:使用:使用:使用:使用XMLXML字符串或字符串或字符串或字符串或XMLXML文档对象
18、模型文档对象模型文档对象模型文档对象模型(DOMDOM)来表示业务实体。)来表示业务实体。)来表示业务实体。)来表示业务实体。oDataSetDataSet:数据集是内存中的一个数据库,可包:数据集是内存中的一个数据库,可包:数据集是内存中的一个数据库,可包:数据集是内存中的一个数据库,可包含一个或多个数据表,可以直接从数据库读取或加含一个或多个数据表,可以直接从数据库读取或加含一个或多个数据表,可以直接从数据库读取或加含一个或多个数据表,可以直接从数据库读取或加载载载载XMLXML文档获得,并且支持序列化。文档获得,并且支持序列化。文档获得,并且支持序列化。文档获得,并且支持序列化。业务实体
19、组件业务实体组件oTyped DataSetTyped DataSet:类型化数据集是继承于:类型化数据集是继承于:类型化数据集是继承于:类型化数据集是继承于DataSetDataSet的一个类,它拥有一般数据集的所有特的一个类,它拥有一般数据集的所有特的一个类,它拥有一般数据集的所有特的一个类,它拥有一般数据集的所有特性,并且提供强类型的属性、方法、事件访问,我性,并且提供强类型的属性、方法、事件访问,我性,并且提供强类型的属性、方法、事件访问,我性,并且提供强类型的属性、方法、事件访问,我们可以像访问一般对象的属性等一样访问类型化数们可以像访问一般对象的属性等一样访问类型化数们可以像访问一
20、般对象的属性等一样访问类型化数们可以像访问一般对象的属性等一样访问类型化数据集中的表、行或列的值。据集中的表、行或列的值。据集中的表、行或列的值。据集中的表、行或列的值。oClassClass:通过在类中添加字段和属性来封装业务数:通过在类中添加字段和属性来封装业务数:通过在类中添加字段和属性来封装业务数:通过在类中添加字段和属性来封装业务数据,完全使用面向对象的编程技术,但是需要编写据,完全使用面向对象的编程技术,但是需要编写据,完全使用面向对象的编程技术,但是需要编写据,完全使用面向对象的编程技术,但是需要编写更多的额外代码,在处理数据绑定上也不方便。更多的额外代码,在处理数据绑定上也不方
21、便。更多的额外代码,在处理数据绑定上也不方便。更多的额外代码,在处理数据绑定上也不方便。如何完成数据呈现如何完成数据呈现oASP.NETASP.NET提供了一系列数据绑定控件。当使用数提供了一系列数据绑定控件。当使用数提供了一系列数据绑定控件。当使用数提供了一系列数据绑定控件。当使用数据绑定控件显示数据时,必须通过数据源控件完成据绑定控件显示数据时,必须通过数据源控件完成据绑定控件显示数据时,必须通过数据源控件完成据绑定控件显示数据时,必须通过数据源控件完成与数据库的访问。常见的数据源控件包括与数据库的访问。常见的数据源控件包括与数据库的访问。常见的数据源控件包括与数据库的访问。常见的数据源控
22、件包括SqlDataSourceSqlDataSource和和和和ObjectDataSourceObjectDataSource等。等。等。等。如何完成数据呈现如何完成数据呈现o我们选择哪一种数据源控件来绑定显示数据呢我们选择哪一种数据源控件来绑定显示数据呢我们选择哪一种数据源控件来绑定显示数据呢我们选择哪一种数据源控件来绑定显示数据呢?uu使用使用使用使用SqlDataSourceSqlDataSource控件需要大量的控件需要大量的控件需要大量的控件需要大量的SQLSQL语句,代码重语句,代码重语句,代码重语句,代码重用性极低,且不易于代码的扩展和维护。用性极低,且不易于代码的扩展和维护
23、。用性极低,且不易于代码的扩展和维护。用性极低,且不易于代码的扩展和维护。uu而使用而使用而使用而使用ObjectDataSourceObjectDataSource控件,封装了各种数据操作控件,封装了各种数据操作控件,封装了各种数据操作控件,封装了各种数据操作的业务逻辑组件,完成它通过和已据的绑定显示与各种维的业务逻辑组件,完成它通过和已据的绑定显示与各种维的业务逻辑组件,完成它通过和已据的绑定显示与各种维的业务逻辑组件,完成它通过和已据的绑定显示与各种维护操作,有效的将业务逻辑代码从界面代码中分离出来,护操作,有效的将业务逻辑代码从界面代码中分离出来,护操作,有效的将业务逻辑代码从界面代码
24、中分离出来,护操作,有效的将业务逻辑代码从界面代码中分离出来,提高了业务代码的重用度。提高了业务代码的重用度。提高了业务代码的重用度。提高了业务代码的重用度。如何完成数据呈现(续)如何完成数据呈现(续)asp:ObjectDataSource ID=categoriesODS runat=server OnDeleting=categoriesODS_Deleting 如何处理缓存如何处理缓存o缓存的好处缓存的好处uu用户在访问网站的过程中,每次都需要从数据库中查询用户在访问网站的过程中,每次都需要从数据库中查询用户在访问网站的过程中,每次都需要从数据库中查询用户在访问网站的过程中,每次都需要
25、从数据库中查询这些数据,这对数据库服务器的负荷和网络流量造成浪这些数据,这对数据库服务器的负荷和网络流量造成浪这些数据,这对数据库服务器的负荷和网络流量造成浪这些数据,这对数据库服务器的负荷和网络流量造成浪费,并降低了响应速度。对于这类数据可以使用缓存技费,并降低了响应速度。对于这类数据可以使用缓存技费,并降低了响应速度。对于这类数据可以使用缓存技费,并降低了响应速度。对于这类数据可以使用缓存技术,每次从数据库读取数据后将其缓存起来,所有的请术,每次从数据库读取数据后将其缓存起来,所有的请术,每次从数据库读取数据后将其缓存起来,所有的请术,每次从数据库读取数据后将其缓存起来,所有的请求将从缓存
26、中获取数据,既减少对数据库的访问又提高求将从缓存中获取数据,既减少对数据库的访问又提高求将从缓存中获取数据,既减少对数据库的访问又提高求将从缓存中获取数据,既减少对数据库的访问又提高了响应速度。了响应速度。了响应速度。了响应速度。如何处理缓存如何处理缓存p应用程序级缓存uu在在在在ASP.NET 2.0ASP.NET 2.0中,中,中,中,System.Web.Caching.CacheSystem.Web.Caching.Cache类可以很好的实现数类可以很好的实现数类可以很好的实现数类可以很好的实现数据缓存。据缓存。据缓存。据缓存。p页面级缓存应用程序级缓存应用程序级缓存o加入缓存加入缓存
27、o读取缓存项读取缓存项o使用依赖项(使用依赖项(SqlCacheDependencySqlCacheDependency)加入缓存加入缓存C#Cache.Insert(key,data);Cache.Insert(key,data);读取缓存项读取缓存项C#if(Cachekey!=null)if(Cachekey!=null)ds=(DataSet)Cachekey;ds=(DataSet)Cachekey;使用使用SqlCacheDependencyp配置缓存依赖项使用的数据库连接配置缓存依赖项使用的数据库连接 add name=cacheDBName connectionStringNa
28、me =BookShopConnectionString pollTime=2000/使用使用SqlCacheDependency(续)(续)pp通过通过SqlCacheDependencySqlCacheDependency类的实例使用上述配置,然后将类的实例使用上述配置,然后将该实例作为缓存依赖项传递给该实例作为缓存依赖项传递给CacheCache对象的对象的InsertInsert方法即可。方法即可。C#C#SqlCacheDependency dep=new SqlCacheDependency dep=new SqlCacheDependency(cacheDBName,Catego
29、ries);SqlCacheDependency(cacheDBName,Categories);Cache.Insert(Categories,categoriesDS,dep);Cache.Insert(Categories,categoriesDS,dep);页面缓存页面缓存pp使用页面缓存技术对某些使用页面缓存技术对某些ASPXASPX页面进行缓存。页面进行缓存。pp通过通过OutputCacheOutputCache指令,并设置指令,并设置DurationDuration和和VaryByParamVaryByParam属性来启用页面缓存。比如缓存页面为属性来启用页面缓存。比如缓存页面
30、为600600秒:秒:pp页面缓存也可以使用在配置文件中设定的缓存数据库名称,页面缓存也可以使用在配置文件中设定的缓存数据库名称,和应用程序数据缓存与数据库之间一样完成对页面的缓存。和应用程序数据缓存与数据库之间一样完成对页面的缓存。%OutputCache Duration=600 VaryByParam=None SqlDependency=cacheDBName:Shops%如何处理异常如何处理异常o对于任何一个系统不可避免的都会发生运行时异常对于任何一个系统不可避免的都会发生运行时异常对于任何一个系统不可避免的都会发生运行时异常对于任何一个系统不可避免的都会发生运行时异常或错误,这并不
31、是用户所希望看到的,甚至有的错或错误,这并不是用户所希望看到的,甚至有的错或错误,这并不是用户所希望看到的,甚至有的错或错误,这并不是用户所希望看到的,甚至有的错误将导致系统不能正常运行。误将导致系统不能正常运行。误将导致系统不能正常运行。误将导致系统不能正常运行。o.NET Framework.NET Framework的异常类都继承于的异常类都继承于的异常类都继承于的异常类都继承于System.ExceptionSystem.Exception类,并且提供了一个广泛的类,并且提供了一个广泛的类,并且提供了一个广泛的类,并且提供了一个广泛的异常类结构以处理多种形式的异常。我们可以使用异常类结
32、构以处理多种形式的异常。我们可以使用异常类结构以处理多种形式的异常。我们可以使用异常类结构以处理多种形式的异常。我们可以使用已有的异常类来处理异常,也可以通过继承实现自已有的异常类来处理异常,也可以通过继承实现自已有的异常类来处理异常,也可以通过继承实现自已有的异常类来处理异常,也可以通过继承实现自定义的异常类。定义的异常类。定义的异常类。定义的异常类。如何处理异常如何处理异常o异常类结构异常类结构o检测异常检测异常o在在ASP.NET中处理未处理异常中处理未处理异常异常类结构异常类结构创建自定义异常类创建自定义异常类public class CustomException:Applicati
33、onExceptionpublic class CustomException:ApplicationException 检测异常检测异常-try/catch/finallyC#C#try try/执行代码,有可能发生异常执行代码,有可能发生异常执行代码,有可能发生异常执行代码,有可能发生异常 catch(CustomException cex)catch(CustomException cex)catch(Exception ex)catch(Exception ex)finallyfinally /总是执行的代码,释放资源总是执行的代码,释放资源总是执行的代码,释放资源总是执行的代码,释放
34、资源 在在ASP.NET中管理未处理异常中管理未处理异常o配置web.config设置uu可以通过在可以通过在可以通过在可以通过在web.configweb.config中修改设置完成未处理异常中修改设置完成未处理异常中修改设置完成未处理异常中修改设置完成未处理异常的管理。示例代码如下:的管理。示例代码如下:的管理。示例代码如下:的管理。示例代码如下:customErrors defaultredirect=http:/hostname/error.aspx mode=on error statuscode=500 redirect=/errorpages/servererror.aspx/e
35、rror statuscode=404 redirect=/errorpages/filenotfound.htm/在在ASP.NET中管理未处理异常(续)中管理未处理异常(续)o处理页面级异常n n使用使用使用使用PagePage指令指令指令指令n n使用使用使用使用Page_ErrorPage_Error事件事件事件事件 Exception exc=Server.GetLastError();Exception exc=Server.GetLastError();/Perform logging,send any notifications,etc./Perform logging,sen
36、d any notifications,etc.在在ASP.NET中管理未处理异常(续)中管理未处理异常(续)处理应用程序级异常 /In global.asax file/In global.asax file protected void Application_Error(Object sender,EventArgs e)protected void Application_Error(Object sender,EventArgs e)Exception exc=Server.GetLastError();Exception exc=Server.GetLastError();/Per
37、form logging,send any notifications,etc./Perform logging,send any notifications,etc.解决方案解决方案p缓存实现缓存实现缓存实现缓存实现p异常处理实现异常处理实现异常处理实现异常处理实现缓存实现缓存实现数据访问基类数据访问基类C#C#public abstract class DALBasepublic abstract class DALBase protected static Cache Cache protected static Cache Cache get return HttpContext.Cu
38、rrent.Cache;get return HttpContext.Current.Cache;缓存实现缓存实现数据访问组件数据访问组件p通过访问基类的Cache属性来完成缓存。DataObject(true)DataObject(true)public class CategoriesDAL:DALBase public class CategoriesDAL:DALBase private const string CACHEKEY=private const string CACHEKEY=CacheKey_Categories;CacheKey_Categories;DataObje
39、ctMethod(DataObjectMethodType.Select)DataObjectMethod(DataObjectMethodType.Select)public CategoryDS Select(bool isCached)public CategoryDS Select(bool isCached)异常处理实现异常处理实现o自定义异常类o自定义日志类o在组件中捕获异常并使用自定义异常类和日志类自定义异常类自定义异常类C#C#public class ECommerceException:ApplicationExceptionpublic class ECommerceEx
40、ception:ApplicationException public ECommerceException()public ECommerceException()public ECommerceException(string message):public ECommerceException(string message):base(message)base(message)public ECommerceException(string message,Exception public ECommerceException(string message,Exception inner
41、Exception)innerException):base(message,innerException):base(message,innerException)自定义日志类自定义日志类C#C#public static class ECommerceLogpublic static class ECommerceLog private const string SECTION_EVENTLOG=private const string SECTION_EVENTLOG=eCommerce/eventLogConfig;eCommerce/eventLogConfig;private st
42、atic NameValueCollection _nvc=private static NameValueCollection _nvc=(NameValueCollection)ConfigurationManager.GetSection(NameValueCollection)ConfigurationManager.GetSection(SECTION_EVENTLOG);(SECTION_EVENTLOG);static ECommerceLog()static ECommerceLog()自定义日志类(续)自定义日志类(续)p在在Web应用配置文件中应该添加如下配置信息应用配置文
43、件中应该添加如下配置信息 section name=eventLogConfig PublicKeyToken=b77a5c561934e089,Custom=null/在组件中捕获异常并使用自定义异常类和日志类在组件中捕获异常并使用自定义异常类和日志类ppC#C#trytry/执行代码执行代码 catch(Exception ex)catch(Exception ex)string msg=string msg=新增类别失败新增类别失败:CategoriesDAL:AddNew();CategoriesDAL:AddNew();if(ECommerceLog.IsWriteToEventLog)if(ECommerceLog.IsWriteToEventLog)ECommerceLog.WriteEventLog(msg);ECommerceLog.WriteEventLog(msg);throw new ECommerceException(msg,ex);throw new ECommerceException(msg,ex);系统界面设计系统界面设计o系统的显示风格o系统版块划分o系统菜单、导航系统o界面布局外观系统o页面导航图系统数据库设计系统数据库设计o设计原则o设计分析