基于MVC模式和Silverlight技术的WebGIS开发.doc_第1页
基于MVC模式和Silverlight技术的WebGIS开发.doc_第2页
基于MVC模式和Silverlight技术的WebGIS开发.doc_第3页
基于MVC模式和Silverlight技术的WebGIS开发.doc_第4页
基于MVC模式和Silverlight技术的WebGIS开发.doc_第5页
全文预览已结束

下载本文档

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

文档简介

基于MVC模式和Silverlight技术的WebGIS开发【摘 要】随着网络技术的发展,WebGIS已逐渐成为地理信息系统研究的热点。本文针对目前WebGIS结构模式上存在的不足,将MVC设计模式和Silverlight技术引入WebGIS开发。该解决方案充分发挥了MVC这一先进的WebGIS设计模式的优点,具有层次清晰、相对独立和维护方便的特点,同时利用Silverlight技术丰富的交互性和多媒体处理能力,丰富了系统界面,增强了用户体验,减轻了服务器端的压力。因此,本文对研究和设计基于MVC和Silverlight的WebGIS具有一定的参考意义。但是,该解决方案存在系统结构复杂、运行效率不高和调试难度大等缺点,需要在进一步的研究开发中不断改进和完善。【关键词】MVC;Silverlight;WebGIS1 引言网络技术的迅猛发展,为GIS理论及其技术研究开辟了新的领域,并为GIS提供了一种崭新而又非常有效的地理信息载体。Web技术和GIS技术相结合,最为激动人心的产物就是WebGIS(万维网地理信息系统)。作为分布式地理信息系统的一种重要表现形式,WebGIS无论是在理论研究,还是在应用方面都还处于快速发展阶段。MVC模式是一个经典的软件设计模式,它有效地将视图和逻辑分开,成功地实现了数据和表示分离。Silverlight是一种跨浏览器、跨平台的.NET Framework实现,用于为 Web 生成和提供下一代媒体体验和丰富交互式的应用程序。本文以Silverlight技术为基础,采用MVC设计模式,提出了一种WebGIS开发的可行性方案。2 MVC设计模式MVC ( Model-View-Controller)设计模式是20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今己被广泛使用。它是许多交互和界面系统的构成基础,Microsoft的MFC基础类也遵循了MVC的思想。MVC模式弱化了业务逻辑接口和数据接口之间的耦合,使逻辑与呈现相分离,从而让表现层更为独立和更富于变化,增强了代码的可维护性与扩展性。这种设计模式的主要思想是设法把一个应用的图形界面部分从执行实际处理的代码中分解出来。MVC设计模式是当前B/S开发的标准框架,由3个相互协调的核心模块组成:模型(Model)、视图(View)和控制器(Controller),它们分别担负不同的任务。图1显示了这三个模块各自的功能以及它们之间的相互关系。Model封装应用程序状态相应状态查询应用程序功能通知视图改变Controller定义应用程序行为用户动作映射成模型更新选择响应的视图View模型解释模型更新请求发送用户输入给控制器允许控制器选择视图状态改变状态查询通知改变视图选择用户请求图1 MVC模块功能及协作关系事件方法调用Model:事务逻辑模块,这是整个模型的核心。它表示的是解决方案空间的真正的逻辑。它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象。在这些抽象的对象中封装了对象属性和这些对象所隐含的逻辑。View:用户视图模块,视图是模型的表示,提供用户交互界面。当模型状态发生变化时,视图应该得到通知,以便更新模型的变化。Controller:流程控制模块,该部分是用户界面与Model的接口。一方面它接受来自视图的请求,修改模型的状态;另一方面,它处理来自于Model的事件和Model逻辑执行的结果,调用适当的View为用户提供反馈。从图1可以看到,Model是整个模型的核心,他表示的是解决方案空间的真正的逻辑。视图是Model的外在表现,一个Model可以对应一个或者多个视图。视图具有与外界交互的功能。同时,Model的更新与修改也将通过控制器来通知视图,从而保持视图与Model的一致性。MVC的处理过程:首先控制器接收用户的请求,并决定主要管理应用系统与外界的接口。一方面它为外界提供输入手段,并触发应用逻辑运行;另一方面,它又将逻辑运行的结果以某种形式显示给外界。控制器是Model与视图的联系纽带,控制器提取通过视图传输进来的外部信息,一并将其转化成响应来调用对应的Model进行处理,然后Model处理用户的请求并返回数据,最后控制器调用相应的视图模型返回数据,并通过表示层呈现给用户。由此可见,在MVC的架构中,应用程序的界面和业务逻辑等应用程序的其他部分是完全分离的。MVC的主题是把业务逻辑、用户的控制动作和业务的实际状况之间的耦合限制到最小,从而使设计者能够独立设计每一部分。我们既可以为同一个模型和控制器选择不同的界面,也可以对同一个应用程序选择不同的模型及其数据源,还可以通过修改控制器来改变应用程序响应使用者动作的行为。3 Silverlight简介Microsoft Silverlight脱胎于微软.NET Framework 3.0的展现层技术WPF(Windows Presentation Foundation),其前身为WPF/E。它是一种跨浏览器、跨平台的.NET Framework实现,用于为 Web 生成和提供下一代媒体体验和丰富交互式的应用程序。Silverlight统一了服务器、Web和桌面的功能,统一了托管代码和动态语言、声明性编程和传统编程以及WPF的功能。Silverlight平台作为一个整体,由两个主要部分(核心表示层框架,.NET Framework for Silverlight)以及一个安装程序和更新组件组成。其结构如图2所示:图2 Silverlight结构图Silverlight这项技术,从诞生以来就一直把对多媒体,尤其是对视频的支持(支持720p HDTV 高清视频模式),放在首要位置,当前Silverlight主要应用于视频网站的构建。作为微软大力研发推广的新技术、Flash最主要的竞争对手,Silverlight的应用当然不可能仅限于此,实际上,它已应用到视频分享平台、在线游戏、在线广告平台等RIA应用的方方面面。近期,腾讯公司对外宣布,将与微软合作,推出Silverlight QQ,Silverlight应用也随之扩展至即时通讯领域。2009年3月23-26日,ESRI公司在美国加利福尼亚州召开了一年一度的开发者峰会,并同期发布了为微软Silverlight设计的ArcGIS API试用版。这种新的API可以帮助应用软件开发人员将ArcGIS Server和微软Virtual Earth的服务与功能集成在Silverlight的应用程序中,通过网络发布ArcGIS Server的地图、地理信息系统服务以及应用程序。4 系统架构设计本文将基于MVC模式和Silverlight技术的WebGIS在逻辑上设计为三层架构,即地理信息表示层、应用服务器层和地理数据库服务器层。系统总体架构如图3所示。地图数据库影像数据库专题数据库数据库 数据文件地理数据库服务器层应用服务器层View(XAML用户交互界面)地理信息表示层图3 基于MVC模式和Silverlight技术的WebGIS系统体系架构业务逻辑组件 数据库引擎组件ModelController4.1 地理信息表示层地理信息表示层是该系统的用户交互界面,是各种多媒体地理信息的表达平台,实现MVC中的View模块。该层由XAML描述交互操作的功能界面,仅用于显示地理信息和接收用户操作信息,并不实现任何业务逻辑和数据库操作。基于Silverlight的WebGIS使用安装了Silverlight插件的浏览器加载表示层,利用XAML(eXtensible Application Markup Language)实现了用户界面(UI)和后台代码(Code Behind)的分离,并实现了应用程序的跨浏览器、跨平台。4.2 应用服务器层应用服务器层是整个系统的核心,实现该系统的所有业务逻辑功能,具体实现MVC中的Model和Controller。该层主要关注业务规则的制定、业务流程的实现等与业务需求有关的系统设计,通过接收地理信息表示层的用户交互信息,实时调用业务逻辑组件和数据库引擎组件连接地理数据库服务器层,完成地理信息的检索、查询及发布等功能。4.3 地理数据库服务器层主要完成多源、多尺度数字地图、数字正射影像、专题信息等地理空间数据的存储和管理。该层分别由地图数据库、专题数据库和遥感影像数据库组成,通过文件和大型关系数据库管理系统(如SQL Server)进行一体化存储和管理,并提供数据备份、数据存档、数据服务、数据安全等机制。5 MVC设计模式的优缺点MVC的优点表现在以下几个方面:(1) 可以为一个模型在运行时同时建立和使用多个视图。变化传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。(2) 视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。(3) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。(4) 在MVC设计模式下,应用被清晰的分为模型、视图、控制器三个部分,这三个部分依次对应了业务逻辑和数据、用户界面、用户请求处理和数据同步。众所周知,对于业务逻辑和数据、用户界面、用户请求处理和数据同步这三部分功能来讲,用户界面发生变动的可能性最大,控制部分变动次之,而业务逻辑是最稳定的。所以这种模块功能的划分有利于在代码修改过程中选取重点,而不是把具有不同功能的代码混杂在一起,容易造成混乱。(5) 使用MVC设计模式还便于开发小组进行分工。将应用划分为模型、视图、控制器三个部分,有利于在项目小组内按照小组成员各自所擅长的技能进行分工,有利于三个部分并行开发,最终加快项目进度。当然,有优点必定就有相应的不足,MVC设计模式在给软件开发带来明显的好处之外,它的不足表现主要表现在以下几个方面:(1) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,降低运行效率。(2) MVC设计模式的设计和实现并不十分容易,相对来说对开发人员的要求也比较高。MVC只是一种基本的设计思想,真正实现起来还需要详细的设计规划,由于它的内部原理比较复杂,所以需要花费一些时间去思考。而且它没有明确的定义,所以完全理解MVC并

温馨提示

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

评论

0/150

提交评论