flex框架_虚拟面板:企业Flex框架中的最新技术

flex框架

Flex 1.0于2004年3月由Macromedia发布(2005年被Adobe收购)。 从那时起,基于Flex的富互联网应用程序(RIA)的开发就越来越有动力。 RIA已成为一种广为接受的Web应用程序开发方法。 最近,作为Adobe Flash Platform技术的一部分,Adobe 与Flash Builder 4一起发布了Flex 4

为了评估Adobe Flex的状态以供企业采用,InfoQ与一些最受欢迎的第三方flex框架的创建者进行了虚拟小组讨论。

参加者是:

InfoQ:开发框架的目的是什么,它试图满足什么需求?

克里斯(Potomac):我们之所以创建Potomac是因为我们遇到了直接开发大型模块化Flex应用程序的困难。 来自Java背景,我们熟悉OSGi和Eclipse RCP平台,以及这些框架如何使开发这类应用程序变得更加容易。 因此,我们创建了Potomac来将这些功能引入Flex。

Jeremy(Spring BlazeDS集成) :Spring BlazeDS集成的主要目的是使Flex成为​​一流的受支持选项,用于为基于Spring的应用程序构建丰富的用户界面。 尽管以前确实存在通过BlazeDS社区扩展(通常称为SpringFactory)公开Spring Bean用于AMF远程处理的方法,但是就整合Spring及其周围项目的进一步功能的潜力而言,采用的方法非常有限。 例如,除了与Spring Bean进行远程AMF通信外,我们还提供了将Spring Security用作身份验证和授权机制的支持,并且使与Spring的各种选项(基于JMS和Spring的异步消息通信)的连接更加简单。使用Flex的Publisher和Consumer API进行服务器推送的集成。 通过实际将BlazeDS MessageBroker引导为Spring管理的对象,我们实现了这种更深层次的集成。 最终结果是,与普通的BlazeDS方法相比,Remoting和Messaging端点的配置变得非常简单,并且以XML命名的标记和Java注释以熟悉的Spring样式完成。 一切都建立在熟悉的Spring MVC基础结构上,并由DispatcherServlet路由请求,这使得构建混合Web应用程序成为可能,该应用程序将Flex与更传统的开放式Web技术(例如HTML和JavaScript)结合在一起,均共享服务器的通用编程模型。侧。

Zoltan(FluorineFx):FluorineFx的目的是为.NET框架的Flex / Flash远程处理,Flex Data Services,消息传递和实时消息传递功能提供开源替代方案。 此外,该框架还提供了客户端库,例如用于Silverlight的FluorineFx,以桥接不同的RIA平台。 它的主要优势是总拥有成本低,对软件供应商的依赖性降低以及易于定制。

Laura(Mate):Mate的主要目的是通过使应用程序更容易,更快速地开发,能够打开应用程序的代码并了解其构造方式以及使我们更容易进行,从而使自己的生活更轻松教初级开发人员如何创建复杂的应用程序。

与大多数其他框架一样,它尝试为您提供工具和指南,以帮助您开发可扩展并具有清晰代码的应用程序。 伴侣还注重简单性和非侵入性。

Dima(RestfulX):开发RestfulX是为了使用REST模式促进基于Flex的客户端(在浏览器或AIR中)与各种服务器端技术(例如Ruby on Rails)之间的集成。 特别是,RestfulX专注于在Flex中提供一致的数据模型抽象层,以使用多种消息传递解决方案(XML,JSON和AMF)针对多个后端执行CRUD。 尽管Ruby On Rails仍然是使用RestfulX的人们的流行后端选择,但该框架可以与Google App Engine,.NET,PHP等一起使用。 RestfulX有趣的功能之一是能够在远程和本地数据源之间进行同步,这意味着您可以在AIR中运行时从Ruby On Rails中提取记录并将记录推入本地SQLite数据库,反之亦然。

Swiz Team:创建该框架是为了将Spring的许多好处和开发原则带入ActionScript和Flex领域。 因此,它旨在以轻量级,非说明性的类集的形式满足开发人员的需求,这些类使他们提高工作效率,帮助他们编写更简洁的代码,并提供一些可选的挂钩和机制来编写功能强大的自定义应用程序。

InfoQ:在尝试实施基于Flex的企业级解决方案时,团队将面临的主要挑战和障碍是什么? 常见的陷阱是什么?如何避免它们?

克里斯(Potomac):主要挑战是代码和模块的总体体系结构和组织。 当开发可能只有一个或两个模块的小型应用程序时,组织代码很容易。 但是想象一下一个项目,其中有10到50个或100个模块。 如果有多个团队在同一个项目上合作怎么办? 那些有关如何组织代码,如何管理团队之间的依存关系以及如何设计主应用程序以仅在需要时加载这些模块的问题变得更加难以回答。 波托马克为您提供了回答这些问题的工具。 用于Flash Builder的Potomac插件使您可以将大型Flex应用程序拆分为多个较小的模块项目。 然后,它允许您声明这些模块之间的依赖关系。 最后,波托马克的基于元数据的可扩展性系统使您能够创建松散耦合的模块集合。 相比之下,在Flex中使用基本的模块化功能感觉就像石头一样。

Potomac还提供了一个UI组合框架,可为您处理所有模块的加载和管理。 除了模块化功能之外,还有大量其他功能可加快业务应用程序的开发。 这些包括依赖项注入,保存/关闭管理,忙碌的动画等等。

Jeremy(Spring BlazeDS集成) :我看到人们经常处理的主要挑战是找出处理大型企业Flex代码库的组织,模块化和可测试性的正确方法。 Flex非常容易上手,但是与许多其他技术一样,当您仅作为一个人学习和发展时,使用的模式就无法很好地适应大型团队和大型代码库。 幸运的是,在过去的几年中,Flex开源社区发生了很多事情,并且出现了一些伟大的项目来帮助解决这个问题。 我(显然)是Spring ActionScript的忠实拥护者,这是Spring社区扩展框架下的一个开源项目。 它从Java Spring Framework到ActionScript引入了许多熟悉的样式和习惯用法,通过使用依赖项注入和一些常见的需求(例如事件处理和异步通信)很好的简洁抽象,可以实现松散的耦合和更好的可测试性。 它没有规定任何特定的结构,可用于使用许多不同的MVC或MVP样式方法来构建应用程序。 我个人真的很喜欢这样的想法:在诸如Spring ActionScript之类的框架的帮助下,使事情保持简单并自己应用MVP模式,而不必强迫扩展任何其他特定于框架的类。 它还特别赞扬了Spring BlazeDS集成,因为它提供了一种清晰的方法来外部化配置详细信息,例如Flex客户端用来与基于Spring的服务器端进行通信的URL,从而避免了在信息需要更改时无需重新编译的情况。 。

Zoltan(FluorineFx): FluorineFx尝试遵循API和Adobe等效(基于Java)工具的最佳实践,因此该框架的新用户应符合熟悉的API或配置环境。 但是,建议使用基于Flex RIA的良好背景,尤其是对于需要比简单的客户端-服务器远程过程调用更多的大型应用程序。

Laura(Mate):开发企业应用程序时面临的主要挑战之一是-它看起来很明显-它很大。 类太多,需求太多,所有部分之间的关​​系太多。 您需要在全球范围内进行考虑,以确保各个部分之间的联系不会如此紧密,以至于每当需求发生变化时-它们确实会发生变化! -什么都不会破坏。 您需要同时进行划分,同时具有某些专门的组件,可以将它们放在一起以构成一个有凝聚力的应用程序。

Dima(RestfulX):对我来说,编译器速度可能是Flex的一大烦恼。 尽管Flex 4编译器比Flex 3编译器快,但是它仍然是一个阻力,特别是对于较大的项目。 没有任何方法可以避免这种情况,但是在使用Flex启动新项目时,您当然应该注意一些事情。 我要强调的另一个方面是代码组织和模块化。 Flex鼓励采用更传统的客户端-服务器应用程序编程范例。 最终得到的是一个独立的GUI应用程序和一个向其发送消息的服务器,而不是将一个应用程序中的客户端和服务器代码交织在一起。 因此,除了标准MVC之外,还有大量的代码重用机会,您可能会发现在桌面上查看通过OSGi获得的经验(例如Eclipse IDE)很有用,并有可能将其应用于Flex应用程序,以使其易于维护和扩展。 。

Swiz团队:企业Flex应用程序的常见挑战在项目之间通常是相同的。 您如何防止模型成为庞大的数据整体? 您如何将事件与应用程序的不同部分之间路由? 您如何定义服务层及其交互? Swiz提供了可帮助您解决所有这些问题的工具。 Swiz的控制容器反转和依赖注入机制可轻松在需要的地方提供数据,而不管其来源如何,这鼓励了更小,更集中的模型。 Swiz提供了中央事件总线和无效的简单[Mediate]元数据,分别用于调度和处理应用程序范围的事件。 Swiz提供了一些帮助程序类和方法,这些方法和方法可以减少与远程服务交互所涉及的工作,而仅仅是编写结果和错误处理程序。 这些只是几个示例,但要点是Swiz可帮助您快速编写出良好的代码,然后它就挡在了您的后面。

InfoQ:您认为Flex框架和周围的生态系统是否成熟和完整,足以被企业解决方案考虑? 您认为它与HTML 5等其他解决方案的竞争程度如何?

克里斯(Potomac): Flex是用于企业应用程序的最成熟的RIA解决方案。 当HTML5出现时,它将成为Web应用程序开发人员手中的好工具。 不幸的是,今天,启用HTML5的浏览器的使用更多是个人消费者选择Firefox或Chrome的结果。 在企业应用程序世界中,Internet Explorer仍然是不可否认的力量。 另一个经常被忽略的因素是Flash Builder提供的开发工具和开发效率。 一旦添加了适用于Flash Builder的Potomac插件的其他功能,您便拥有了用于企业模块化开发的高效且功能强大的IDE。 HTML / Javascript生态系统中没有可比的东西。

Jeremy(Spring BlazeDS集成) :绝对,我认为Flex生态系统已经非常成熟,这已经从大量涌现并继续涌现的大型开源项目中得到了证明,并且我已经看到了一些非常令人印象深刻的企业Flex应用实例。生产。 我同样是HTML 5的忠实拥护者,并期待有一天人们可以使用本机浏览器功能轻松构建当今人们在Flex中构建的一些更高级的功能,并使其可以在多种浏览器中使用。 诸如Canvas,WebSockets和CSS转换之类的技术具有很大的前景,但是我认为要花一些时间才能最终确定HTML 5框架下的所有规范并在浏览器中一致地使用它们,并且在工具到达之前。企业广泛采用所必需的成熟点。

Zoltan(FluorineFx):当 HTML5更成熟和可用时,HTML5可能会改变RIA格局,而Flex实际上存在。 Flex框架和周围的生态系统已经足够成熟,并且在那里有成千上万的生产Flex企业应用程序。

Laura(Mate):我坚信如此,并且认为HTML 5尚未达到标准。 我记得当我们从HTML表转换为CSS布局时。 您CSS必须充满技巧,才能使其在任何地方都能正常工作。 对于HTML 5,我认为由于缺乏跨浏览器的兼容性和支持,目前情况甚至更糟。

Dima(RestfulX):尽管最近围绕iPhone / iPad上的Flash引发了所有争议,但Flex实际上是在那里开发Rich Internet Applications的较成熟和完整的框架之一,非常适合开发企业应用程序。 它具有大型组件库,一流的数据可视化选项,跨浏览器和平台的一致呈现,测试自动化支持和出色的工具。 从长远来看,所有这些都可以节省您的时间,尤其是如果您不针对具有相同GUI代码库的移动设备。

就HTML 5而言,竞争主要是Flash,而不是Flex。 SVG,Canvas组件,本地SQLite DB和音频/视频组件可以使HTML 5与Flash相提并论。 Flex处于更高的抽象级别,专注于组件驱动的UI开发。 因此,与诸如SproutCore和Cappuccino之类的框架相比,它是最好的选择。 无论如何,很高兴看到将HTML5最终化并得到所有主要浏览器支持的动力。

Swiz小组:绝对。 Swiz团队中的每个人都有在我们的职业生涯中创建企业Flex应用程序的经验,而这种经验正是启发并告知了框架的哲学和体系结构的原因。 特别是对于需要更丰富的表示层的应用程序,无论是用于数据可视化,吸引和吸引用户,还是提供高度的交互性,Flex都优于传统的基于浏览器的解决方案。 目前,在2010年6月,HTML 5对于任何面向公众的工作,企业或其他方面都不是可行的解决方案。 根据您想在“标准”的可塑定义中包含哪些功能,您正在寻找一种可以始终为30%的普通大众服务的解决方案。 如果您的客户愿意为能够抵消其潜在受众70%的工作付费,那么您将获得更多的权力。 我们还没有遇到任何这些客户。 如果要保持一致性,相对的开发便利性和受众范围很重要,那么Flex是合乎逻辑的选择,请放手

InfoQ:您最喜欢Flex 4的哪些新功能? 您希望在将来的版本中看到什么?

克里斯(Potomac):我最喜欢的Flex 4功能,特别是Flash Builder 4,是增强的Package Explorer。 我们还提供了一个称为SourceMate的Flash Builder 4插件,它为Flash Builder带来了许多企业功能,包括代码生成,重构等。 升级到Flash Builder 4 + SourceMate后,Flex 3开发人员的生产率将提高一倍。

在以后的Flex版本中,我希望看到更好HTML控件。 许多企业应用程序需要在其Flex应用程序中显示完整HTML标记。

Jeremy(Spring BlazeDS集成) :Flex 4中最令人印象深刻,最易玩的功能是新的图形效果和动画功能,以及将它们应用于屏幕上任何可视元素的简便性。 我也很高兴看到编译器在速度上有了一些显着提高,从而使代码部署刷新周期更快了一些。 我希望将来看到的东西与框架本身无关,而与Flash Builder中基于Eclipse的工具无关。 该工具很棒,并且通常可以极大地提高生产力,但是与典型的Java开发人员所习惯的相比,仍然需要填补一些空白。 还有一个名为SourceMate的很棒的插件,它添加了Java开发人员可能认为“缺少的功能”的很多东西,例如改进的代码生成和重构,但是如果将这些功能直接并入Adobe工具中,肯定会更好。盒子。

Zoltan(FluorineFx):我最喜欢的功能是新的Spark外观,组件体系结构和性能改进(编译器)。 作为开源开发人员,我希望在框架的未来版本中看到持久连接基础结构(RTMPChannel)的可用性。

劳拉(伴侣):我喜欢新的蒙皮和组件范例。 它使创建易于皮肤化的自定义组件变得非常简单。

我希望看到打印技术得到很大的改进,因为这是构建业务应用程序时始终必须满足的要求之一。

Dima(RestfulX): Flex 4中我最喜欢的功能必须是新的组件体系结构。 扩展和样式化现有组件(与Flex 3相比)和创建自己的组件要容易得多。 将来,我希望Adobe专注于使Flash和Flex更加精简和快速。 我希望Flex应用程序具有开箱即用的更好的内存占用空间和更快的加载时间。

Swiz Team:从长远来看,我认为新的组件模型将是有益的。 目前,仍然有很多粗糙的地方,Flash Catalyst之类的工具还没有准备好迎接黄金时间,但是一般的方法是一种不错的方法。 状态在Flex 4中也变得相当有用。通常,FXG还提供了一些有趣的可能性。 我们大多数希望都围绕语言和运行时演化而不仅仅是Flex功能。 支持更高级的功能,例如抽象类,方法重载,多线程,当然更好的元数据支持将大大有助于实现我们的某些想法。

InfoQ:您的项目的未来方向是什么?

克里斯(波托马克):对波托马克来说,这是令人兴奋的时刻。 我们正在接受大量的内容,并推出了许多新功能。 更重要的是,我们最近与Eclipse基金会进行了讨论,以将Potomac带入Eclipse.org。 由于OSGi的使用和推广,EclipseSwift成为Java模块化的世界中心。 我们希望借助Potomac在Flex世界中启动Eclipse生态系统的一个新分支。

波托马克路线图上的一项显着功能是支持从其他站点加载捆绑软件。 这将为Web应用程序开辟一个全新的领域。 想象一下开发一个可以被其他人扩展的公共Web应用程序。 以照片编辑应用程序为例,如今,当这些应用程序在桌面上时,它们中的许多应用程序都提供了添加新调色板和新编辑功能的插件功能。 但是,当这些应用程序移至网络时,它们将失去该功能。 波托马克将使之成为可能。 无需您的用户下载插件,他们只需输入附加提供程序的URL。 开发人员将能够像在桌面上一样在其应用程序周围启用丰富的附加组件生态系统。

Jeremy(Spring BlazeDS集成) :我们关注的主要是Spring Roo插件,该插件将配置Spring BlazeDS Integration远程目标并构建基于Flex的用户界面。 它处理自动生成的动作脚本类,这些类反映了Java域模型,并通过Roo的签名往返功能使两者保持同步。 我们一直在与Spring BlazeDS集成的下一个主要版本(版本1.5)并行进行此工作,因此,我们已经在核心项目中添加了大部分内容,例如支持对Hibernate代理进行适当的AMF序列化和惰性关联。 ,一直直接支持Roo插件的需求。 我们期望核心项目和Roo插件的M1版本很快就会发布。

Zoltan(FluorineFx): FluorineFx将发展为实现消息传递,流服务器为基于Flex的解决方案必须提供的所有功能。 它还将通过提供模板,插件和其他生产力增强功能来关注开发人员的生产力。

Laura(Mate):我们想创建一个不依赖Flex框架的轻量级版本。 我们计划在我们使用的标签上添加一些编译时检查,以使其更容易捕获错误。

Dima(RestfulX):即将发布的RestfulX 1.3.0版本已经做了很多工作,并着重于性能。 更快/更轻松的数据同步和本机AMF支持是即将发布的版本的一些主要功能。 之后,目标将转向更好的Rails3 / Flex4兼容性。

Swiz团队:现在,我们专注于发布可靠的1.0版本,但是在将来,我们希望继续增强开发人员的能力,使其能够编写干净,功能强大的代码,并能够快速编写它。 我们希望Swiz为开发人员消除许多繁琐而无聊的任务。 我们希望它继续提供一个强大的,可扩展的基础,开发人员可以在此基础上编写自己的可重用功能。 我们希望它能帮助创建和驱动由社区创建的Swiz扩展的大量集合,这些扩展使使用Swiz创建企业Flex应用程序变得更好。

您可以在InfoQ上找到有关FlexFlashRich Internet Applications的更多信息!

翻译自: https://www.infoq.com/articles/enterprise-flex/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

flex框架

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值