拍卖网网站设计说明书概要.docx
《拍卖网网站设计说明书概要.docx》由会员分享,可在线阅读,更多相关《拍卖网网站设计说明书概要.docx(15页珍藏版)》请在冰豆网上搜索。
![拍卖网网站设计说明书概要.docx](https://file1.bdocx.com/fileroot1/2023-1/30/46e7a170-0fda-4573-a4bc-ce9ea05fbeeb/46e7a170-0fda-4573-a4bc-ce9ea05fbeeb1.gif)
拍卖网网站设计说明书概要
拍卖网网站设计说明书
(技术架构)
Microsoft.NET简介:
2000年6月,Microsoft公司发布了它的.NET(读作“dot-net”)计划。
.NET平台对早期的开发平台作了重大改进。
.NET提供了一种新的软件开发模型,它允许用不同程序设计语言创建的应用程序能相互通信。
这个平台也允许开发者创建基于Web的应用程序,这些应用程序能够发布到多种不同的设备(甚至是无线电话)和台式机上。
Microsoft的.NET计划为利用Internet和Web进行软件的开发、设计和使用开辟了广阔的新前景。
.NET策略的一个主要方面是它与具体的语言或平台无关。
它不需求程序员使用惟一的一种程序设计语言。
程序员可以将多种与.NET兼容的语言结合起来开发.NET应用程序。
多个程序员可以共同参与同一个软件项目,每个人可以使用自己最精通的.NET语言(如VisualC++.NET、C#、VisualBasic®和其他许多语言)来编写代码。
.NET体系结构的一个主要组件是Web服务,它是通过Internet向客户端开放其功能的应用程序。
客户端和其他应用程序可以将这些Web服务作为可重用的构件块。
Web服务扩展了软件重用的概念。
程序员不必实现每一个应用程序的每一个组件,而只需将注意力放在自己所开发的这一部分上。
面向对象的程序设计方法已经很流行,因为它能让程序员利用预先包装好的组件方便地创建应用程序。
同样,程序员可以利用Web服务为数据库、安全性、身份验证、数据存储和语言翻译创建应用程序,而无需知道这些组件的内部细节。
通用数据访问(Universaldataaccess)是.NET的另外一个基本概念。
如果一个文件有两份副本(例如,一份在个人的计算机上,另一份则在公司的计算机上),旧版本必须经常更新,这称为文件同步。
如果两个文件不同,那么它们就不同步。
这种状态容易导致错误。
我们可利用.NET将数据存放在中间位置,而不是存放在各个分离的系统上。
任何连接到Internet上的设备都可以访问这些数据(当然要在严格的控制之下)。
为了在这些访问设备上能正确使用和显示,这些数据可以重新编排格式。
因此,同样一个文件可以在台式机、PDA、无绳电话或其他设备上进行浏览和编辑。
用户不必对信息进行同步,因为中间位置的信息会及时更新。
.NET平台构成
ASP.NET简介:
ASP.net不仅仅是ActiveServerPage(ASP)的下一个版本,而且是一种建立在通用语言上的程序构架,能被用于一台Web服务器来建立强大的Web应用程序。
ASP.net提供许多比现在的Web开发模式强大的的优势。
执行效率的大幅提高
ASP.net是把基于通用语言的程序在服务器上运行。
不像以前的ASP即时解释程序,而是将程序在服务器端首次运行时进行编译,这样的执行效果,当然比一条一条的解释强很多。
世界级的工具支持
ASP.net构架是可以用Microsoft(R)公司最新的产品VisualS开发环境进行开发,WYSIWYG(WhatYouSeeIsWhatYouGet所见即为所得)的编辑。
这些仅是ASP.net强大化软件支持的一小部分。
强大性和适应性
因为ASP.net是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。
通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。
ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript。
将来,这样的多种程序语言协同工作的能力保护您现在的基于COM+开发的程序,能够完整的移植向ASP.net。
简单性和易学性
ASP.net是运行一些很平常的任务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。
例如ASP.net页面构架允许你建立你自己的用户分界面,使其不同于常见的VB-Like界面。
另外,通用语言简化开发使把代码结合成软件简单的就像装配电脑。
高效可管理性
ASP.net使用一种字符基础的,分级的配置系统,使你服务器环境和应用程序的设置更加简单。
因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。
这种被称为"ZeroLocalAdministration"的哲学观念使A的基于应用的开发更加具体,和快捷。
一个ASP.net的应用程序在一台服务器系统的安装只需要简单的拷贝一些必须得文件,不需要系统的重新启动,一切就是这么简单。
多处理器环境的可靠性
ASP.net已经被刻意设计成为一种可以用于多处理器的开发工具,它在多处理器的环境下用特殊的无缝连接技术,将很大的提高运行速度。
即使你现在的ASP.net应用软件是为一个处理器开发的,将来多处理器运行时不需要任何改变都能提高他们的效能,但现在的ASP确做不到这一点。
自定义性,和可扩展性
ASP.net设计时考虑了让网站开发人员可以在自己的代码中自己定义"plug-in"的模块。
这与原来的包含关系不同,ASP.net可以加入自己定义的如何组件。
网站程序的开发从来没有这么简单过。
安全性
基于Windows认证技术和每应用程序配置,你可以确性你的原程序时绝对安全的。
ASP.NET是一个已编译的、基于.NET的环境,把基于通用语言的程序在服务器上运行。
将程序在服务器端首次运行时进行编译,比ASP即时解释程序速度上要快很多.而且是可以用任何与.NET兼容的语言(包括VisualBasic.NET、C#和JScript.NET.)创作应用程序。
另外,任何ASP.NET应用程序都可以使用整个.NETFramework。
开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
ADO.NET简介:
ADO.NET由MicrosoftActiveXDataObjects(ADO)改进而来,它提供平台互用和可收缩的数据访问功能。
由于XML(ExtensibleMarkupLanguage,可扩展标示语言)是用于进行数据传送的格式,任何可以读取XML格式的应用程序都可以对数据进行处理。
实际上,接收组件根本不需要ADO.NET组件。
它可以是基于MicrosoftVisualStudio的解决方案或在任何平台上运行的任何应用程序。
可编程能力
利用VisualStudio.NET,你可以对你的对象进行编程,而不是对表格和列进行编程。
ADO.NET使用了突出显示商务对象的强类型(stronglytyped)编程技术。
使用数据集
使用ADO.NET的任何软件解决方案的中心都是数据集。
数据集是内存中的数据库数据的副本。
一个数据集包括许多数据表,每个数据表一般都对应一个数据库表格或视图。
一个数据集组成了一个"断开的"数据库数据的视图。
说得更精确些,数据集存在于内存中,没有到包含相应表格或视图的数据库的活动的连接。
这种断开的体系结构在读写数据库时,只使用数据库服务器资源,从而具有更大的可收缩性。
运行时,数据从数据库传递给中间层商务对象,然后将其继续传递给用户界面。
为了适应数据ADO的交换,ADO.NET使用了一种基于XML的暂留和传输格式。
说得更精确些,为了将数据从一层传送给另一层,ADO.NET解决方案以XML格式表示内存数据(数据集),然后将XML发送给另一个组件。
下面的插图显示了一个ADO.NET解决方案的主要组件。
ADO.NET的体系结构
C#简介:
C#是一种简洁、类型安全的面向对象的语言,开发人员可以使用它来构建在.NETFramework上运行的各种安全、可靠的应用程序。
使用C#,您可以创建传统的Windows客户端应用程序、XMLWebservices、分布式组件、客户端-服务器应用程序、数据库应用程序以及很多其他类型的程序。
MicrosoftVisualC#2005提供高级代码编辑器、方便的用户界面设计器、集成调试器和许多其他工具,以在C#语言版本2.0和.NETFramework的基础上加快应用程序的开发。
C#语法表现力强,只有不到90个关键字,而且简单易学。
C#的大括号语法使任何熟悉C、C++或Java的人都可以立即上手。
了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用C#高效地工作。
C#语法简化了C++的诸多复杂性,同时提供了很多强大的功能,例如可为空的值类型、枚举、委托、匿名方法和直接内存访问,这些都是Java所不具备的。
C#还支持泛型方法和类型,从而提供了更出色的类型安全和性能。
C#还提供了迭代器,允许集合类的实现者定义自定义的迭代行为,简化了客户端代码对它的使用。
作为一种面向对象的语言,C#支持封装、继承和多态性概念。
所有的变量和方法,包括Main方法(应用程序的入口点),都封装在类定义中。
类可能直接从一个父类继承,但它可以实现任意数量的接口。
重写父类中的虚方法的各种方法要求override关键字作为一种避免意外重定义的方式。
在C#中,结构类似于一个轻量类;它是一种堆栈分配的类型,可以实现接口,但不支持继承。
除了这些基本的面向对象的原理,C#还通过几种创新的语言结构加快了软件组件的开发,其中包括:
封装的方法签名(称为委托),它实现了类型安全的事件通知。
属性(Property),充当私有成员变量的访问器。
属性(Attribute),提供关于运行时类型的声明性元数据。
内联XML文档注释。
在C#中,如果需要与其他Windows软件(如COM对象或本机Win32DLL)交互,可以通过一个称为“Interop”的过程来实现。
互操作使C#程序能够完成本机C++应用程序可以完成的几乎任何任务。
在直接内存访问必不可少的情况下,C#甚至支持指针和“不安全”代码的概念。
C#的生成过程比C和C++简单,比Java更为灵活。
没有单独的头文件,也不要求按照特定顺序声明方法和类型。
C#源文件可以定义任意数量的类、结构、接口和事件。
C#程序在.NETFramework上运行,它是Windows的一个必要组件,包括一个称为公共语言运行时(CLR)的虚拟执行系统和一组统一的类库。
CLR是Microsoft的公共语言基础结构(CLI)的一个商业实现。
CLI是一种国际标准,是用于创建语言和库在其中无缝协同工作的执行和开发环境的基础。
用C#编写的源代码被编译为一种符合CLI规范的中间语言(IL)。
IL代码与资源(如位图和字符串)一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展名为.exe或.dll。
程序集包含清单,它提供关于程序集的类型、版本、区域性和安全要求等信息。
执行C#程序时,程序集将加载到CLR中,这可能会根据清单中的信息执行不同的操作。
然后,如果符合安全要求,CLR执行实时(JIT)编译以将IL代码转换为本机机器指令。
CLR还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。
由CLR执行的代码有时称为“托管代码”,它与编译为面向特定系统的本机机器语言的“非托管代码”相对应。
下图演示了C#源代码文件、基类库、程序集和CLR的编译时与运行时的关系。
语言互操作性是.NETFramework的一个关键功能。
因为由C#编译器生成的IL代码符合公共类型规范(CTS),因此从C#生成的IL代码可以与从VisualBasic、VisualC++、VisualJ#的.NET版本或者其他20多种符合CTS的语言中的任何一种生成的代码进行交互。
单一程序集可能包含用不同.NET语言编写的多个模块,并且类型可以相互引用,就像它们是用同一种语言编写的。
Web2.0简介:
Web2.0,是相对Web1.0(2003年以前的互联网模式)的新的一类互联网应用的统称,是一次从核心内容到外部应用的革命。
由Web1.0单纯通过网络浏览器浏览html网页模式向内容更丰富、联系性更强、工具性更强的Web2.0互联网模式的发展已经成为互联网新的发展趋势。
Web1.0到Web2.0的转变,具体的说,从模式上是单纯的“读”向“写”、“共同建设”发展;由被动地接收互联网信息向主动创造互联网信息迈进!
从基本构成单元上,是由“网页”向“发表/记录的信息”发展;从工具上,是由互联网浏览器向各类浏览器、rss阅读器等内容发展;运行机制上,由“ClientServer”向“WebServices”转变;作者由程序员等专业人士向全部普通用户发展;应用上由初级的“滑稽”的应用向全面大量应用发展。
Jquery简介:
随着WEB2.0及ajax思想在互联网上的快速发展传播,陆续出现了一些优秀的Js框架,其中比较著名的有Prototype、YUI、jQuery、mootools、Bindows以及国内的JSVM框架等,通过将这些JS框架应用到我们的项目中能够使程序员从设计和书写繁杂的JS应用中解脱出来,将关注点转向功能需求而非实现细节上,从而提高项目的开发速度。
jQuery是继prototype之后的又一个优秀的Javascript框架。
它是由JohnResig于2006年初创建的,它有助于简化JavaScript™以及Ajax编程。
有人使用这样的一比喻来比较prototype和jQuery:
prototype就像Java,而jQuery就像ruby.它是一个简洁快速灵活的JavaScript框架,它能让你在你的网页上简单的操作文档、处理事件、实现特效并为Web页面添加Ajax交互。
它具有如下一些特点:
1、代码简练、语义易懂、学习快速、文档丰富。
2、jQuery是一个轻量级的脚本,其代码非常小巧,最新版的JavaScript包只有20K左右。
3、jQuery支持CSS1-CSS3,以及基本的xPath。
4、jQuery是跨浏览器的,它支持的浏览器包括IE6.0+,FF1.5+,Safari2.0+,Opera9.0+。
5、可以很容易的为jQuery扩展其他功能。
6、能将JS代码和HTML代码完全分离,便于代码和维护和修改。
7、插件丰富,除了jQuery本身带有的一些特效外,可以通过插件实现更多功能,如表单验证、tab导航、拖放效果、表格排序、DataGrid,树形菜单、图像特效以及ajax上传等。
jQuery的设计会改变你写JavaScript代码的方式,降低你学习使用JS操作网页的复杂度,提高网页JS开发效率,无论对于js初学者还是资深专家,jQuery都将是您的首选。
jQuery适合于设计师、开发者以及那些还好者,同样适合用于商业开发,可以说jQuery适合任何JavaScript应用的地方,可用于不同的Web应用程序中。
MSSQL2005简介:
SQLServer是一个关系数据库管理系统。
它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本。
在WindowsNT推出后,Microsoft与Sybase在SQLServer的开发上就分道扬镳了。
Microsoft将SQLServer移植到WindowsNT系统上,专注于开发推广SQLServer的WindowsNT版本。
Sybase则较专注于SQLServer在UNIX操作系统上的应用。
SQLServer2005,是Microsoft公司推出的SQLServer数据库管理系统的新版本。
该版本继承了SQLServer2000版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。
系统架构分析设计:
网站整体采用三层架构设计,从下至上分别为:
数据访问层、业务逻辑层、表示层,如图所示:
表示层UI
业务逻辑层BLL
数据访问层DAL
MSSQLDB
ORACALDB
……
数据访问层DAL:
主要是负责数据库的访问。
实现对数据表的操作,直接对数据进行底层交互,本系统中数据库访问层底层组件采用微软企业开发组“EnterpriseLibrary”的企业组件;对数据表的Insert、Update、Select、Delete等操作均通过组件调用数据库存储过程完成。
在数据访问层中,完全采用了“面向接口编程”思想。
抽象出来的IDAL模块,脱离了与具体数据库的依赖,从而使得整个数据访问层利于数据库迁移。
DALFactory模块专门管理DAL对象的创建,便于业务逻辑层访问。
SQLServerDAL和OracleDAL模块均实现IDAL模块的接口,其中包含的逻辑就是对数据库的Select,Insert,Update和Delete操作。
因为数据库类型的不同,对数据库的操作也有所不同,代码也会因此有所区别。
网站中采用SQLServerDAL层。
架构图如下:
在系统中,系统需要处理的数据库对象分为两类:
一是数据实体,对应数据库中相应的数据表。
它们没有行为,仅用于表现对象的数据。
这些实体类都被放到Model程序集中,例如数据表AdminMember(教师管理员)对应的实体类AdminMemberInfo,其类图如下:
这些对象并不具有持久化的功能,简单地说,它们是作为数据的载体,便于业务逻辑针对相应数据表进行读/写操作。
虽然这些类的属性分别映射了数据表的列,而每一个对象实例也恰恰对应于数据表的每一行,但这些实体类却并不具备对应的数据库访问能力。
由于数据访问层和业务逻辑层都将对这些数据实体进行操作,因此程序集Model会被这两层的模块所引用。
第二类数据库对象则是数据的业务逻辑对象。
一般意义上说,这些业务逻辑即为基本的数据库操作,包括Select,Insert,Update和Delete。
由于这些业务逻辑对象,仅具有行为而与数据无关,因此它们均被抽象为一个单独的接口模块IDAL,例如数据表Member对应的接口IMember:
将数据实体与相关的数据库操作分离出来,符合面向对象的精神。
首先,它体现了“职责分离”的原则。
将数据实体与其行为分开,使得两者之间依赖减弱,当数据行为发生改变时,并不影响Model模块中的数据实体对象,避免了因一个类职责过多、过大,从而导致该类的引用者发生“灾难性”的影响。
其次,它体现了“抽象”的精神,或者说是“面向接口编程”的最佳体现。
抽象的接口模块IDAL,与具体的数据库访问实现完全隔离。
这种与实现无关的设计,保证了系统的可扩展性,同时也保证了数据库的可移植性。
在本系统中,可以支持SQLServer,那么具体的实现就放模块SQLServerDAL中。
以Member为例,在SQLServerDAL模块中,实现了IMember接口,如图:
网站具体数据库库底层交互通过EnterpriseLibrary调用存储过程完成,如管理员Memer登陆时的底层调用代码:
考虑到数据库的可移植性,系统设计采用了“依赖注入”,“依赖注入”的功能通常是用专门的IoC容器提供的,在Java平台下,这样的容器包括Spring,PicoContainer等。
而在.Net平台下,最常见的则是Spring.Net。
不过,在本系统中,并不需要专门的容器来实现“依赖注入”,利用配置文件和反射功能来实现。
也就是说,我们可以在web.config文件中,配置好具体的Factory对象的完整的类名。
直接指向具体的数据库对象实现类,例如SQLServerDAL.IMember。
那么,抽象工厂模式中的相关工厂就可以简化为一个工厂类了,其类图如下:
代码如下图:
业务逻辑层BLL:
BLL是业务逻辑层的核心模块,它包含了整个系统的核心业务。
在业务逻辑层中,不能直接访问数据库,而必须通过数据访问层。
注意下图对数据访问业务的调用,是通过接口模块IDAL来完成的。
既然与具体的数据访问逻辑无关,则层与层之间的关系就是松散耦合的。
如果此时需要修改数据访问层的具体实现,只要不涉及到IDAL的接口定义,那么业务逻辑层就不会受到任何影响。
毕竟,具体实现的SQLServerDAL和OracalDAL根本就与业务逻辑层没有半点关系。
抽象出来的IDAL模块,除了解除了向下的依赖之外,对于其上的业务逻辑层,同样仅存在弱依赖关系,如下图所示:
BLL层访问数据库层DAL的代码如下图:
表示层UI:
系统的UI部分,负责使用者与整个系统的交互;表示层中的逻辑代码,仅与界面元素有关。
核心的业务逻辑都放到了一个模块BLL中,并没有将具体的实现和抽象严格的按照模块分开。
所以表示层和业务逻辑层之间的调用关系,其耦合度相对较高:
表示层调用业务逻辑层DLL代码图:
软件架构模式
MVC简介
MVC(Model-View-Controller,模型—视图—控制器模式)用于表示一种软件架构模式。
它把软件系统分为三个基本部分:
模型(Model),视图(View)和控制器(Controller)。
MVC由TrygveReenskaug提出,是XeroxPARC在20世纪80年代为程序语言Smalltalk-80发明的一种软件设计模式。
模型—视图—控
制器模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。
除此
之外此模式通过对复杂度的简化使程序结构更加直观。
软件系统通过对自身基本部份分离的同时也赋予了各个基本部分应有的功能。
专业人员可以通过自身的专长分组:
控制器-程序员编写程序应有的功能(实现算法等等)
视图-界面设计人员进行图形界面设计
模型-数据库专家进行数据管理和数据库设计
层次
模型(Model)“数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
“模型”有对数据直接访问的权利,例如对数据库的访问。
“模型”不依赖“视图”和“控制器”,也就是说,模型不关心它会被如何显示或是如何被操作。
但是模型中数据的变化一般会通过一种刷新机制被公布。
为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发生的改变。
视图(View)
视图层能够实现数据有目的的显示(理论上,这不是必需的)。
在视图中一般没有程序上的逻辑。
为了实现视图上的刷新功能,视图需要访问它监视的数据模型(Model),因此应该事先在被它监视的数据那里注册。
控制器(Controller)控制器起到不同层面间的组织作用,用于控制应用程序的流程。
它处理事件并作出响应。
“事件”包括用户的行为和数据模型上的改变。