`
hideto
  • 浏览: 2683112 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

介绍Cairngorm

阅读更多
Cairngorm是Adobe Labs上的Flex MVC框架
Cairngorm文档很少,其Wiki上有核心开发人员Steven Webster写了6篇文章来介绍Cairngorm:
Part I - Introducing Cairngorm
Part II - Keeping State on the Client
Part III - Architecting the View
Part IV - Feature-driven Development
Part V - Server-side Integration
Part VI - Rapid and Consistent Development with Cairngorm and Flex

Steven WEbster是Adobe RIA的practice director。

第一部分、介绍Cairngorm:

介绍
这6篇文章的系列展示了一个叫Cairngorm的面向Flex开发人员的开源框架。在这个系列里我解释了Cairngorm幕后的主要思想和
Adobe给出的设计挑战。Cairngorm是一个合适的开发架构。

这个系列使用Cairngorm Store示例程序来解释当基于Cairngorm开发时Adobe Consulting关于scoping、estimating和delivering
富Internet应用(RIA)的思考。我也解释了Cairngorm的多种概念并深入Cairngorm Store的实现。

最后,我通过以Cairngorm开发人员的角度添加一个新特性到Cairngorm Store程序来示范基于Cairngorm微架构发布RIA的主要
好处。通过这一步,你可以自己看到Cairngorm的好处。

Cairngorm当然不是构建Rich Internet Application的唯一方式。但是,Adobe Consulting在已有的Flex程序开发经验的基础上曾
使用本系列文章里的信息来帮助大量客户和合伙人成功发布大规模Flex RIA。

这个系列从理解Cairngorm的动机和概念到基于Cairngorm架构你自己的程序完整的介绍了Cairngorm。

第一部分提供了理解Cairngorm架构的上下文和背景,而不是从一开始就一头扎进代码里。我讨论了框架,并澄清了程序框架和架构
框架之间的区别。然后我介绍了设计模式和微架构概念。最后,我给出Cairngorm出现的背景:它的历史和roadmap。

在第二至六部分,你将在客户端和一个J2EE服务器端使用Flex和Cairngorm开发一个零售商业程序。

澄清框架的定义
在软件开发里,框架这个术语是承受最多和最滥用的术语。当开发人员写了大量代码并认为足够重要来在其他项目中使用,他们趋向
于给代码赋予这个术语。这样就有了许多类型的框架:持久框架、事务框架、日志框架、面向方面框架、动画框架、单元测试框架等等

在深入讨论Cairngorm框架之前,解释Adobe Consulting团队与客户和合伙人分享的关于框架认识的区别很重要 -- 特别是程序框架
和架构框架间的区别。

程序框架
Flex是程序框架的一个典型的例子。即将发布的Flex 2.0事实上在架构上区别于程序框架 -- 通常在Adobe里称为"app model"。Flex
框架2.0提供丰富的类库来提供高粒度功能性供开发人员创建自定义的代码。例如,Flex 2.0集合API提供开发人员用来创建受管的数
据集合的底层功能性。开发人员组合这些集合为他们的特殊程序的高级对象。而且,程序框架如Flex也暴露了程序级的服务,如
history管理、layout管理、cursor管理、exception handling、i18n、logging等等。

当框架提供高粒度类库来给开发人员提供高级别灵活性,或者当框架提供对多开发人员的项目有用的程序级服务时,我们仍可以称其
为"程序框架"。

另一个程序框架的例子是Adobe Consulting使用的非常成功的FAST框架。FAST框架提供了程序服务如logging、tracing和继承了
Flex1.x框架自己的RPC data services的value-add类库,这在John Bennett的文章里也有所解释:
Faster Development with the Flex Application Starter Toolkit(FAST)

架构框架
架构框架是完全不同的野兽。架构框架除了提供给程序可以悬挂的基础组织 -- 提供骨架和内部结构来负载肌肉外不提供任何额外的
服务给开发人员

换句话说,架构框架提供你的程序的技术架构通常的入口点。

使用设计模式
不关注软件工程里重大的改进 -- 设计模式的话,很难谈论技术架构。

"there is nothing new under the sun"这句话在软件工程原则里是再正确不过了。开发人员发现他们在程序开发中经常遇到不变的
工程问题。而他们的解决方案也和所遇到的问题一样重复不变。不管这些重复出现在哪里,你可以将这些解决方案视为"模式"。

设计模式的诱惑
现在有一个警告:当软件工程师第一次遇到设计模式时,对工程问题解决方案的分类的意识可能非常强大。通常开发人员发现问题的
子集并希望寻找其他可以利用的设计模式。尽管如此,"when all you have is a hammer, everything looks like a nail"这句
老谚语在这里是适用的。你经常会在程序里发现"模式过度",开发人员抛弃了类以及协作的责任,而是把任何东西都扔到Factory、
Flyweight、Observer或Decorator里。

但是,合理的使用设计模式会成为开发人员的工具箱里一个强大的工具。设计模式不仅仅提供问题常见的解决方案,而且开发人员在
程序中使用设计模式的方式也指示了实现的目的。例如,不管何时你在代码中使用Singleton时,你理解这是一个应该只有一个实例
的类。类似的,无论何时你遇到一个Factory时,你会意识到工厂类可以产生一些不同的对象。

微架构作为设计模式的组合
...

Cairngorm的历史
iteration::two是我和Alistair McLeod创立的软件咨询公司,我们意识到要面对的许多在J2EE程序开发里成功解决的设计挑战在RIA
世界里仍然存在。我们回到Flash、Flash Remoting和J2EE的RIA开发历史。

浏览Sun Microsystems提倡的设计模式Core J2EE Pattern Catalog,我们首先在Reality J2EE: Architecting for
Macromedia Flash MX(Pearson Education, 2003)这本书里展示了Flash中这些模式的应用。随着Flash MX 2004的发布,我们在
Macromedia Flash MX 2004 ActionScript2.0 Dictionary(Macromedia Press, 2003)一书的"ActionScript 2.0 Design Patterns
for RIA Development"一章中也展示了这些模式。

由于RIA技术平台从Flash作为设计中心到Flex编程越来越成熟,使用这些模式的动机也出现了。但是,Flex编程模型给我们更优雅的
方式来实现这些模式。而且,一些我们认为对Flash RIA开发人员非常有用的模式(例如|ViewHelper模式)在Flex RIA世界变得不再
有用,我们也创建了一些自己的新的Flex特有的模式,例如ModelLocator模式。

MAX 2004中我们宣布了我们发布基于Flex的开源Cairngorm框架的决定,这在社区中得到广泛影响。

Cairngorm教会你什么
Cairngorm是一个宣布了3个重要领域的微架构:
1, 在客户端处理用户动作
2, 封装业务逻辑和服务端交互
3, 在客户端管理状态并展示该状态到用户界面

Cairngorm提供一个微架构(一些设计模式的集合),目标是解决上述重复出现的3个设计挑战。

当你阅读本系列文章时,你将学习如下内容:
1, Front Controller和Command模式怎样实现"Service to Worker"微架构来监听和响应用户请求
2, Business Delegate和Service Locator模式怎样工作来让你重用业务逻辑并封装它来在客户端和服务端开发团队之间建立
一个清晰的契约并且与服务端实现无关,如Web Services,EJB,ColdFusion组件甚至HTTP上使用XML的RESTful 架构。
3, J2EE里的Value Object模式怎样与ModelLocator模式协作来作为一个优雅的策略使用丰富用户体验维护有状态客户端

Cairngorm的当前状态

Where to Go from Here
分享到:
评论
2 楼 Alex丿 2012-06-01  
@@!~!
1 楼 yi2542578 2011-12-20  
         

相关推荐

    Professional Cairngorm

    - **插件体系**:介绍Cairngorm插件体系的结构和功能。 - **案例研究**:通过具体案例来展示如何开发和使用Cairngorm插件。 #### 第28章:Cairngorm扩展 - **扩展机制**:讲解Cairngorm的扩展机制及其应用场景。 - ...

    cairngorm2_rpc

    本文将详细介绍Cairngorm2_RPC的核心组件及其工作原理,并通过实例分析来加深理解。 #### 二、核心概念 **1. 模型(Model)** 模型是Cairngorm2_RPC架构中的核心组成部分之一,它负责存储和管理应用程序的数据。在...

    introducing_cairngorm.rar_flex_site:www.pudn.com

    1. **框架概述**:介绍Cairngorm的基本概念,包括其设计原则、主要组件以及与其他MVC框架的比较。 2. **核心组件**:详细讲解Cairngorm的中心组件,如事件代理(EventBroker)、命令(Command)、服务定位器(Service...

    Cairngorm框架,很好

    1. **框架概述**:介绍Cairngorm的基本概念和架构,以及为何选择它作为Flex应用的开发框架。 2. **安装和设置**:指导开发者如何将Cairngorm框架集成到他们的Flex项目中。 3. **教程和示例**:通过实际的代码示例...

    cairngorm 框架介绍(详细介绍了Adobe Cairngorm框架)

    **Cairngorm框架详解** Adobe Cairngorm是一款开源的Model-View-Controller(MVC)框架,专门针对Adobe Flex和ActionScript 3.0开发。这个框架为构建可维护和可扩展的富互联网应用程序(RIA)提供了强大的支持。...

    Cairngorm框架配置

    ##### 1.1 Cairngorm核心概念介绍 - **ModelLocator**:作为全局数据存储中心,负责管理应用中的所有值对象(Value Objects, VO),这些VO用于封装数据和业务逻辑。ModelLocator通常被设计为单例模式,确保在整个应用...

    flex as资料

    1. **Cairngorm框架基础**:介绍Cairngorm的核心概念,如Command、ServiceLocator、Event和ModelLocator等,以及如何在Flex项目中设置和使用它们。 2. **MVC模式应用**:解释MVC模式如何帮助组织Flex应用的代码结构...

    flex3_java 教程

    - **Cairngorm简介**:介绍Cairngorm框架,一种用于构建Flex应用程序的MVC框架。 - **组成部分**:解释Cairngorm的核心组成部分及其功能。 - **环境准备**:列出使用Cairngorm所需的环境配置。 #### 28. Demo15: ...

    Flex轻量级开发框架-Cairngorm介绍

    ### Flex轻量级开发框架——Cairngorm详细介绍 #### 一、引言 随着RIA(Rich Internet Applications)技术的发展,Flex作为一种强大的客户端技术,在构建交互丰富的应用方面展现了其独特的优势。为了更好地组织代码...

    跟我StepByStep学FLEX教程------王一松

    - **设计理念**:介绍Cairngorm的设计理念及其在Flex开发中的作用。 #### 33. Cairngorm之组成部分 - **ModelLocator**:ModelLocator是Cairngorm的核心组件之一,用于存储业务逻辑相关的数据。 - **Command**:...

    Flex入门文档 -王一松

    这部分内容会详细介绍Cairngorm的工作原理及其各个组成部分的作用。 通过上述内容,可以看出《跟我StepByStep学FLEX教程》涵盖了从Flex基础知识到高级应用的各个方面,适合不同层次的学习者参考。随着技术的发展,...

    [cairngorm入门]introducing_cairngorm.pdf

    ### Cairngorm框架入门知识点详解 ...通过以上介绍,我们可以看到Cairngorm作为一种经典的Flex MVC框架,在构建复杂RIA应用方面具有独特的优势。对于初学者来说,掌握这些基本概念和技术点是非常重要的第一步。

    flex完全自学手册

    这部分将介绍Cairngorm的基本原理和组成部分,以及如何将其应用于实际项目中。 总之,《Flex完全自学手册》是一本内容全面、实例丰富的教程,无论你是初学者还是有一定经验的开发者,都能从中获得有价值的指导和...

    cairngorm3 module的学习

    MVC模式介绍** MVC模式是一种软件设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制器(Controller)。在Cairngorm 3中,模型负责处理数据,视图负责显示数据,而控制器则充当两者之间的...

    Cairngorm开发文档中文版

    在"**ACCP教程网说明.txt**"中,可能会介绍一些关于学习资源和教程的指南,比如ACCP教程网如何提供Cairngorm的相关教学内容,以及如何有效地利用这些资源来提升你的开发技能。 "**ACCP教程网网址.url**"是一个快捷...

    Cairngorm 开发文档中文版

    Cairngorm开发文档中文版PDF包含了详细的框架介绍、组件用法、示例代码以及常见问题解答,是学习和理解Cairngorm框架的重要资源。对于想要使用Flex和ActionScript进行企业级应用开发的开发者来说,掌握Cairngorm能极...

    Cairngorm一些资料

    《Cairngorm 开发文档中文版.pdf》应该是对Cairngorm框架的详细介绍,包括其设计原则、核心组件以及如何在项目中实施。这份文档通常会涵盖Controller、ServiceLocator、EventBroker、Proxy、ModelLocator等关键角色...

    flex Cairngorm 开发文档中文版.pdf

    8. **Testing and Debugging**:文档可能会介绍如何使用测试工具和调试技巧来确保Cairngorm应用的稳定性和性能。 9. **最佳实践和设计原则**:学习Cairngorm的同时,文档还会强调一些最佳实践,如避免过度复杂的...

Global site tag (gtag.js) - Google Analytics