`
kingwind0726
  • 浏览: 2849 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于完美的Flex应用框架的思考

    博客分类:
  • flex
阅读更多
自Flex技术开始广泛应用以来,对于企业级Flex应用开发框架的讨论就从未停止过,这篇文章是对于构成完美Flex框架要素的思考的第一部分,其中评价了主流的一些Flex框架,相信对于广大开发者来说有很大的参考价值。

在过去的十几年中,大多数企业开发的web框架看起来都关注于问题的结构部分,它们实际上为解决问题而构建的应用只提供了很小的价值。看看那些大多数的JAVA框架,它们甚至不去提供一个内置的组件集。此外,在Flex生态圈,事实上所有的主流第三方Flex框架的诞生,看起来主要的目标是为了增强或者允许使用MVC模式,而唯一例外的是Clear Toolkit,它提供了一些有趣的企业特色;Flex带来了一场革命因为它的出现最主要的意义是让开发者大大提高了构建酷绚应用的效率,因此,Flex是一个完整的平台,而且常常是建立理想应用所需的唯一框架。它提供在MVC架构内建立应用的基础设施,和一系列完整的组件来满足企业应用中的各种需求。当审视应用开发的各个组成部分,工程师们应该只带上能满足核心功能和非功能性需求的工具,或者专注于解决项目中存在的风险就够了。有了Flex平台的帮助,你不应该带着这样的假设去做事情:可能还需要加入第三方框架的支持。

话又说回来,Flex确实有缺点而且可以被改进或者用有趣的和有用的方式扩展它,而且,有一个基础设施来帮助开发者进行合理的分离应用代码中的关注点是有意义的事情。坦率的讲,如果采用第三方框架来获取这种基础设施的成本低的话,那么就没有理由来反对引入一个第三方的解决方案。让我们看看几个Flex框架在这个方面的表现如何:

Cairngorm: 采用和长期所有权的成本太高,有大量必须的代码来实现即使是最微小的功能,对于单个开发者来说,需要认真考虑它是不是该值得采用,这种情况下它的作用不是那么明显(The leverage just is not here)。

Mate: Mate解决了分离关注的问题,通过提供给开发者一个全局的事件总线来处理事件,这个方法非常适合构建Flex应用的理想方式。尽管我趋于相信不是所有的事件是全局的,而且可能根本不需要外部化,但是这肯定是迷题(开发任务)的一个重要部分,有一个合理的方法来关联事件,总的采用成本是低的;

Swiz: Swiz跟Mate比较像,它有个有限的外围接口来供开发者学习,它分离事物的主要机制是使用依赖注入,它在语法和易用性上相当的优雅。

以上三个框架中的两个采用成本是底的,他们也只限于解决Flex开发者的几个问题,这就是这篇文章要讲的关于什么是,应该,可能,将会是完美的Flex框架,在第二部分,我将会做一个尝试,提出我对完美的第三方框架的需求。

原文地址http://gorillajawn.com/wordpress/2009/06/21/the-perfect-flex-application-framework-part-2-of-2/


在上一部分,我介绍了Flex第三方框架的几个问题,主要是MVC的影响,以及目前主流的三个框架的采用成本。设计模式的历史,特别是Java社区已经让框架在帮助模式应用方面得到了广泛的认同,这篇文章将把焦点转移回能够让开发者简化任务的特色中去,从而使他们能建立用户所需的更快、更简单的应用,这才是第三方框架应该去做到的目标。那么,进一步说假设没人会反对这样的断言,我们来看看什么能构成我的完美Flex应用开发框架。

分离关注(SoC):

在Flex开发过程中,存在着核心框架外的一种需求,来帮助开发者完成应用代码的分离。在现实中,这不是框架中最困难的或者最有趣的部分,但是有可能使任何框架的必需部分。我个人喜欢Swiz的依赖注入方法来实现这个目标,而且还应该有更多的有趣的功能添加在依赖注入的基础上,因为我们已经在Java中的Spring框架中看到了他们。

客户端数据管理(想想客户端Hibernate):

RIA引入了客户端数据/状态的概念,在传统基于页面的应用中,开发者从来没有考虑这种可能性,因为所有的状态被保留和记录在服务器上。有了高级的RIA特色,状态经常在客户端改变,但是不是立刻发送会服务器端,这就引发了一系列管理客户端/服务器间数据状态的挑战。因此,出现了对底层结构能支持客户端/服务器之间数据同步的需求。LifeCylce Data Service和Clear Tookit都包含这个特色,来帮助开发者在一定程度上完成这个任务,但是他们依赖特定服务器的实现。在我的理想世界里,这种逻辑应该都在客户端处理,不管服务器提供了什么数据,这样就可以不用考虑是什么技术提供的数据。这种特色估计会在下一个版本的FlashBuilder中出现。

安全特色:

在任何企业应用,都有多种级别的安全考虑,有很多方法和测量来处理鉴权,但是没有很多Flex工具来解决授权。在最简单的表单中,可以将授权分为下面的几种,服务/方法级别,数据级别,过滤用户所看视图级别。安全服务和数据必须处理在服务器上,但是有些东西有必要控制在客户端上。据我所知目前没有多少类库能实现这些普通的需求,我目前的做法是我的chimp组件来做这些,通过Flex的原数据声明来实现。许多其他组件仅仅人工的处理这个组件,还用了特别的处理来添加过滤逻辑在UIComponent中,或者在view states中,理想情况下,这个特色应该内置到任何第三方框架中去。


全局事件总线:

在Mate中,基本上每个事件都被通过Mate事件总线处理,如果有一个全局的事件总线那对于实现RIA一系列特色将有着非常大的意义。然而,处理每一个事件对我来说看起来太奇怪了,我认为Flex事件应该被分为四种类型:

组件内事件:这些事件只在组件内处理并省略,当一个组件有子元素而且他们内部之间需要通讯时就是这种情形;

局部事件:这些事件被组件忽略但是在组件使用的上下文环境中被处理;

全局事件和数据交换事件:系统任何部分想要被通知时用到的事件,例如用户轮廓发生改变了。所以,在我的观念里,总线是完美Flex框架的必须部分,但是不该被使用来处理系统的所有事件(意思是说Mate将所有的事件放在一处是不合适的);

上面就是我对完美第三方Flex框架的最迫切需求,我相信还有许多有意义的需求应该加到这个列表中去。在写这篇文章时,我总结到有太多的关注点聚焦到Flex框架中了。我描绘出来的几个方面是第三方框架需要弥补的的环节,或者希望有一天被潜在的平台是实现,但是他们都不是开发者在建立企业Flex应用时遇到的最有挑战性的问题。建立Flex应用最大的挑战是Flashplayer虚拟机的质量,Flashplayer必须变得更快、更好来处理内存消耗、垃圾回收,Flex是一个好的平台来建立RIA,但是像任何新兴技术一样,它必须不断成熟以继续获得采用率并保留住目前的开发者。

分享到:
评论

相关推荐

    Flex+Java完美整合框架

    Flex+Java完美整合框架是一种高效的应用开发解决方案,它结合了Adobe Flex的富互联网应用程序(RIA)开发能力与Java的强大后端服务支持。Flex是用于构建交互式、图形丰富的Web应用的开源框架,而Java则提供了稳定的...

    完美的运动框架

    js完美运动框架js完美运动框架js完美运动框架js完美运动框架

    flex 嵌入完美Iframe

    Flex是一种基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。它允许开发者创建具有丰富图形、动画效果和用户交互的Web应用。 在Flex中嵌入Iframe是为了能够展示HTML内容,这可能是为了利用现有...

    Bootstrap的完美后台管理框架

    "Bootstrap的完美后台管理框架"是一个专门为后台管理系统设计的解决方案,它利用了Bootstrap的强大功能,使得界面设计更加高效且美观。 这个框架的核心特性包括: 1. **响应式设计**:Bootstrap的网格系统允许...

    JavaScript完美运动框架

    JavaScript 完美运动框架 在 JavaScript 中,实现一个元素的多个属性同时运动是非常有挑战性的任务。今天,我们将探索一个名为「JavaScript...该框架可以广泛应用于各种 web 开发项目中,例如游戏、动画、交互设计等。

    WinForm完美框架+皮肤WinFormFrameWork

    WinForm完美框架+皮肤WinFormFrameWork是一款专为Windows Forms应用程序设计的开发框架,它集成了丰富的功能和美观的界面皮肤,旨在提升开发者的工作效率,同时提供用户友好的交互体验。该框架通常包括多个组件、...

    安卓完美适配框架

    "安卓完美适配框架"旨在解决这一问题,它基于Hongyang大神的AutoLayout进行优化,为开发者提供了一种简单而高效的方式来实现应用的自适应布局。 AutoLayout是Hongyang大神开源的一个Android屏幕适配解决方案,其...

    完美的后台框架(重复版)

    【标题】"完美的后台框架(重复版)"指的是一个被广泛使用并且在开发者社区中具有经典地位的后台框架。这个框架可能因为其高效、稳定、易用和功能全面等特点而备受推崇,以至于在不同的场合或时间点被多次提及和分享...

    Flex画线(直线,折线)完美实现

    首先,Flex是一种基于ActionScript 3的开源框架,用于构建富互联网应用程序(RIA)。它提供了丰富的组件库和强大的图形渲染能力,非常适合开发包含复杂图形交互的应用。 在描述中提到的动态画线功能,意味着用户...

    完美的Flex多语言支持解决方案

    Flex是Adobe开发的一种开源框架,主要用于构建富互联网应用程序(RIA)。在开发面向全球用户的Flex应用时,多语言支持显得尤为重要,这使得应用能够适应不同国家和地区的用户需求。本方案将详细探讨如何在Flex项目中...

    最完美的FLEX帮助文档(中文),吐血推荐

    Flex是Adobe公司开发的一种用于构建富互联网应用(RIA)的开放源码框架,它基于ActionScript编程语言和Flash Player运行时环境。这份“最完美的FLEX帮助文档(中文)”显然是针对Flex 3版本,提供了详尽的开发指导和...

    PB10完美框架

    PB10完美框架

    PB9开发的完美框架

    "PB9开发的完美框架"是一个专为PowerBuilder 9(PB9)设计的高效开发框架,它旨在简化和加速基于PB9的二次开发过程。PowerBuilder是一款强大的、面向对象的编程工具,尤其适合企业级应用程序的开发。该框架集成了...

    Android第三方开源框架ImageLoader的完美Demo

    总之,`Android第三方开源框架ImageLoader的完美Demo`是一个极好的学习资源,它帮助开发者高效地管理图片资源,提高应用的响应速度和用户体验。对于任何涉及大量图片处理的Android应用来说,`ImageLoader`都是一个...

    完美ui前台框架Qui v3.3试用版

    QUI 框架的组件库包含近百种组件,并且为每一种组件都制作了大量的典型示例,充分展示组件的各种应用场景,完全能够满足企业前端应用的各种需要。 她是所有前端框架中组件库最全的框架之一。并且提供非常详尽的使用...

    flex spring

    在开发Java Web应用程序时,使用Spring框架作为基础架构,Ibatis作为持久层解决方案,而Flex作为前端展示技术,能够构建出高效、灵活且易于维护的应用。本篇文章将深入探讨如何将这三者有效地整合在一起,实现前后端...

    ArcGIS_Flex.rar_ArcGIS flex_ArcGIS_Flex_NavigationSkin.mxml_arc

    ArcGIS Flex是ArcGIS Server服务与Adobe Flex技术的完美结合,它提供了一系列的API,用于创建交互式的地图应用。开发者可以通过Flex的MXML和ActionScript语言来构建用户界面,并利用ArcGIS服务来处理地图数据和空间...

    flex4.5打印导出pdf完美版

    Flex 4.5是一款强大的富互联网应用程序(RIA)开发框架,由Adobe公司开发,它提供了更高效的性能和更丰富的用户界面组件。在Flex 4.5中,开发者可以创建交互性强、图形化丰富的Web应用。而"flex4.5打印导出pdf完美版...

    构建插件式的应用程序框架及源代码

    为什么使用插件式的应用程序框架呢?我的答案就是他为应用程序的功能扩展提供的无限的想象空间。一个应用程序,无论你前期做了多少的市场调查,需求分析做的多么完美,你也只是迎合一部分人的期望,更甚,你只迎合了...

Global site tag (gtag.js) - Google Analytics