Zugspitze   alpha
The MenuSourcesTestingExamplesUpload ServiceRepositoriesModule: Foomo.FlashModule: Foomo.ZugspitzeAS: FoomoAS: Zugspitze C...
Sourcesfoomo.core        zugspitze.corefoomo.mx          zugspitze.as3foomo.rpc         zugspitze.mx                  zugs...
foomo.core
foomo.mx
foomo.rpc
foomo.rpc                              Call                 MethodCall          MethodReply     RPCClient                 ...
zugspitze.core
zugspitze.as3                @see Implementation.as
zugspitze.mx
zugspitze.spark
zugspitze.air.mx
zugspitze.air.spark
zugspitze.mobile
zugspitze.rpc
foomo.rpc                                           Proxy                    ProxyMethodCallEvent              ProxyMethod...
zugspitze.flash
Testingfoomo.coreTests         zugspitze.coreTestsfoomo.mxTests           zugspitze.rpcTests                              ...
foomo.coreTests
foomo.mxTests
zugspitze.coreTests
zugspitze.rpcTests
Exampleszugspitze.air.sparkExampleszugspitze.as3Exampleszugspitze.mobileExampleszugspitze.mxExampleszugspitze.sparkExamples
zugspitze.air.sparkExamples
zugspitze.as3Examples
Upload ServiceSourcesExamples
Sources          - Not a core library          - resources/includes          - sharedVo
Examples
RepositoriesASLibraries (Sources)FlexProjects (Examples)
ASLibrariesASLibrary-foomo_core.gitASLibrary-foomo_mx.gitASLibrary-foomo_rpc.gitASLibrary-zugspitze_air_mx.gitASLibrary-zu...
FlexProjectsFlexProject-foomo_examples_todo.gitFlexProject-zugspitze_air_sparkExamples.gitFlexProject-zugspitze_as3Example...
Foomo.FlashFoomo.FlashFoomo.FlashVendorFoomo.FlashLibrary Generator
Foomo.Flash              - CliCallCompc              - FlashCompilerConfig              - FlashVendor
Foomo.FlashConfigs                     @see Toolbox
Foomo.FlashVendor                     @see project.xml                     @see project.xsd
Foomo.FlashVendor
Foomo.FlashLibrary Generator                                - Ant File                                @see AntTests
Foomo.FlashLibrary Generator
Foomo.ZugspitzeFoomo.ZugspitzeFoomo.ZugspitzeScaffoldFoomo.ZugspitzeServicesFoomo.Zugspitze.Backport
Foomo.Zugspitze                  - ProxyGenerator                  - Scaffold                  - Services
Foomo.ZugspitzeScaffold                           @see Configuration                           @see project.xml           ...
Foomo.ZugspitzeServices                           @see Services                           - Ant File
Foomo.ZugspitzeServices
Foomo.Zugspitze.Backport
Foomo.Zugspitze.Backport                           @see Backport_docs.png
FoomoCoreUtilsMemoryManagerLogManagerSessionManager
foomo.core
foomo.utils
foomo.managers
foomo.managers.MemoryManger
foomo.managers.MemoryManager       public interface IMemoryManager       {       	    function gc():void;       	    funct...
foomo.managers.LogManger
foomo.managers.LogManager        public interface ILogManager extends IEventDispatcher        {        	    function get l...
foomo.managers.SessionManager        public interface ISessionManager        {        	    function get localIsAvailable()...
foomo......
Zugspitze CoreMVCCommandsCommandManagerStatusManagerOperations
zugspitze.core (MVC)
zugspitze.core (MVC)                       - simple mvc                       - use as is
zugspitze.core (commands)                            - exec/undo/redo                            - only exec usecases
CommandManagerpublic interface ICommandManager extends IEventDispatcher{	   function set historyName(value:String):void	  ...
StatusManagerpublic interface IStatusManager extends IEventDispatcher{	   function get stack():Array;	   function get busy...
zugspitze.core (operations)                              - async                              - only result/error         ...
Operationspublic interface IOperation extends IEventDispatcher{	   function get result():*;	   function get error():*;}pub...
Zugspitze ServicesUpload ServiceGenerated sourcesProxy, Operations & Commands
Upload Service
Generated Sources
Proxy, Operations & Commands                                            Proxy                     ProxyMethodCallEvent    ...
Proxy, Operations & Commands                                                Operation / Commands                          ...
Easy SetupSetup ProjectScaffold ApplicationDownload LibrariesGenerate Services
Setup Project
Scaffold Application
Download Libraries
Generate Services
Writing CodePure MVCCommand basedOperation based (OperationChain)Operations & Commands                                   -...
Pure MVC           git checkout v.0
Command based                git checkout v.1
Command based   public class ApplicationController extends ZugspitzeController   {   	   //...   	   	   public function s...
Command based   public class ApplicationModel extends ZugspitzeModel   {   	   //...   	   	   public var todoProxy:Servic...
Command based   public class AddTodoCommand extends AbstractAddTodoCommand   {   	   public var model:ApplicationModel;   ...
Operation based                  git checkout v.2
OperationChain                                     OperationChain extends EventDispatcherChain                            ...
OperationChain    OperationChain    	   .create(AddTodosOperation, this.todos, this.model.todoProxy)        # EventArgs: e...
Operation based    public class ApplicationController extends ZugspitzeController    {       //...    	    public function...
Operation based    public class ApplicationModel extends ZugspitzeModel    {    	   //...    	    	   public var todoProxy...
Operations & Commands                        git checkout v.5                        @see todoFlex
What’s on my Todo ListSkinning workflowLogService reimplementationBusyStatus through operationsFlash/Reflex integrationLook ...
CHEERS & QAs
Upcoming SlideShare
Loading in …5
×

Foomo / Zugspitze Presentation

784 views

Published on

Slides from the Foomo / Zugspitze presentation at bestbytes.

Published in: Technology, Travel
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
784
On SlideShare
0
From Embeds
0
Number of Embeds
154
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Foomo / Zugspitze Presentation

  1. 1. Zugspitze alpha
  2. 2. The MenuSourcesTestingExamplesUpload ServiceRepositoriesModule: Foomo.FlashModule: Foomo.ZugspitzeAS: FoomoAS: Zugspitze CoreAS: Zugspitze ServiceEasy SetupWriting CodeWhat’s next
  3. 3. Sourcesfoomo.core zugspitze.corefoomo.mx zugspitze.as3foomo.rpc zugspitze.mx zugspitze.spark zugspitze.air.mx zugspitze.air.spark zugspitze.mobile zugspitze.rpc (zugspitze.flash)
  4. 4. foomo.core
  5. 5. foomo.mx
  6. 6. foomo.rpc
  7. 7. foomo.rpc Call MethodCall MethodReply RPCClient Server MethodCall MethodReply
  8. 8. zugspitze.core
  9. 9. zugspitze.as3 @see Implementation.as
  10. 10. zugspitze.mx
  11. 11. zugspitze.spark
  12. 12. zugspitze.air.mx
  13. 13. zugspitze.air.spark
  14. 14. zugspitze.mobile
  15. 15. zugspitze.rpc
  16. 16. foomo.rpc Proxy ProxyMethodCallEvent ProxyMethodCall Controller RPCClient ProxyMethodCallEvent ProxyMethodCall ProxyErrorEvent - ProxyErrorEvent - Security - EndPoint - Null
  17. 17. zugspitze.flash
  18. 18. Testingfoomo.coreTests zugspitze.coreTestsfoomo.mxTests zugspitze.rpcTests - separate project
  19. 19. foomo.coreTests
  20. 20. foomo.mxTests
  21. 21. zugspitze.coreTests
  22. 22. zugspitze.rpcTests
  23. 23. Exampleszugspitze.air.sparkExampleszugspitze.as3Exampleszugspitze.mobileExampleszugspitze.mxExampleszugspitze.sparkExamples
  24. 24. zugspitze.air.sparkExamples
  25. 25. zugspitze.as3Examples
  26. 26. Upload ServiceSourcesExamples
  27. 27. Sources - Not a core library - resources/includes - sharedVo
  28. 28. Examples
  29. 29. RepositoriesASLibraries (Sources)FlexProjects (Examples)
  30. 30. ASLibrariesASLibrary-foomo_core.gitASLibrary-foomo_mx.gitASLibrary-foomo_rpc.gitASLibrary-zugspitze_air_mx.gitASLibrary-zugspitze_air_spark.gitASLibrary-zugspitze_as3.gitASLibrary-zugspitze_core.gitASLibrary-zugspitze_mobile.gitASLibrary-zugspitze_mx.gitASLibrary-zugspitze_rpc.gitASLibrary-zugspitze_spark.git - naming conventions
  31. 31. FlexProjectsFlexProject-foomo_examples_todo.gitFlexProject-zugspitze_air_sparkExamples.gitFlexProject-zugspitze_as3Examples.gitFlexProject-zugspitze_mobileExamples.gitFlexProject-zugspitze_mxExamples.gitFlexProject-zugspitze_sparkExamples.git - naming conventions
  32. 32. Foomo.FlashFoomo.FlashFoomo.FlashVendorFoomo.FlashLibrary Generator
  33. 33. Foomo.Flash - CliCallCompc - FlashCompilerConfig - FlashVendor
  34. 34. Foomo.FlashConfigs @see Toolbox
  35. 35. Foomo.FlashVendor @see project.xml @see project.xsd
  36. 36. Foomo.FlashVendor
  37. 37. Foomo.FlashLibrary Generator - Ant File @see AntTests
  38. 38. Foomo.FlashLibrary Generator
  39. 39. Foomo.ZugspitzeFoomo.ZugspitzeFoomo.ZugspitzeScaffoldFoomo.ZugspitzeServicesFoomo.Zugspitze.Backport
  40. 40. Foomo.Zugspitze - ProxyGenerator - Scaffold - Services
  41. 41. Foomo.ZugspitzeScaffold @see Configuration @see project.xml -> might move to Flash
  42. 42. Foomo.ZugspitzeServices @see Services - Ant File
  43. 43. Foomo.ZugspitzeServices
  44. 44. Foomo.Zugspitze.Backport
  45. 45. Foomo.Zugspitze.Backport @see Backport_docs.png
  46. 46. FoomoCoreUtilsMemoryManagerLogManagerSessionManager
  47. 47. foomo.core
  48. 48. foomo.utils
  49. 49. foomo.managers
  50. 50. foomo.managers.MemoryManger
  51. 51. foomo.managers.MemoryManager public interface IMemoryManager { function gc():void; function unload(obj:Object):void; function addUnloader(type:*, unloader:IUnloader):void; function removeUnloader(type:*):void; }
  52. 52. foomo.managers.LogManger
  53. 53. foomo.managers.LogManager public interface ILogManager extends IEventDispatcher { function get level():int function set level(value:int):void function isDebug():Boolean function isInfo():Boolean function isWarn():Boolean function isError():Boolean function isFatal():Boolean function removeLoggingTarget(target:*):Boolean; function addLoggingTarget(target:ILoggingTarget):String function log(category:*, level:int, message:String, parameters:Array):void; } # Set log level LogManager.level = LogLevel.DEBUG; # Log entry @see SparkExamples if (LogManager.isDebug()) LogManager.debug(this, "Cant undo command - command in queue");
  54. 54. foomo.managers.SessionManager public interface ISessionManager { function get localIsAvailable():Boolean function get clientId():String function get sessionId():String function setLocalData(key:Object, value:*):* function getLocalData(key:Object, defaultValue:*=null):* function removeLocalData(key:Object):* function flushLocal():String function clearLocal():void }
  55. 55. foomo......
  56. 56. Zugspitze CoreMVCCommandsCommandManagerStatusManagerOperations
  57. 57. zugspitze.core (MVC)
  58. 58. zugspitze.core (MVC) - simple mvc - use as is
  59. 59. zugspitze.core (commands) - exec/undo/redo - only exec usecases
  60. 60. CommandManagerpublic interface ICommandManager extends IEventDispatcher{ function set historyName(value:String):void function get historyName():String function set historySize(value:int):void function get historySize():int function get undoAble():Boolean function get redoAble():Boolean function execute(command:ICommand):void function undo():void function redo():void}# Controllerthis.executeCommand(new AddTodosCommand([todo], this.model, true));
  61. 61. StatusManagerpublic interface IStatusManager extends IEventDispatcher{ function get stack():Array; function get busy():Boolean; function setBusyStatus(instance:Object):void; function removeBusyStatus(instance:Object):void;}# AnywhereStatusManager.setBusyStatus(this);StatusManager.removeBusyStatus(this);
  62. 62. zugspitze.core (operations) - async - only result/error - progress
  63. 63. Operationspublic interface IOperation extends IEventDispatcher{ function get result():*; function get error():*;}public interface IProgressOperation extends IOperation{ function get total():Number; function get progress():Number;}
  64. 64. Zugspitze ServicesUpload ServiceGenerated sourcesProxy, Operations & Commands
  65. 65. Upload Service
  66. 66. Generated Sources
  67. 67. Proxy, Operations & Commands Proxy ProxyMethodCallEvent ProxyMethodCall Controller RPCClient ProxyMethodCallEvent ProxyMethodCall ProxyErrorEvent
  68. 68. Proxy, Operations & Commands Operation / Commands Proxy ProxyMethodCallEvent ProxyMethodCall Controller RPCClient ProxyMethodCallEvent ProxyMethodCall OperationEvent @see ProxyMethodOp.as - Exception Handling - Messages - Result
  69. 69. Easy SetupSetup ProjectScaffold ApplicationDownload LibrariesGenerate Services
  70. 70. Setup Project
  71. 71. Scaffold Application
  72. 72. Download Libraries
  73. 73. Generate Services
  74. 74. Writing CodePure MVCCommand basedOperation based (OperationChain)Operations & Commands - no right way - many possibilities - take notes! - feedback? i.e. - operations in model
  75. 75. Pure MVC git checkout v.0
  76. 76. Command based git checkout v.1
  77. 77. Command based public class ApplicationController extends ZugspitzeController { //... public function setCurrentState(state:String):void { this.executeCommand(new SetValueCommand(this.model, currentState, state, true)); } public function editTodo(todo:Todo):void { this.executeCommand(new SetValueCommand(this.model, todo, todo, true)); this.executeCommand(new SetValueCommand(this.model, currentState, ApplicationModel.STATE_EDIT, true)); } public function addTodo(text:String):void { this.executeCommand(new AddTodoCommand(text, this.model)); this.executeCommand(new SetValueCommand(this.model, currentState, ApplicationModel.STATE_OPEN_LIST, true)); } //... }
  78. 78. Command based public class ApplicationModel extends ZugspitzeModel { //... public var todoProxy:Service1Proxy = new Service1Proxy; public var currentState:String = STATE_LOADING; public var opentTodos:ArrayCollection; public var completeTodos:ArrayCollection; public var todo:Todo; public function setTodos(todos:Array):void { var open:Array = new Array; var complete:Array = new Array; for each (var todo:Todo in todos) { if (todo.complete) { complete.push(todo); } else { open.push(todo); } } this.completeTodos = new ArrayCollection(complete); this.opentTodos = new ArrayCollection(open); } //... }
  79. 79. Command based public class AddTodoCommand extends AbstractAddTodoCommand { public var model:ApplicationModel; public function AddTodoCommand(text:String, model:ApplicationModel) { this.model = model; super(text, this.model.todoProxy, true); } override protected function methodCall_proxyMethodCallResultHandler(event:ProxyMethodCallEvent):void { this.model.setTodos(AddTodoCall(event.methodCall).result); this.dispatchCommandCompleteEvent(); } }
  80. 80. Operation based git checkout v.2
  81. 81. OperationChain OperationChain extends EventDispatcherChain OperationClass CompleteEvent ErrorEvent AddEventListener AddCallback Chain Unload Controller EventArgs ... rest OperationClass
  82. 82. OperationChain OperationChain .create(AddTodosOperation, this.todos, this.model.todoProxy) # EventArgs: event.operation.result # function setCreatedTodos(todos:Array):void .addOperationCompleteCallback(this.setCreatedTodos, [operation.result]) # GetTodosOperation(proxy:TodoProxy) .chainOnOperationComplete(GetTodosOperation, null, this.model.todoProxy) .addOperationCompleteCallback(this.model.setTodos, [operation.result]) .addOperationCompleteCallback(this.model.setCurrentState, null, ComponentModel.STATE_OPEN_LIST) .unloadOnOperationComplete(); ;
  83. 83. Operation based public class ApplicationController extends ZugspitzeController { //... public function setCurrentState(state:String):void { this.model.currentState = state; } public function editTodo(todo:Todo):void { this.model.todo = todo; this.model.currentState = ApplicationModel.STATE_EDIT; } public function getTodos():void { OperationChain .create(GetTodosOperation, this.model.todoProxy) .addOperationCompleteCallback(this.model.setTodos, [operation.result]) .addOperationCompleteCallback(this.setCurrentState, null, ApplicationModel.STATE_OPEN_LIST) .unloadOnOperationComplete(); ; } //... }
  84. 84. Operation based public class ApplicationModel extends ZugspitzeModel { //... public var todoProxy:Service1Proxy = new Service1Proxy; public var currentState:String = STATE_LOADING; public var opentTodos:ArrayCollection; public var completeTodos:ArrayCollection; public var todo:Todo; public function setTodos(todos:Array):void { var open:Array = new Array; var complete:Array = new Array; for each (var todo:Todo in todos) { if (todo.complete) { complete.push(todo); } else { open.push(todo); } } this.completeTodos = new ArrayCollection(complete); this.opentTodos = new ArrayCollection(open); } //... }
  85. 85. Operations & Commands git checkout v.5 @see todoFlex
  86. 86. What’s on my Todo ListSkinning workflowLogService reimplementationBusyStatus through operationsFlash/Reflex integrationLook at SignalsFilter for LoggerDebug menuHudson, Testing, UI Testing, .....
  87. 87. CHEERS & QAs

×