`
holoblog
  • 浏览: 1226361 次
博客专栏
E0fcf0b7-6756-3051-9a54-90b4324c9940
SQL Server 20...
浏览量:18918
文章分类
社区版块
存档分类
最新评论

插件式架构设计实践二:基于Silverlight的B/S插件式架构设计方法

 
阅读更多

  架构设计并不是项简单的工作,架构设计最终的产物则是由不同的框架组件构成一套高扩展、稳定、安全、通用的开发框架平台。或许一提到架构设计,很多朋友都联想到了常用的框架组件:数据访问组件、日志组件、事务组件、消息组件、配置组件以及工具库等。然而,本系列文章的中心“插件式框架设计”已经偏离了常规的框架设计方法论,它只是一套用于改善系统功能模块组织结构,灵活开发、部署、维护的一套方法论,其中的每个功能模块的具体实现还是走常规的开发框架,它自身的职责则主要是负责根据配置文件实现系统功能模块的组装,灵活的卸载某个部件以及各部件之间如何通信等。

  

  本篇将和大家分享基于Silverlight的B/S插件式架构设计的方法,文中的内容仅仅只是我个人知识、经验的总结,如有不妥之处还望各位读者给予指正,大家共同学习,进步。

  对于Silverlight项目而言,前端系统需要后台服务接口的支撑才能完成数据通信访问、储存数据的的功能。通常需要给Silverlight前端提供相应的数据通信接口,可分为多种方式提供,常用的数据通信接口分别有Socket、HttpHandler、WebService以及WCF等方式。详细的架构模型如下图所示:      

        

  系统后台采取的技术架构为是竖向分成架构模式+横向扩展架构模式相结合,分成架构模式也就是众所周知的三层/多层架构,这里不做详细介绍;横向扩展架构模式则为支持横向业务扩展的架构模式,所有业务组件(我通常称其为:业务插件)通过实现统一的业务服务接口来扩展系统业务功能,系统框架中的业务组件容器(我通常称其为:业务插件容器)使用统一的业务服务接口灵活的管理业务组件,实现各组件之间的数据通信、事件通知、以及灵活的构造、销毁业务组件实例。总上述,这种架构模式我便称其为插件式架构设计。

  插件式架构设计的框架能够灵活的横向扩展业务组件的扩展开发,管理业务组件的生命周期等,然而对于RIA应用系统来说,他只需要依赖一个或多个通信接口实现数据通信,不用关心服务后台的架构以及具体是实现细节。需要注重点则是关于系统前端的框架架构设计,一套基于Silverlight技术的插件式架构设计方法,通过插件框架灵活的加载、组合、初始化并进行托管运行系统插件模块,是我们期望达到的目的。如上所述,插件式框架的架构图大致如下所示:

        

  系统前端的核心架构受到所采用的技术方案的影响,会演化出不同的架构设计方法和架构风格,如前面所说我们采用的是RIA的技术Silverlight来进行技术构建,那么在进行系统架构设计中定会受到Silverlight技术自身的一些限制,以至于我们的设计不能按照常规的方法,方式去实现。

  Silverlight能够为用户提供高用户体验的软件界面,以及传统的Web应用实现不了的很多功能,且也有很多的局限性,系统功能模块过多导致发布出来的应用程序包(.xap)过大,导致系统运行中初始化缓慢等诸多问题。我们需要一种全新的、开放性的、高扩展性的架构体系,来缓解这种因为技术自身的缺陷造成的诸多问题,可以实现快速的启动应用程序初始化界面,根据配置动态组装系统功能模块,以及灵活的扩展新的系统功能模块等功能,我将这种架构体系命名为插件式架构体系(或许与别人口中的插件式架构有所区别)。

        

  如上图所示,描述了插件框架的框架结构,框架由插件容器、插件契约和插件组件(业务功能插件)三大部分组成,扩展开发新的插件组件需要实现插件契约接口,以便插件容器可以灵活的控制插件组件。关于这三大组成部分的作用请查看《插件式架构设计简介》,本篇对基于Silverlight插件式架构设计方法进行了介绍,下一篇将详细介绍插件式架构设计的解决方案。

推荐资料:

  《MEF程序设计指南》:http://www.cnblogs.com/beniao/archive/2010/08/11/1797537.html

  《Silverlight动画开发教程》:http://www.cnblogs.com/beniao/archive/2010/04/04/1703992.html

  《一步一步学Silverlight教程》:http://www.cnblogs.com/Terrylee/archive/2008/03/09/Silverlight2-step-by-step-Tutorials.html

  《Silverlight MSDNWebcast》:http://www.msdnwebcast.net/webcast/2098.aspx

系列博文链接:

  插件式架构设计实践一:插件式系统架构设计简介

  插件式架构设计实践二:基于Silverlight的B/S插件式架构设计方法

分享到:
评论

相关推荐

    基于Silverlight的WebGIS研究与应用

    文中选择Silverlight Web前端技术,结合ArcGIS API提供的WebService接口,提出由空间数据服务器、GIS服务和Web服务服务器及部署有Silverlight插件的浏览器组成的3层架构式富网络地理信息系统。最后,利用Silverlight(C#...

    MVC_EF框架_Bootstrap示例

    基于EF+MVC+Bootstrap的通用管理系统。 Framework 业务无关的底层通用机制及功能 Model基类:提供数据传输和底层的最基本的基类及接口 DAL底层:基于EF code first,提供Repository泛型方法及写历史日志 Untility:...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    4.3.1根据适口属性设计响应式布局: 26 4.3.2同分辨率范围内的流式布局设计 26 4.3.3移动端viewport属性设定 27 4.3.4组件样式的渐进增强设计 27 4.4 本章小结 27 第五章 认我测在线检测服务系统设计 29 5.1认我测...

    C#调用C++底层代码

    SilverLight是基于浏览器插件的,在浏览器中运行,服务器端不需要部署任何环境,客户端只需要安装Runtime浏览器插件,无须安装.net Framework 3.0。所以,SilverLight的运行环境不受操作系统和浏览器的种类限制(更...

    适配器Rutoken插件「Адаптер Рутокен Плагин」-crx插件

    Rutoken插件只使用内置的浏览器API,不需要安装额外的组件,框架和平台,如Java,Microsoft Silverlight等。 与USB设备的交互 Rutoken Plugin支持使用Rutoken EDS,Rutoken Web和Rutoken PINPad设备。最常见的是使用...

    redui 项目源码

    似曾相识的WEB设计(CSS样式表、DOM模型树、脚本事件、window和event对象、AJAX、自动排版、类JQUERY工具),完整内嵌的ActiveX和SILVERLIGHT支持,简洁易用的3D抽象模型,通用扩展插件架构…… ……只需要几十行JS...

    Visual.Basic.2010.&.NET4.高级编程(第6版)-文字版.pdf

    13.6.3 查看hellocustomerservice的wsdl和架构 538 13.7 小结 540 第iii部分 智能客户端应用程序第14章 windows窗体 543 14.1 system.windows.forms名称空间 543 14.2 窗体的使用 544 14.2.1 设置启动窗体...

    《程序员》杂志2012年第1期.pdf (免费积分下载)

    随着Web的普及,浏览器及其插件如Flash和Silverlight也都成为平台。企业软件开发中,又有WebSphere、JBoss等中间件和各种面向领域的业务平台,也都是平台。 Web 2.0、云计算发展起来后,为了共享数据,提供更无缝的...

Global site tag (gtag.js) - Google Analytics