北京交通大学专业硕士学位论文 相关理论与技术
层是由ASP.NET的Web窗体和代码隐藏文件组成。Web窗体是用HTML标签和服务器控件组成供用户操作,后台代码文件实现各种控件的事件处理[13]。
(2)业务逻辑层
业务逻辑层也可以看作是“隔离层”,在这一层将处理餐饮管理系统中各种业务逻辑的实现,它将用户界面和各种业务功能的实现隔离开来。在这一层将会调用数据访问层的方法,方法的真正实现却在数据访问层。
(3)数据访问层
数据访问层,为业务逻辑层提供数据库访问服务,在这一层使用的是ADO.Net完成对数据库的访问。ADO.Net是一个基于标准的、面向创建分布式数据共享应用程序的编程模型。ADO.Net包含了许多类,可以通过这些类来访问数据库,这些类位于.Net Class Library(类库)中,可以被任何基于.Net设计的应用程序使用。
(4)业务实体层
实体层即数据库表类,即由数据库中的表抽象出来的类,也叫实体类。在SQL Server 2008中的表,每一个字段其实就是一种抽象,一个共同点,具体的每一条记录就是一个具体的实例,实体类主要作为数据的载体,在各个层之间进行传递
整个解决方案各逻辑层之间的引用关系如图2-3所示:
图2-3 逻辑层引用关系
Fig.2-3 Relationship of Logic Layer
通过上述的讲解和分析,得知餐饮管理系统主要是用三层架构来实现的,当然任何一项技术和方法都有其自身的优点与缺点,三层架构自然也不例外,以下作者简单的介绍以下三层的优点与缺点[14]:
(1)三层架构的优点
1)项目的开发人员可以只用关心自己所负责的那一层。 2)使用三层架构,可以降低层与层之间的依赖性。 3)有利用建立同一的开发标准。
8
北京交通大学专业硕士学位论文 相关理论与技术
4)各个层之间的逻辑可以复用。
5)三层架构中,不同的层负责的任务不同,例如:数据访问层采用动态链接字符串来表示数据库服务器的名称,当需要切换不同类型的数据库时,只需修改链接字符串的配置就可以切换到不同的数据库。这样就加大了程序的可拓展性。
6)安全性高。用户端只能通过逻辑层来访问数据层,减少了入口点,把很多危险的系统功能都屏蔽了。
7)项目结构更清楚,分工更明确,有利于后期的维护和升级 (2)三层架构可能存在的问题
1)因为在三层里,从数据库中访问到数据需要一层一层的往表示层传递,供客户使用所以,速度有所减慢,如果没有这么多层的传递,直接访问数据库得到相应的数据,系统整体性能会高一些。
2)在三层架构里,方法的调用时一层依赖一层的,这样的话,其中某一层的方法发生改变,将会导致相关联的各层都需要修改,这样就会造成相关联的修改,从而增加了代码量,增加了工作量。
2.3 项目数据平台
数据库可以把它形象的理解为存储数据的“仓库”,数据库是为了满足实现一个项目时,不同的用户对应不同的需要时,将所需的数据按照一定的数据模型在计算机系统中组织、存贮和使用的互相关联的数据集合[15]。
数据库是管理具有量大、持久、稳定、共享等特点的数据的工具。关系型数据库管理系统的标准语言是SQL,通过SQL语句的编写,可以对数据进行各种操作,目前许多关系型数据例如:Oracle、Microsoft SQL Server、IBM DB2都采用了SQL语言的标准。
标准的SQL命令有增加(Insert)、删除(Delete)、修改(Update)、查徇(Select),通过这些命令基本上可以实现对数据的所有操作。要根据项目的需要,选择适合自己的数据库平台,选择数据库平台时,可以考虑以下几个因素:
(1)性能:数据库处理数据的效率是否满足项目的需要。 (2)开放性:数据库是否能在不同的操作系统下使用。 (3)安全性:存放在数据库中信息是否安全。 (4)并行性:数据库是否可以在多节点上并行运行。 (5)可操作性:在使用数据库前是否需要复杂的培训。
鉴于对以上因素的考虑和根据项目的需要,以及对SQL Server 2008与DB2、Oracle数据库进行了对比,对比结果如表2-1所示:
9
北京交通大学专业硕士学位论文 相关理论与技术
表2-1 数据库比较表 Table 2-1 Database Comparison
数据库名称 SQL Server 2008
可伸缩性、并行性
同步实施和一起存在的数据模型不是很成熟。处理用户数据的时
安全性 提供了更好的数据加密
性能
提高了性能,压缩了输出的日志流,以便
候,如用户越来越多,伸缩性有限 功能,更安全 使数据库镜像所要求
的网络宽带达到最小
DB2
DB2对数据库的管理进行了拓展、DB2通过ISO且将其布置在了多个节点的环境中,所以DB2对数据并行性的处理效率很好
Oracle 11g
Oracle通过平行服务器提升了Window NT的能力,在解决方案的提供是高性能和高伸缩性。
Oracle也通过了标准的最高认证
TPC-D和TPC-C两者的世界纪录保持者,性能算是最高的
标准的最高认证
如果要创建数据库或者在线处理事物,性能不错。
经过对比,餐饮管理系统(Catering Manage System)的开发采用的是Microsoft公司出品的SQL Server 2008,SQL Server 2008结构如图2-4所示:
图2-4 SQL Server 2008结构
Fig.2-4 Structure of SQL Server2008
SQL Server 2008具有以下特点[23]:
(1)信息的存贮比以前更加安全,SQL Server 2008可以加密数据文件和日志文件,不需要修改其它的程序,加完密防止未授权用户访问数据的,保证系统数
10
北京交通大学专业硕士学位论文 相关理论与技术
据的隐私和安全。
(2)SQL Server 2008还可以定义每一个数据库的审查规范,审查配置可以为每一个数据库作单独的制定。为指定对象作审查配置使审查的执行性能更好,对SQL Server2008的配置也会更加方便。
(3) SQL Server 2008基于Microsoft SQL Server 2005,并提供了更加值得信赖的数据库镜像平台,这个镜像平台包括的新特性有:
1)页面如果出现823和824错误,页面通过重新复制,从而达到自动修复的效果。
2)SQL Server 2008对输出的日志流进行压缩,从而使数据库镜像平台所要求的带宽也变小了。
2.4 项目开发技术与方法
本文作者以项目整体开发为出发点,站在技术应用的角度,为大家介绍整个项目开发过程中所用到的技术与方法。
2.4.1 ASP.NET技术
ASP.NET微软公司开发的技术,这项技术可以让嵌入到Web网页中的脚本可由Internet服务器运行的服务器端的脚本技术。ASP.NET由ASP发展而来的,因为传统的ASP具有:代码逻辑混乱,难于管理;代码的可重用性差;弱类型造成的潜在出错的可能,所以,ASP.NET在这种情况下应运而生。
ASP.NET不仅解决了现有开发环境造成的许多问题,而且提供了强大的可扩展性,同时也带来了强大的工具(Visual Studio 2010开发环境)支持[16]。
ASP.NET是用于构建 Web 应用程序的一个完整的框架。这个模型的主要特性之一是选择编程语言的灵活性。ASP.NET通过脚本语言例如:JavaScript等以及开发语言例如:VB、C#等。
有一个公用的语言运行环境(CLR)可以供这个新的框架使用;在这个新的语言环境中系统所采取的开发语言会先被翻译成能够识别中间语言代码,然后在新的语言环境中去执行代码,这个新的框架,具有OOP的编程思想,因此其具有封装、继承和多态的特点。
除了编程语言和方法之外,当使用ASP.NET编程时,还可以使用ODBC(Open Database Connectivity,开放数据库互连)来对数据库做集成;因为ODBC 提供了同一的可以访问数据库的函数。 餐饮管理系统采用Asp.net主要因为ASP.NET
11
北京交通大学专业硕士学位论文 相关理论与技术
具有以下一些优点[17]:
(1)强大的工具支持
ASP.NET框架对Visual Studio集成开发环境中的工具箱进行了大量的补充。所见即所得编辑、轻松的拖放布置服务器控件为程序的开发带了极大的方便
(2)良好的性能
与ASP不同,ASP.NET实时编译、绑定、本机优化等特点,提高了代码编写之前的性能,它是在服务器端运行的,而且Asp.net已经是编译好了的公共代码。
(3)灵活性
由于ASP.NET是已经编译好了的服务器端的代码,所以 Web 应用开发者,可以很好的运用ASP.NET这个平台的灵活性。ASP.NET和其开发语言无关,所以可以选择最适合程序开发的语言,或者跨多种语言分布式应用程序。
(4)可管理性
ASP.NET采用了在文本基础之上,分层次来配置的系统,使设置在服务器方面的应用和在Web应用程序方面的应用操作变得简单化。因为其程序的配置信息是以文本的形式存在的,所以即使是没有本地管理工具的帮助,也可以设置新的应用程序。
这种“本地管理为零”的思想,也在ASP.NET框架应用程序的部署中得以应用。这样的话仅仅需要把一些必要的文件Copy到服务器端,就可以将 ASP.NET在服务器端部署ASP.NET框架的应用程序。不需要将服务器重新运行,哪怕是在部署或者在替换在运行的编译代码。
(5)简易性
ASP.NET可以很容易的执行常见的任务,不管是窗体的提交、还是身份在客户端的验证,以及站点的部署。
例如,ASP.NET框架使您可以生成将应用程序逻辑与表示代码清楚分开的用户界面,和在类似 Visual C# 的简单窗体处理模型中处理事件。另外,公共语言运行库,利用托管代码服务(如自动引用计数和垃圾回收)简化了开发。
2.4.2 AJAX
AJAX是指异步的JavaScript 及 XML(Asynchronous JavaScript And XML)的结合[18],它是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术,AJAX的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5.0中首次引入,它是一种支持异步请求的技术。
简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理
12