datasnap2010教材.docx_第1页
datasnap2010教材.docx_第2页
datasnap2010教材.docx_第3页
datasnap2010教材.docx_第4页
datasnap2010教材.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自从Delphi 7之后, Delphi的发展之路可以说充满了坎坷,在Delphi 8一直到Delphi 2007四个版本, Delphi一直试图发展一个.NET版本,但是最终结果大家都知道了, 5年4个版本的心血投入,最后被忍痛抛弃,Delphi最终回到原生Windows应用程序开发的道路上来,但是毕竟蹉跎了宝贵的5年时间,这5年中,Delphi原生程序开发基本在Delphi 7的水平停滞不前。Delphi从一个从满灵气的天才工具堕落为一个事实上的二流开发工具。在2002年的时候,Delphi 7作为最优秀的Windows开发工具之一是当之无愧的,然后从此之后,Delphi世界似乎被定格在了Delphi 7,至今多数的Delphi项目依然是使用Delphi 7进行开发。Delphi 7之后,Delphi步入歧途,徒劳地试图进入.NET领域,原生Win32功能停滞不前,IDE的稳定性却又大幅度降低,无法获得Delphi原有用户群的青睐,相对而言,稳定和强大的Delphi 7,默默地为Delphi坚守阵地将近10年还依然在Windows开发工具当中占据一席之地,也不得不让人佩服Delphi 7之优秀。其实,从Delphi 2007开始,Delphi的原生Windows开发已经重回轨道,Delphi 2007一直到Delphi 2010每个版本,其进步都相当显著,如果您还是一个Delphi 7的使用者,那就让我们来回顾一下这几个版本的Delphi所带来的提高吧。Delphi 2007:应当说2007在稳定性方面,恢复到了Delphi 7水平,IDE功能相对于Delphi 7大幅度提高,提供了建模、重构等等高级功能,并且支持Vista软件开发,引入了DBX 4。相对而言,这是自Delphi 7以来首个重新取得实质进步的版本。Delphi 2009:在稳定的2007版的基础上,2009版引入了许多重大的改进,首先是VCL被重写以全面支持Unicode,其次是泛型的引入,还有抛弃了DCOM模式的全新DataSnap的引入,Delphi 2009可以被评价为一个革命性的版本。Delphi 2010:全面转向Unicode后的第二个版本,Unicode支持更稳定可靠,更多的第三方控件开始全面支持Unicode,支持微软Windows 7操作系统,更多现代优秀编程语言的元素:RTTI和Attribute的引入,另外新的datasnap也得到了全面升级,新的datasnap支持服务端方法调用和REST风格接口调用,通过新引入的RTTI功能,datasnap成为Delphi中首个轻量级框架。从2007版到2010版,Delphi一改之前每个版本都原地踏步甚至倒退的状态,每个版本的改进都是激动人心的,现在的Delphi或许不能算领先的工具,但至少可以说是一个现代的工具,可以实现许多先进开发思想的工具,而不再代表陈旧和保守了。如果您还是一个Delphi 7程序员,那么或许现在正是尝试升级到最新版本的Delphi 2010的好时机,首先Windows7渐入佳境,Delphi 2010支持Windows 7的众多新功能,新版本的datasnap完美地继承了Delphi传统的数据感知控件架构的优势,同时又具备了现代面向服务架构的先进理念,脱离了DCOM后的DataSnap性能和稳定性都比以前的MIDAS更高,HTTP模式和REST风格接口,使DataSnap可以为跨平台的各种客户端提供服务,轻量级的业务逻辑构建方法,使得DataSnap服务可以轻易移植到未来各种更强大的框架当中。本书将重点讲述Delphi 2010版本中的DataSnap三层应用程序开发,内容会覆盖三层开发的基础、进阶、高级构架、性能优化、移植迁移等等问题,对于本书的读者,我们假定您拥有基础的Delphi 7开发技能,懂得如何开发传统的C/S两层数据库应用程序,通过对本书的学习,我们将学会三层结构的目标、意义和实际开发技巧。第一个DataSnap三层应用系统所谓三层应用系统,它包括传统C/S结构中的客户端软件和业务数据库,但和C/S结构不同的是,它在两者中间有一个中间层服务程序,客户端并不直接连接到业务数据库,而是调用中间层程序的接口以实现数据操作。这样的好处是:保护业务数据库接口,客户端不直接访问业务数据库,使得即使客户端部署在外网上,业务数据库都不需要向外网暴露服务端口,这大幅度提高系统的安全性。封装业务逻辑,将业务逻辑封装在中间层,使得业务逻辑更改的时候不需要对大量的客户端进行重部署或升级操作,业务调整更方便容易,同时也减少客户端出错的机会。优化系统性能,在中间层可以实现许多优化逻辑,例如数据库连接共享、数据缓存等等,只要维持中间层的服务接口不变,可以再不改变客户端代码的情况下持续优化系统性能。下面我们以一个简单的例子开始我们的DataSnap学习之旅:我们将要开发一个DataSnap三层应用程序,该程序维护一个公司/员工的主从数据结构,可以之进行增改删查维护。我们首先从DataSnap中间层服务程序开始Delphi 2010提供了一些创建DataSnap服务程序的向导,我们首先从菜单File-New-Other打开新建项目对话框,从左侧树形分支中找到DataSnap类别这里提供了3个项目:DataSnap Server是创建独立的EXE形式的中间层服务程序,可以是窗口程序、控制台程序或者是Windows服务程序;DataSnap WebBroker Application则创建一个Web扩展程序,需要挂靠在IIS,Apache或者是WebAppDebugger等Web服务器上运行;ServerModule则是往已有的DataSnap工程中添加新的服务项目。笔者更推荐使用Web模式对外提供服务,所以我们选择中间的DataSnap WebBroker Applicaton开始创建我们的新工程。选择创建DataSnap WebBroker Application后,一个新的向导窗口被打开:向导提供三种项目类型选择:ISAPI/NSAPI动态连接库形式,该形式需要搭配IIS/Apache对外提供服务,这将是未来项目实际运行的主要形式;CGI Stand-alone executable,该形式为独立的CGI程序,性能方面相对会较低,可以适应更多的Web Server类型;Web App Debugger executable,该形式主要用于调试程序。这三种程序在开发完成后,依然可以通过简单的手段相互转换,所以我们第一步将使用Web App Debugger executable形式创建我们的第一个DataSnap示范程序。选择Web App Debugger executable后,在ClassName中输入Demo01,这相当于类似IIS中虚拟目录的概念,下面的选项我们保留不动,点OK完成向导。这时候Delphi将为您创建了一个带有3个源文件的项目(实际操作过程中初始的文件名或许会有所不同):其中的Unit4.pas是程序的主窗体,该文件带有如下代码:作用是向Web App Debugger注册程序的Web服务模块。Unit5.pas则是一个TWebModule类,用于提供实际的Web服务响应,该单元在几种DataSnap WebBroker Application中都是通用的,所以可以移植到其他形式的工程项目中。ServerMethodsUnit1.pas负责封装实际的业务逻辑,由于DataSnap属于轻量级的框架,所以用于实现业务逻辑的类,并不需要从任何特定类继承,也不需要实现任何特定接口,这使得这些业务逻辑代码将来可以很容易地被其他框架所利用。当前项目中用于实现业务逻辑的类继承自TDSServerModule,实际上开发者可以选择任何其他父类来实现业务逻辑。现在我们开始对初始源文件进行改名。将主窗口改名为Demo01MainForm,将源文件保存为Demo01MainFormUnit.pas;将WebModule改名为Demo01WebModule,将源文件保存为Demo01WebModuleUnit.pas;将ServerMethods1改名为Demo01Service,将源文件另存为Demo01ServiceUnit.pas;同时将工程另存为demo01.dproj。完成上述改名操作后,还有若干源码需要修改,打开Demo01WebModuleUnit.pas,可以看到两处语法错误:这是改名后造成的名字不匹配,我们将ServerMethodsUnit1修改为新名字Demo01ServiceUnit,将ServerMethodsUnit1.TServerMethods1改成Demo01ServiceUnit.TDemo01Service。现在保存项目,可以尝试编译一下确保编译成功。现在我们来开始尝试运行调试这个Web App Debugger模式下的DataSnap服务程序,Web App Debugger本身是一个调试用的Web Server,但它还需要另外一个ServerInfo.exe配合使用才可以正常工作,如果您是第一次使用Web App Debugger,您首先要做的就是在Delphi安装文件夹下的bin文件夹(例如:C:Program FilesEmbarcaderoRAD Studio7.0bin)里找到那个serverinfo.exe,并运行一次,以完成Web App Debugger的初始化工作。这操作只需要进行一次,以后其他使用Web App Debugger的项目不再需要如此。运行过后,我们在Delphi IDE里的Tools菜单里启动Web App Debugger,会出现窗口如下:现在可以运行Demo01.exe;Demo01.exe会自动向Web App Debugger注册,我们现在可以点击Web App Debugger里的Start按钮,再点击后面的连接打开浏览器:我们可以看到列表中的Demo01.Demo01就是我们刚刚运行的工程,点击Go我们可以打开我们的中间层服务程序的首页,当然上面除了显示一行DataSnap Server外什么也没有:但是我们依然有手段可以测试一下我们的中间层服务程序到底能否响应我们的服务请求,我们在地址栏输入以下URL:http:/localhost:8081/Demo01.Demo01/datasnap/rest/TDemo01Service/echostring/Hello World!我们刚才输入的URL代表了用REST风格访问我们服务器中的TDemo01Service服务类中的echostring方法并且传入Hello World!参数。我们打开Demo01ServiceUnit.pas,可以看到TDemo01Service.echostring方法的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论