InfoQ Geekathon 大模型技术应用创新大赛 了解详情
写点什么

用 Anvil 构建企业级 Flex 应用

  • 2009-02-12
  • 本文字数:1881 字

    阅读完需:约 6 分钟

在本报道中, Anvil 项目的创建者 Ryan Knight 与 InfoQ.com 分享了他自己的开源项目。Anvil 是一个用来帮助更容易地开发企业级 Flex 应用的开源项目。另外,它还为运行 Flex 应用程序提供了一个门户环境。

首先,Ryan 为 InfoQ.com 整体介绍了 Anvil:

介绍一下历史背景可能会帮助大家了解 Anvil。在 2007 年 5 月份,我开始为 Williams Gas Pipelines 编写一个新的企业级 Flex 项目。在当时,Flex 才刚刚开始用于构建企业中的大型应用。我们预见到在使用 Flex 构建大型应用时会遇到很多挑战,所以我们寻求了 James Ward 的帮助,他是来自于 Adobe 的 Flex 布道者。他提供了如何模块化应用程序,以及如何在应用程序的不同层次处理事件等很多方面的早期指导。作为此次合作内容的一部分,我们决定在核心框架之上启动一个开源项目。 在将 Anvil 从一个实际项目核心框架的一部分独立出来,最让我高兴的是,我能够将我在 Williams 中做的许多工作贡献给开源社区。而且由于它的广泛采用,大量最明显的 bug 都已经得到修复。另外我们还多次与 James 会面,以取得架构方向和编码上的帮助。所以你今天能看到的,是一个高端框架,能够解决开发者在构建大型 Flex 应用时遇到的一些巨大挑战。现在 Anvil 提供了许多有用的功能,比如布局环境、与 Spring Security 集成的安全机制、模块加载和管理,以及许多其他功能。它还提供了一个基于 Flex MDI 项目(现在是 FlexLib 的一部分)的门户框架。这样就提供了布局和窗体的管理。

接下来,Ryan 解释了 Anvil 与其他 Flex 框架有什么不同:

Anvil 跟 Mate 和 Cairgorm 这样的框架相比,解决的是不同的问题。那些框架解决的是 MVC 较低层次的问题。而 Anvil 的重心在于解决像如何有效利用 Flex 架构大型应用这样宏观的问题。大多数情况下,它可以和其他框架共同使用,比如 Mate。可是我们确实发现了 Cairngorm 无法配合工作,因为 Cairngorm 只允许一份运行时的 MVC。通过模块功能,你可以让同一模块加载多次,这样本质上针对每个模块你都有个微 MVC。可这样的情形在 Cairngorm 中是行不通的,比如当某个模块触发事件更新模型的时候。其实这样的更新应该隔离成一个独立的模块,但 Cairngorm 是在全局范围内传递事件的。

至于 Anvil 的许可证:

Apache 2.0 - 不出众人所料,但这只是为了让用户知道你在用它做什么。

Ryan 接着解释了其他人如何从 Anivl 获得益处:

我总是会从别人的代码中受益很多。比如项目的最困难部分之一就是将 ant 的构建过程合在一起。为了完成这个任务,我实际上参考了 Google GWT 项目构建过程中的很多思想。因此即使你已经有了一个很不错的应用程序,我想你仍然可以从 Anvil 中学到很多。把所有的东西合起来使用需要很陡的学习曲线,而且我们过去的确遭遇过大量的技术挑战。 对于崭新的应用程序,我们强烈建议先浏览一下 Anvil,看看它是不是合适你。它可以提供一个简单的门户环境,你的 portlet 可以在其中显示并布局。它还有菜单系统让用户选择具体显示哪些 portlet。

InfoQ 接着请 Ryan 讨论一下 Flex 的各个模块,以及 Anvil 是如何使用他们的:

这是我们从 James 那里学到的最重要的技能之一,即如何使用各个模块。我们尝试着在 Anvil 中提供工具来处理模块加载和管理,来遵从所有这些最佳实践。将一个应用分成不同的模块可以带来很多好处,比如开发者可以同时分别工作在应用程序的不同部分上。在开发时你不需要将整个项目都加载到 Flex Builder 中去。Anvil 还提供了 ant 脚本来方便地编译 flex 应用程序。这跟模块结合在一起,在编译整个应用程序时提供另外一个好处,模块可以让编译呈线性进行,从而加速编译过程。 而对于运行时和部署,模块则有另外的好处。应用程序中的一小部分可以在应用启动时加载起来,从而为用户提供快速的响应。然后应用的其他部分就会在需要时从后台悄悄加载。这样每个单独的模块都很安全,甚至可以分发到不同的机器上以得到负载均衡或者故障转移。

最后,InfoQ 询问 Ryan 我们的读者还需要了解些什么:

现在我们一直在期待来自于社区的反馈。我们有很多如何采用 Anvil 的想法,但我们也希望 Anvil 能对更多的人有用。我在最近接受 DrunkOnSoftware.com 的视频采访时谈到了很多内容。 另外,我最近加入了 Gorilla Logic( www.gorillalogic.com ),并期望能将那里工作合并进 Flex Monkey 项目 ( http://code.google.com/p/flexmonkey ) 中。我们一直在寻找办法使用 Flex Monkey 测试 Anvil 中的各个模块。

但更重要的是,我们非常欢迎来自于社区的最有帮助的想法。

谢谢你,Ryan。

开始使用 Anvil,请参考 Ryan 编写的指导, Anvil 的介绍

查看英文原文: Enterprise Flex with Anvil

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2009-02-12 08:003548
用户头像

发布了 127 篇内容, 共 40.7 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试 | HTTPS 的通信加解密过程,证书为什么更安全?

测吧(北京)科技有限公司

测试

美团前端二面经典react面试题总结

夏天的味道123

前端 React

小程序与微服务架构如何进行结合

Onegun

小程序 微服务架构 移动开发

猫咪在逐步壮大--PUSS通证深度解析

股市老人

解决方案| anyRTC 融合其他厂商视频会议系统方案

anyRTC开发者

音视频 私有云 视频会议 视频通话 H.323

详细解读 React useCallback & useMemo

夏天的味道123

前端 React

软件测试 | UI自动化中的分层设计

测吧(北京)科技有限公司

测试

软件测试 | UI自动化设计军规

测吧(北京)科技有限公司

测试

FlagOpen大模型技术开源体系,开启大模型时代“新Linux”生态

硬科技星球

API+DevOps:华为云API Arts一体化平台,端到端呵护您的API

科技怪授

API 华为云

ChatGPT“爆红”启示:工业AI如何掀起新型“工业革命”?

Openlab_cosmoplat

人工智能 开源 工业 智能制造 ChatGPT

滴滴前端二面常考react面试题(持续更新中)

夏天的味道123

前端 React

海泰方圆精彩亮相第六届中国人工智能与大数据海南高峰论坛

电子信息发烧客

DataEase 集成 CAS 实现用户单点登录

搞大屏的小北

CAS SSO 单点登录 BI 分析工具 DataEase

软件测试 | UI自动化常用设计模式

测吧(北京)科技有限公司

测试

前端刷完这12道滑动窗口,就可以出山面试了

js2030code

JavaScript LeetCode

软件测试 | UI自动化常用设计模式(二)

测吧(北京)科技有限公司

测试

LP分红、加池分红U、杀机器人、防巨鲸、八代邀请分红的智能合约教程

加密先生

软件测试 | 普罗米修斯 - 自定义exporter

测吧(北京)科技有限公司

测试

软件测试| 普罗米修斯 - 基本使用

测吧(北京)科技有限公司

测试

【网易云商】概念解读稳定性保障

网易云信

稳定性 稳定性测试

软件测试 | 普罗米修斯 - 初识PromQL

测吧(北京)科技有限公司

测试

EMQ广州Office正式启用|在新一站续写开源

EMQ映云科技

开源 物联网 IoT emq 企业号 3 月 PK 榜

软件测试 | 跨平台设备管理方案Selenium Grid

测吧(北京)科技有限公司

测试

经常被问到的react-router实现原理详解

夏天的味道123

前端 React

社交泛娱乐之外,融云 IM 在商业沟通中的实践

融云 RongCloud

IM 泛娱乐 通讯

软件测试 | 简历中应该如何描述才能体现出软技能的实力?

测吧(北京)科技有限公司

测试

软件测试 | 普罗米修斯 - HTTP API调用PromQL

测吧(北京)科技有限公司

测试

软件测试 | 普罗米修斯 - PromQL进阶

测吧(北京)科技有限公司

测试

模块7 王者荣耀商城-异地多活架构

KING

低代码如何推动自动化未来

力软低代码开发平台

  • 扫码添加小助手
    领取最新资料包
用Anvil构建企业级Flex应用_Java_Jon Rose_InfoQ精选文章