第一章系统开发工具及开发平台
2.1 开发工具简介
2.1.1 关于ASP.NET
ASP.NET是一种用于创建基于Web的应用程序的编程模型。从本质上来说,运行时和.NET Framework类库集可以用于创建动态Web页。它需要在Web服务器的环境中运行,例如Microsoft Internet Information Server(Microsoft 互联网信息服务器,IIS),并且根据服务浏览器请求指示在服务器上执行程序。与直接由Web服务器提供的静态HTML不同的是,ASP.NET页面实际上是在服务器上执行以后再产生结果的。页面的最后生成也许是由许多不同的指令和/或数据源构造的。
ASP.NET页面以.aspx扩展名存储。页面由程序员将文本、标记(例如HTML)以及ASP.NET特定服务器标记和脚本组合在一起,然后存储在Web服务器上。可以将存储后的ASP.NET页面看成是一套描述如何创建一个HTML页面的指令。当该页面被请求浏览时,服务器端程序将会用纯标记来创建一个客户端浏览器可以读懂并能呈现(render)的页面。因为呈现后的输出是纯标记,所以任何浏览器都能够读懂;所有的动态过程都发生在Web服务器端。ASP.NET特定服务器标记非常强大,例如,它可以对用户的动作作出反应,连接至数据存储以及自动创建非常复杂的HTML结构。
正像前面提到的那样,ASP.NET只是.NET Framework的一部分,所以 ASP.NET 页面可以利用这个框架提供的所有服务,包括连网、数据访问、安全以及更多其他服务。因为ASP.NET可以使用所有这些服务,所以相比以前,能够创建更加丰富的Web应用程序。只需花少量的时间来构建所有应用程序所需的构建块,而将大多数时间用在应用程序独有的特殊逻辑上。
ASP.NET还在Web编程中引入了一些独特的新技术,可以在典型的动态服务器页面(Active Server Pages,ASP)上极大地改善开发模式:
语言独立性——因为ASP.NET是.NET Framework的一部分,所以可以使用您自己选择的语言来构建ASP.NET应用程序,例如C#、VB或J#。而典型的ASP 则仅限于JScript或者VBScript页面。
编译而不是解释——与典型的ASP在每一次页面请求时都解释编程结构不同,ASP.NET在服务器端动态地将页面编译成可以运行得非常快的本机编程指令。可以很明显地看到典型的ASP页面的性能与相同ASP.NET页面的性能之间相差的数量级别。
事件驱动编程模式——在典型的ASP中,页面总是以自顶向下的线性方式执行,并且HTML标记常常与程序指令混合在一起。任何一个有一定ASP经验的人都知道这样会使得页面难以阅读,甚至更加难以维护。ASP.NET引入了事件驱动模型,这个模型允许您将代码与标记内容分离,将代码并入处理专门任务的有意义的单元中,例如响应客户端的按钮单击动作。这个类似VB的事件模型极大地提高了页
面的可读性和可维护性。
服务器控件——典型的ASP需要动态地将HTML片断代码接合在一起呈现,这样做的结果就是在应用程序中一遍又一遍地编写相同的代码(您需要多少次才能从数据库查询中构建一张表格)。ASP.NET带给Web编程的一个最大的好处就是能够将公共的呈现和行为封装成服务器控件(server control),可以在应用程序中很方便地重复使用。就像HTML标记一样,服务器控件以声明的形式创建,但是表现为一个位于服务器端的可编程对象,它可以与代码进行交互并输出定制的动态HTML呈现。ASP.NET包含了大约80多个服务器控件,这些控件封装了从标准表单元素到复杂控件(如网格和菜单)的所有内容。
控件设计时间的改善(当使用Visual Web Developer时)——开发人员通过使用设计时间界面可以减少花费在开发复杂页面上的时间,这些界面包括敏捷任务面板、标签级导航栏和可以设置控件属性的向导。
ASP.NET的第一个版本(1.0和 1.1)在2001年至2003年间迅速风靡了Microsoft的开发阵营。程序人员很快便感觉到他们通过使用强大和灵活的.NET Framework可以大大减少编码时间,而且CIO们也看到当程序员花在解决客户代码的疑难问题上的时间减少时,他们就可以将更多的资源投入到更高级的IT结构的改善上。ASP.NET确实是一个里程碑式的版本,它简化了开发人员的工作。
但是,就在第一个版本发布之前,Microsoft的ASP.NET小组就已经在为开发ASP.NET 2.0而工作了。他们以下面雄心勃勃的目标来开始他们的工作:
1)使创建一个典型的Web应用程序所需代码行数减少70%。
2)提供一套可扩展的应用程序服务,用来为通用应用程序任务提供构建块,例如成员、角、个人化以及导航等。
3)创建一系列基于任务的服务器控件,这些控件可以调节上述服务,交付完全、可定制的用户接口(UI),以最小的代码量来展示这些服务。
4)当与.NET Framework协同工作提供页面服务时,改善IIS的性能。
5)提供管理功能,以便加强ASP.NET服务器的部署、管理和运行。
6)改善宿主公司所用的工具,以便可以支持多站点并能够将开发人员的项目迁移至公共部署环境。
7)让ASP.NET的几乎所有特性都能够方便地扩展或者用定制的高级任务的执行替换。
基于以上的分析本系统采用asp的架构实现。
2.1.2 关于C#
C#语言源于C和C++,是微软专门为.NET设计的语言。C#和.NET Framework 同时出现和发展。由于C#出现较晚,吸取了许多其他语言的优点,解决了许多问题。简单的看来,C#仅仅是.NET开发的一种语言。但事实上C#是.NET开发中最好的一门语言,这是由C#自身的设计决定的。作为专门为.NET设计的语言,C#不但结合了C++强大灵活和Java语言简洁的特性,还吸取了Delphi和Visual Basic所具有的易用性。因而C#是一种使用简单,功能强大,表达力丰富的全新语言。应用C#,可以进行Windows应用程序、Windows控件库、Web应用程序、Windows服务、Web服务、报表应用程序、Office等开发。同时,C#还具有大多数程序员所需要的特性:功能强大、语法简单、文档齐全、支持良好。
相对于其他编程语音,Java有一个无庸置疑的优点:用户以及编译器第一次不必了解生成可执行代码的特定CPU细节。Java引入了一个编译代码中间层,叫做字节代码,并使用一个虚拟抽象的机器,而不是一个真实的机器。当Java编译器结束了一个源文件的编译后,你所得到的不是可以立即在一个给定平台上运行的代码,而是可以在任何真实的平台上运行的字节代码,唯一的条件就是这个平台要理解和支持Java。这些发展包含着一个文化的变革。作为一个开发人员,你只需要确定Java虚拟机(JVM)提供的抽象层,不同的OS销售商负责执行代码层,从而将中立于平台的字节代码映射到主机平台的机构中。在这种情况下,Java似乎是统一分布式计算机世界的领袖候选人了。“编写一次,永远运
行”(并且无论在哪里)一度成为Java诱人但却真实的口号。那么为什么说Java只是“似乎”是一个好东西呢?跨平台理论的发展很好地证明了这一点。我们看到,将Java代码从一个平台移植到另一个平台—Java这个语言最重要和最受吹捧的特点—并不象宣传的那样容易。任何Java平台都有其自己的虚拟机,它可以理解通用的字节代码,并且及时地将其编译为本地代码。矛盾由此产生,不同虚拟机的执行也很不相同,这一点足以使代码的移植比预期耗费多得多的时间,而且基本上不是自动的。那么,Java模型的好处在哪里呢?首先,Java是一种先进的、面向对象的语言,包含了预防常见错误的内置功能,并在仅仅一两个对象中携带了许多经常需要用到的功能。与C++相比,Java更易于读写,不容易出错,而且更加美观,但是它速度较慢也不太灵活。想实现在任何软件和硬件平台上都可虚拟移植,Java尽可能少地使用了公分母模型,也就是说放弃了将每个平台开发到极限的能力。第二,虚拟机的概念本身就是可移植和可共用的,因此对于分布式环境来说是理想的。Java对于为非Windows平台开发代码是最好的语言。那么对于Windows平台来说,Java又怎么样呢?让Java适应Windows 是不可能的,这是由于Sun的许可约束问题。但是Java实在是太吸引人了,Microsoft比谁都能更清楚这一点。因此,Microsoft又一次采取了“拿来主义”的手法,很好地利用了Java 的众多特性,隆重推出了Windows平台的新锐力量,它就是相当简单但十分强大的面向对象的C#编程语言。C#超过了C++,它天生就
包含了.NET框架类库中的所有类,并使语法简单化。可以说,Java具备的优点,C#都可以或者都将具备。
C# 是.NET的关键性语言,它是整个.NET平台的基础。与C#相比,.NET所支持的其它语言显然是配角身份。比如,VB.NET的存在主要是对千万个VB开发人员的负责。对于JScript.NET和 Managed C++ 也同样可以这么说,后者只是增加了调用.NET类的C++ 语言。C#是唯一没有在设计思路中加入了前辈语言某种遗传的新事物。.NET平台将 C#作为其固有语言,重温了许多Java的技术规则。C#中也有一个虚拟机,叫做公用语言运行环境(CLR),它的对象也具有同样的层次。但是 C#的设计意图是要使用全部的Win32 API甚至更多。由于C#与Windows的体系结构相似,因此 C# 很容易被开发人员所熟悉。
Java的目的是要拯救分布式计算世界,C# 则不同。C#本质上是C++的进化产物,使用了包括声明、表达式及操作符在内的许多C++特征,但是 C#还有更多的增强功能,比如类型安全(type-Safe)、事件处理、碎片帐集、代码安全性等。
asp查看源码配置ui鉴于C#强大的功能合易用性,本系统选择C#语言而不是java,VB.Net等其他语言。
2.1.3 Visual Studio 2005介绍
Visual Studio是微软公司出品的一款大型应用软件,从最初的Visual Studio 97开始就成为编程的重要工具。Visual Studio的开发经历了Visual Studio 97,Visual Studio 6.0,Visual Studio.NET(2002),Visual Studio.NET 2003,Visual Studio 2005。进行.NET开发的工具并非只有Visual Studi
o,最常见的如Windows自带的记事本实用程序也可以实现.NET程序开发。事实上Visual Studio成为了.NET开发的首选工具Visual Studio是一套完整的开发工具集,包含了大量的功能。它主要用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C++、Visual C# 和Visual J# 全都使用相同的集成开发环境(IDE)。利用此IDE可以共享工具且有助于创建混合语言解决方案,使程序可以使用不同的语言共同开发。另外,这些语言利用了.NET Framework的功能,通过此框架可使用简
ASP Web应用程序和XML Web Services开发的关键技术。
Visual Studio 2005的集成开发环境中为开发人员提供了大量的实用工具以提高工作效率。这些工具包括了自动编译、项目创建向导、创建部署工程等等。Visual Studio 2005还包括许多非常实用的功能。相比较于Visual Studio 2003,Visual Studio 2005不仅仅是在.NET版本的支持上发生了变化,其在许多方面都提供了改进乃至全新的功能。Visual Studio 2005的新增功能集中在以下几个方面:
1)开发环境中的新增功能。
2)代码编辑中的新增功能。
3)项目、解决方案和项中的新增功能。
4)生成、测试和部署中的新增功能。
为了充分利用新技术,我们采用Visual Studio 2005。
2.2 数据库平台
SQLServer是美国Microsoft公司推出的一种关系型数据库系统。SQLServer是一个可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。
其主要特点如下:
①.高性能设计,可充分利用WindowsNT的优势。
②.系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。
③.强壮的事务处理功能,采用各种方法保证数据的完整性。
④.支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。 SQLServer 以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系
统集成商提供了一个出众的数据库平台。Access 2000是一种关系数据库管理系统软件,它是Microsoft公司推出的办公自动化系列软件Office 2000的组件之一。其主要特点如下:
①.完善地管理各种数据库对象,具有强大的数据组织、用户管理、安全检查等功能。
②.强大的数据处理功能,在一个工作组级别的网络环境中,使用Access开发的多用户数据库管理系统具有传统的XBASE(DBASE、FoxBASE的统称)数据库系统所无法实现的客户服务器(Cient/Server)结构和相应的数据库安全机制,Access具备了许多先进的大型数据库管理系统所具备的特征,如事务处理/出错回滚能力等。
③.可以方便地生成各种数据对象,利用存储的数据建立窗体和报表,可视性好。
④.作为Office套件的一部分,可以与Office集成,实现无缝连接。
⑤.能够利用Web检索和发布数据,实现与Internet的连接。 Access主要适用于中小型应用系统,或作为客户机/服务器系统中的客户端数据库。
(2) 方案比较:
SQL是目前使用最广泛的数据库语言, SQL Server 2005 是Microsoft 公司推出的SQL Server 数据库
管理系统的最新版本该版本继承了SQL Server 2000 版本。SQL Server 2005包含以下特性:易安装性、部署和使用、良好的可扩展性、支持数据仓库、可以与其他服务器软件进行系统集成。数据仓库是一种经过特殊组织的数据库,它可以支持灵活的数据集查询,并且可以支持对结果集的决策分析。数据仓库中通常包含表示企业历史业务的数据。
所以,在此次的设计中,我们采用的是SQL Server 2005。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论