第12章Web环境下VFP应用程序开发ppt课件.ppt_第1页
第12章Web环境下VFP应用程序开发ppt课件.ppt_第2页
第12章Web环境下VFP应用程序开发ppt课件.ppt_第3页
第12章Web环境下VFP应用程序开发ppt课件.ppt_第4页
第12章Web环境下VFP应用程序开发ppt课件.ppt_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

第12章Web环境下VFP应用程序开发 12 1Web应用系统的主要特点12 2Web应用程序的体系结构12 3建立Web应用程序的开发环境12 4ASP NET访问VFP数据库12 5使用ActiveX组件 2020 3 30 2 12 1Web应用系统的主要特点 Web应用系统的背景 早期的网络应用系统一般是基于Client Server 简称C S 结构的 即客户机 服务器结构 客户机 服务器结构在响应速度 方便客户机与服务器交互以及数据安全方面体现着优势 但在管理与维护 升级 平台变迁等方面缺乏灵活性 并且改造成本高 2020 3 30 3 73 12 1Web应用系统的主要特点 2 Web应用系统的特点 1 具有很强的开放性用户的电脑只需有浏览器并可以上网 就可以在任意时间 任意地点访问世界范围内的五彩缤纷的Web网站 2 提供了一致的用户界面Web应用软件都是基于Web浏览器的 虽然当今浏览器的种类很多 但界面和使用方法都很相似 用户入门变得非常简单 3 易于扩展由于系统提供的服务以及业务逻辑集中在服务器端完成 而且用户客户端与服务器端的连接通讯遵守的是通用的HTTP协议 使得Web应用软件平台无关性 所以基于B S结构的应用系统非常易于扩展 2020 3 30 4 73 12 1Web应用系统的主要特点 2 Web应用系统的特点 4 更强的信息系统集成性在B S结构下 服务器端集中管理文件和数据信息 并集成提供系统各种服务 随着网站的规模和复杂度日益增加 Web应用系统的功能已经从刚开始的简单的信息发布系统 发展到如今几乎所有的信息系统的构建以及复杂的业务处理都移植到Web平台这个大舞台上来 5 系统维护和升级的灵活性和经济性对于传统的基于C S结构的大型软件系统 软件开发 维护与升级所花费的人力物力成本是非常高的 而基于B S结构的Web应用系统因为系统集中在服务器端 客户端软件不用安装和变更 并且对用户电脑的配置要求并不高 只要能运行浏览器即可 因此系统的维护和升级方便简单 同时可以避免因为客户端操作系统的不同而带来的软件移植造成的巨大浪费 第12章Web环境下VFP应用程序开发 12 1Web应用系统的主要特点12 2Web应用程序的体系结构12 3建立Web应用程序的开发环境12 4ASP NET访问VFP数据库12 5使用ActiveX组件 2020 3 30 6 73 12 2Web应用程序的体系结构 软件体系结构一般是分层的结构 每一层具有其特定的任务 相邻的层与层之间存在请求和提供服务的关系 每一层又可模块化设计 每个模块完成不同的功能 以共同实现该层的目标 2020 3 30 7 73 12 2Web应用程序的体系结构 软件体系结构一般是分层的结构 每一层具有其特定的任务 相邻的层与层之间存在请求和提供服务的关系 每一层又可模块化设计 每个模块完成不同的功能 以共同实现该层的目标 Web应用程序的体系结构有一个发展历程 是随着浏览器技术和软件开发技术的发展而发展的 根据所分的层次 目前常见的Web应用程序的体系结构有两层结构 三层结构和四层结构 1 两层结构 2 三层结构 3 四层结构 第12章Web环境下VFP应用程序开发 12 1Web应用系统的主要特点12 2Web应用程序的体系结构12 3建立Web应用程序的开发环境12 4ASP NET访问VFP数据库12 5使用ActiveX组件 12 3建立Web应用程序的开发环境 教材中的Web应用程序是以 NET平台下的ASP NET2 0技术为基础的 在入手开发ASP NETWeb应用程序之前 要先了解它的开发环境 ASP NETWeb应用程序的开发环境主要包括Internet信息服务 IIS 和VisualStudio集成开发工具 12 3 1ASP NET概述 ASP ActiveServerPages 称为活动服务器页面 如果浏览器请求访问Web服务器端的网页文件是ASP页 则需要在服务器端处理 并把它翻译成HTML页 再返回给浏览器 与早期的静态Web访问相比 它的最大优点是能够根据不同的用户 不同的访问时间显示不同的页面内容 从而建立动态网站 12 3 1ASP NET概述 ASP存在的不足 ASP代码与HTML标记混合在一个页面中 不便于阅读 也不便于表示层与业务逻辑分离 它是解释方式执行的 相比编译方式执行而言 其性能受到很大影响 由于ASP的种种限制 微软推出了ASP NET 12 3 1ASP NET概述 ASP NET是一个基于 NET环境的 统一的Web开发平台 它为程序员提供了一个全新且强大的服务器组件结构 它不是ASP的简单升级 而是一个全新的软件开发平台 它解除了程序员开发语言的限制 可以用任何 NET所支持的开发语言 如VisualBasic NET VisualC NET 和VisualC 等编写Web应用程序 ASP NET是编译执行的 它比ASP拥有更高的执行效率 12 3 2MicrosoftIIS的安装和配置 IIS是InternetInformationServer的缩写 俗称Internet信息服务 它可提供WWW服务 FTP服务和SMTP服务等 1 安装IIS 1 打开控制面板 双击窗口中的 添加或删除程序 图标 打开 添加或删除程序 窗口 2 单击窗口左边的 添加 删除Windows组件 按钮 打开 Windows组件向导 对话框 IIS安装完后 如果想检测是否安装成功 可以打开浏览器 在地址栏输入 就可以看到IIS的帮助文档 如图所示 2 配置主目录和启动文档 选择 开始 菜单 管理工具 Internet信息服务 打开如图所示的 Internet信息服务 窗口 右键单击 默认网站 节点 在弹出的快捷菜单中选择 属性 打开 默认网站 属性对话框 配置主目录和启动文档 所谓 默认文档 是指在浏览器中访问某Web应用程序的主页时 可以不输入主页文件名 只在地址栏中输入网站的域名或IP地址 Web服务器就自动按照 启用默认文档 列表中的顺序依次找默认的启动文档进行加载执行 如果均没有找到 则返回错误信息 3 身份验证 身份验证是从用户获取名称和密码等标识凭证并根据某些机构验证这些凭据的过程 如果凭据有效 则提交该凭据的实体被视为通过身份验证的标识 一旦标识通过了身份验证 则身份验证过程会确定该标识是否可以访问给定的资源 IIS具有身份验证功能 在网站属性对话框中 选择 目录安全性 选项卡 将出现的画面如图所示 单击 编辑 按钮 出现身份验证的三种访问控制 匿名访问 基本身份验证和集成Windows身份验证 如图所示 1 匿名访问匿名访问不验证访问用户的身份 Web客户端不需要提供任何身份验证的凭据 Web服务端会把这样的访问都映射到服务端的一个账户 一般为 IUSER MACHINE 即匿名访问Internet信息服务的内置帐户 用户可以修改这个映射用户名为本机的一个具体用户名 2 基本身份验证使用基本身份验证可限制对NTFS格式的Web服务器上的文件的访问 在这种方式下 用户必须输入凭据 而且访问是基于用户ID的 用户ID和密码都以明文形式在网络中进行发送 3 集成Windows身份验证集成Windows身份验证比基本身份验证安全 而且在用户具有Windows域帐户的内部网环境中能很好地发挥作用 在这种方式下 浏览器尝试使用当前用户在域登录过程中使用的凭据 如果尝试失败 就会提示该用户输入用户名和密码 使用集成的Windows身份验证时 用户的密码将不传送到Web服务器 如果用户作为域用户登录到本地计算机 则他在访问此域中的网络计算机时不必再次进行身份验证 12 3 3安装VisualStudio2005 VisualStudio是微软公司的一套完整的开发工具集 要想开发ASP NETWeb应用程序 就需要安装VisualStudio 安装VisualStudio2005时 为了确保顺利安装 需要卸掉VisualStudio2005之前的产品 然后运行VisualStudio2005的安装文件 进入VisualStudio2005的安装画面 按照安装向导的提示一步步地安装 为了保证在浏览器中能够成功访问IIS服务器上的ASP NET网页 IIS要在VisualStudio2005之前安装 12 3 4ASP NET2 0应用程序测试 为了检测ASP NET应用程序运行环境是否搭建成功 这里讲解一个简单的实例 在这个实例中 只有一个Web页面 显示一串文字 步骤如下 1 打开VisualStudio2005 在 文件 菜单中选择 新建网站 打开如图所示的新建网站对话框 2 在新建对话框中单击 确定 按钮 进入网站WebSite1的编辑界面 如图所示 在Default aspx的设计界面中 从左边的工具箱中拖动一个TextBox控件到网页Default aspx的设计界面上 并在TextBox控件的属性窗口中设置其 Text 属性值为 大家好 这是我的第一个ASP NET应用程序 3 单击 保存 按钮 选择菜单 生成 生成网站 则在输出窗口显示编译信息 如图所示 显示生成网站成功 4 单击启动按钮 或按F5键 可以运行该网站 若是第一次运行网站WebSite1 VisualStudio2005会弹出 未启用调试 对话框 如图所示 5 单击 确定 按钮 系统就会自动添加配置文件Web config 然后系统就会打开浏览器 并在浏览器中显示网页Default aspx的内容 如图所示 虽然到目前为止 可以建立并运行ASP NETWeb应用程序了 但任务还没有完 因为现在建立的WebSite1虚拟网站只能在自身机器上的浏览器访问 其它机器的浏览器是访问不了的 要想其它机器的浏览器能访问刚建立的WebSite1站点 必须在IIS服务器中创建它 步骤为 1 在管理工具中选择 Internet信息服务 打开IIS 2 在 网站 默认网站 上点击鼠标右键 选择 新建 虚拟目录 3 在打开的窗口中选择 下一步 出现虚拟目录别名的输入窗口 可以命名为 MyWebSite1 截图 4 单击 下一步 按钮 打开的对话框是选择要发布的网站所在的物理路径 如图所示 选择或输入网站WebSite1所在的路径 5 单击 下一步 按钮 出现虚拟目录的访问权限对话框 如图所示 6 下一步就是完成对话框 创建完成后IIS的默认网站下有了一个站点MyWebSite1 如图所示 之后 其它机器的浏览器就可以访问新建立的站点MyWebSite1了 第12章Web环境下VFP应用程序开发 12 1Web应用系统的主要特点12 2Web应用程序的体系结构12 3建立Web应用程序的开发环境12 4ASP NET访问VFP数据库12 5使用ActiveX组件 12 4ASP NET访问VFP数据库 ASP NET应用程序用ADO NET来实现对数据库的处理 ADO NET为 NETFramework提供高效的数据访问机制 12 4 1ASP NET连接常用数据库的方法 ASP NET连接数据库的方法一般采用两种 配置开放式数据库连接 ODBC 数据源 可以直接在控制面板中进行设置 使用OLEDB数据驱动程序 这两种方法都需要直接或间接地在应用程序中给出与数据库的连接字符串 提供相应的连接设置信息 1 ODBC连接 2 OLEDB连接 12 4 2使用ADO NET操纵VFP数据库 为了能够在 NET应用程序中访问VFP数据库 需要从微软网站下载ADO NET对VFP90的OLEDB提供程序Provider 下载地址 选择下载文件 VFPOLEDBSetup msi 并安装 实例 在VS2005中创建数据绑定 操纵VFP数据库 创建步骤 1 新建一个网站 命名为WebSite2 保存位置为C Inetpub WebSite2 2 在默认网页Default aspx的设计界面放置一个标签Label1 输入Text属性值为 数据绑定访问VFP数据库 再放置一个GridView控件 如图所示 3 创建数据源 选择GridView控件的 新建数据源 将打开如图所示的对话框 选择数据源为 数据库 并为 为数据源指定ID 取名 4 选择数据连接 在提供程序Provider列表框中选择VFP90的OLEDB提供程序Provider 5 选择数据源或数据库文件 并设置访问权限 最后单击 测试连接 按钮 检测连接数据库是否正常 创建完数据库连接后 可以在配置文件Web Config的配置节中看到自动增加的数据库连接信息 6 配置SQL语句 存在两种选择 希望数据是来源于表或视图中的列 还是来源于自定义的SQL语句或存储过程 注意 对VFP数据库 要选择自定义 7 自定义SQL查询语句 可以根据查询生成器对话框 完成SQL语句的定义 单击 测试查询 按钮测试检索数据是否成功 8 配置完GridView数据源后 在VisualStudio2005中生成网站并运行 将得到如图所示的页面 第12章Web环境下VFP应用程序开发 12 1Web应用系统的主要特点12 2Web应用程序的体系结构12 3建立Web应用程序的开发环境12 4ASP NET访问VFP数据库12 5使用ActiveX组件 12 5使用ActiveX组件 VFP90专长于数据库管理 但在网络应用等方面有所欠缺 除了在上节中介绍的在网页控件中绑定数据源 设置SQL语句的方法使用VFP数据库外 能否借用VFP90提供的编程语言 来完成复杂的数据管理功能 并在网络应用程序中应用呢 答案是当然可以 借助于ActiveX的技术支持 可以在任何其它编程语言编写的 任何应用程序中应用 问题 12 5 1ActiveX技术概述及应用 ActiveX是微软公司提出的一组基于组件对象模型COM ComponentObjectModel 的技术 它可以在应用程序中使用 也可以内嵌到Web网页中 实现一些浏览器做起来很麻烦或根本无法实现的功能 ActiveX技术的优点是可以灵活 高效地插入到应用程序中 方便实现交互 重用 ActiveX与编程语言是无关的 当前常用的编写ActiveX组件的编程语言是VC和VB 它们利用语言本身的优势编写的ActiveX组件可以和应用系统无缝地结合 用VFP编写ActiveX组件的情况非常少 特别是在一切都在趋于网络化的潮流中 VFP似乎处于一定的劣势 但VFP有其先天性对数据处理的优势 用ActiveX组件对数据处理进行封装 采用一些技巧也能方便地运用到Web应用程序中 12 5 2用VFP创建ActiveX组件 用VFP创建ActiveX组件的途径在VFP中创建ActiveX组件 有两种途径 一种是用纯代码的方式编写 即在一个程序文件 prg中编写组件代码 另一种是利用VFP提供的类设计器创建组件 这两者的区别在于 纯代码方式需要程序员定义组件的方方面面 从框架语法 类的继承关系 到具体的应用代码都需要手工编写 而用类设计器编写组件时只需将注意力放在具体的应用上就可以了 类设计器可以帮助完成框架方面的内容 这点类似于编写网页代码时可借助于FrontPage或Dreamweaver生成HTML框架代码 用类设计器创建组件相对轻松一些 但它的局限性在于这种方式编写的组件含有界面元素 例如对话框 标签 按钮或表单等 如果使用的ActiveX组件不能含有任何界面元素 如用于后台处理 就必须用第一种方式编写了 用VFP编写的ActiveX组件一般用于后台处理 特别是对数据的处理 所以一般采用纯代码方式创建ActiveXVFP组件 2 创建ActiveX组件 采用纯代码方式来创建ActiveXVFP组件 首先要新建一个项目文件 再在项目文件中创建程序文件 prg 该程序文件必须以 DEFINECLASS 开头 以 ENDDEFINE 结尾 即定义一个类 其中包含类的成员变量 用户自定义的函数或过程 以及一些类的事件等 创建ActiveXVFP组件的核心在于定义类 其语法结构为 DEFINECLASS类名as父类OLEPUBLIC PROTECTED HIDDEN PropertyName1 PropertyName2 PROTECTED HIDDEN FUNCTION PROCEDUREName cParamName cArrayName ASType ASType ENDFUNC ENDPROC ENDDEFINE 说明 类名 与程序文件名同名 用户可以自定义 父类 可以是VFP的任何基类 或者用户自定义的类 异常类Exception等 如果定义的ActiveX组件是用户自定义的 就需要用Custom或者Session 用Session或者Custom作为父类的共同点 创建的ActiveX组件不能含有任何界面元素 这两者的区别在于 Session是VFP70之后新添进来 用它派生的类具有私有数据工作期 高效的内存管理和安全的多线程机制 OLEPUBLIC 说明创建的类是一个ActiveX组件 创建完后的类可以用命令BUILD连编成不同类型的文件 主要有三类 用命令BUILDEXE连编为进程外可执行 EXE文件 用命令BUILDDLL连编为进程内单线程的 DLL文件和用命令BUILDMTDLL连编为进程内多线程的 DLL文件 PropertyName 为类的成员变量 可在类中的所有函数或过程中使用 FUNCTION PROCEDUREName 函数或过程名 为用户自定义的函数或过程 12 5 3ActiveXVFP组件应用实例 请用VFP90创建一个ActiveX组件实现对数据表Students dbf的访问 并在Web页面中显示 步骤 1 新建一个项目文件classprj pjx 选择 代码 程序 新建一个程序文件sturecords prg 2 打开程序文件sturecords prg 输入以下内容 DEFINECLASSsturecordsasSessionOLEPUBLIC 定义类sturecordsFUNCTIONinit 类的初始化SETTALKOFFSETEXCLUSIVEOffSETDEFAULTTOD VFP90IFNOTUSED students SELECT0USEstudents dbfELSESELECTstudentsENDIFENDFUNC FUNCTIONdestroy 类的撤销useENDFUNCPROCEDUREError nErrorASInteger cMethodASString nLineASInteger 错误处理LOCALcTextASStringcText 错误号 LTRIM STR nError 5 行号 LTRIM STR nLine 8 错误 cMethod MESSAGE COMRETURNERROR cText VFP ServerName ENDPROCENDDEFINE 说明 在类sturecords中 定义了三个函数init destroy和Error 这三个函数均为事件 是可以自动捕获执行的 其中函数init是在类被创建时调用的 函数destroy是类在被撤销时调用的 函数Error是类在执行时并且出现错误时调用的 错误的返回对象是VFP主控程序 一般是在VFP环境中调试用的 3 定义数据访问操作 定义记录指针的操作FUNCTIONgoTop 定位到首记录GOtopENDFUNCFUNCTIONgoBtm 定位到尾记录GObottomENDFUNCFUNCTIONskipNext 记录指针下移IFNOTEOF SKIPENDIFENDFUNC FUNCTIONskipPrev 记录指针上移IFNOTBOF SKIP 1ENDIFENDFUNCFUNCTIONgo nasInteger asCharacter 记录绝对定位IFTYPE n N RETURN parameterisnotanumber ELSEIFnreccount RETURN overflowrecordnumber elseGOnRETURN havegotoNo STR n 2 record ENDIFENDIFENDFUNC FUNCTIONBOFasBoolean 判断记录指针是否到达表头RETURNBOF ENDFUNCFUNCTIONEOFasBoolean 判断记录指针是否到达表尾RETURNEOF ENDFUNC 定义获取必要信息的操作 FUNCTIONCurRecordasInteger 返回当前记录号returnRECNO ENDFUNCFUNCTIONRecCountasInteger 返回记录个数RETURNRECCOUNT ENDFUNC 定义获取字段值的操作 FUNCTIONgetNameasCharacter 获取当前记录姓名字段的值RETURNsnameENDFUNCFUNCTIONgetNoasCharacter 获取当前记录学号字段的值RETURNsidENDFUNCFUNCTIONgetsexasCharacter 获取当前记录性别字段的值RETURNsexENDFUNCFUNCTIONgetdateasDate 获取当前记录出生日期字段的值RETURNbirthdayENDFUNC 4 编译成ActiveX组件 在项目文件管理器中单击 BUILD 并按图所示的连编对话框进行选择 再单击 OK 按钮 5 测试ActiveX组件 组件中含有类 所以在使用时需要把类实例化为对象 因为一个组件中可以定义多个类 所以在实例化时需要指定实例化哪个类 具体

温馨提示

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

评论

0/150

提交评论