RL2 Dot Brighton

1,334 views

Published on

Slides from a talk I gave at Dot Brighton

Published in: Technology, Education
1 Comment
7 Likes
Statistics
Notes
  • please reply in my private box(joy.andrew28@yahoo.com)

    Hello

    Iam joy andrew a good looking girl i am humble and cool
    above all i am loving and caring i have gone through your profile
    treuly it is quite intresting to me i will like to have a good relationship
    with you so kindly get incontact
    with me through this address (joy.andrew28@yahoo.com)
    so that i can tell you more about myself and also give you my picture hope to hear from you soon joy
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
1,334
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
1
Comments
1
Likes
7
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • RL2 Dot Brighton

    1. 1. RL2ActionScript Application Framework Dot Brighton - 2012 1
    2. 2. hello, I’m shaun smith @darscan #robotlegshttp://shaun.boyblack.co.za/blog/about/ 2
    3. 3. RL1 Recap Dependency Injection Commands Mediatorshttps://github.com/robotlegs/robotlegs-framework/tree/master 3
    4. 4. RL2 As above, but with: A fluent API Extensions (opt-in) Bundles (presets) Configs Logging (built-in) Module autowiringhttps://github.com/robotlegs/robotlegs-framework/tree/version2 4
    5. 5. Dependency Injection https://github.com/tschneidereit/SwiftSuspenders/ 5
    6. 6. Swiftsuspenders 2injector.map(IService).toValue(service)injector.map(IService).toType(SomeService)injector.map(IService).toSingleton(SomeService)injector.map(SomeService).asSingleton() Faster Local vs shared scopes Hard vs soft mappings https://github.com/tschneidereit/SwiftSuspenders/ 6
    7. 7. Context & Startup framework/readme-context.md 7
    8. 8. context = new Context() .extend(MVCSBundle) .configure(MyAppConfig, this);No more extend and overrideOpt-in extensionsConvenient, shareable bundlesConventions for configurationConsolidated startup process framework/readme-context.md 8
    9. 9. Commands extensions/eventCommandMap 9
    10. 10. eventCommandMap.map(SomeEvent.EVENT, SomeEvent).toCommand(MyCommand).once(); extensions/eventCommandMap 10
    11. 11. Mediators extensions/mediatorMap 11
    12. 12. mediatorMap .map(SomeType) .toMediator(SomeMediator)Can map to interfaces and abstract typesPossibly many mediators per viewNested stage listener optimisations extensions/mediatorMap 12
    13. 13. Configs framework/readme-context.md 13
    14. 14. context = new Context() .extend(MVCSBundle) .configure(MyAppConfig, this); framework/readme-context.md 14
    15. 15. class ViewConfig{ public function ViewConfig(mediatorMap:IMediatorMap) { mediatorMap.map(SomeView) .toMediator(SomeMediator); }} framework/readme-context.md 15
    16. 16. class MyModuleConfig implements IConfig{ [Inject] public var mediatorMap:IMediatorMap; public function configure():void { mediatorMap.map(SomeView) .toMediator(SomeMediator); }} framework/readme-context.md 16
    17. 17. Extensions extensions 17
    18. 18. public class EventCommandMapExtension implements IExtension{ public function extend(context:IContext):void { context.injector .map(IEventCommandMap) .toSingleton(EventCommandMap); }} extensions/eventCommandMap 18
    19. 19. Extensions are installed immediately: context.extend(MyExtension) ~= new MyExtension().extend(context) extensions 19
    20. 20. Bundles bundles 20
    21. 21. context = new Context() .extend(MVCSBundle) .configure(MyAppConfig, this); bundles 21
    22. 22. public class MVCSBundle implements IBundle{ public function extend(context:IContext):void { context.extend( ModularityExtension, EventCommandMapExtension, ... etc ... MediatorMapExtension, StageSyncExtension); context.configure(ContextViewListenerConfig); }} bundles/mvcs 22
    23. 23. Bundles are installed immediately: context.extend(MyBundle) ~= new MyBundle().extend(context) bundles 23
    24. 24. Bundles vs Extensions extensions 24
    25. 25. An extension integrates a single utility or library with a Robotlegs context A bundle installs a selection of extensions and configurations into a Robotlegs context extensions 25
    26. 26. Logging framework/readme-logging.md 26
    27. 27. Lightweight logging system built in: context.getLogger(MyClass) Optional logging extensionsLoggingExtension: allows you to [Inject] public var logger:ILogger;InjectorLoggingExtension: logs injection events (not 4 production!)TraceLoggingExtension: simple trace log target extensions/logging 27
    28. 28. Demos github urls to follow 28
    29. 29. https://github.com/darscan/robotlegs-demos-HelloFlashhttps://github.com/darscan/robotlegs-demos-HelloFlexhttps://github.com/darscan/robotlegs-demos-Todo github.com 29
    30. 30. Thanks!https://github.com/robotlegs/robotlegs-framework 30
    31. 31. Questions? 31

    ×