1 / 40

Vara Framework

Introducing…. Vara Framework. Agenda. Introduction Benefits Challenges Demonstration Next Steps. Vara Framework. Introduction. About Mike Merchant. 12+ Years in Software Development 10 Years between KP and SCE Developed or managed on 50+ projects

brier
Download Presentation

Vara Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introducing…. Vara Framework

  2. Agenda • Introduction • Benefits • Challenges • Demonstration • Next Steps

  3. Vara Framework Introduction

  4. About Mike Merchant • 12+ Years in Software Development • 10 Years between KP and SCE • Developed or managed on 50+ projects • Experience in Flex, Java, .NET and others • Founder and President of MCW Software, an RIA consulting firm in Lake Forest, CA

  5. Introduction • “What is this Vara Framework?” • User workflow framework for Flex • New architecture? New use of patterns? • Based on concepts I’ve been thinking about and working on for most of my software development career • Developed version for VB 6.0 around 2000 • Developed first Adobe Flex version last year • Used and maintained by MCW Software

  6. Introduction • “How come I’ve never heard of it?” • This is the first time we have presented it publicly (11/5/2009) • “Why should I care?” • Vara makes building large-scale, enterprise RIAs simpler, faster, easier to maintain, and more consistent.

  7. Observations • We are going to talk about CRUD (a.k.a. Create, Read, Update, Delete) • Applications handle CRUD similarly • Forms should handle CRUD consistently • Applications tend to repeat this logic for each and every screen • Logic is very difficult to abstract

  8. Observations • Views have arbitrary complexity • Resources have arbitrary complexity • Mapping is usually not simple • Simple binding does not solve this • MVC does not go far enough

  9. Observations • Any widely used frameworks that concretely handle CRUD operations??? • Desire for frameworks is NOT to dumb down or eliminate the developer. • Desire for frameworks comes from being pragmatic and the need to efficiently build applications that are easily maintainable and flexible.

  10. Scenario #1: SDI Application • Assume we are building an application that shows one employee form at a time (i.e. single-document interface - SDI) • Open an employee record from a list • Make some changes • Open another employee record from list • What actions need to take place?

  11. Scenario #1: SDI Application • Load new record…but wait… • Clear existing record…but wait... • Save existing record…but wait… • Has existing record changed? • Should the user be prompted to save changes? • How did user respond to the prompt? Yes? No? Cancel? • Is the data valid?

  12. Scenario #1: SDI Application • Save existing record • How to extract data to save from view? • Where to send that data? • Remote Object? Web Service? • Was save successful? • What to do after save? Update record in list?

  13. Scenario #1: SDI Application • Clear existing record • How do we reset the form? • Do we need to clear the resource? • Load new record • Where do we load from? • How to populate the data onto the view? • What to do after load?

  14. Scenario #2: MDI Application • Assume we are building an application that uses multiple employee form at a time (i.e. multiple-document interface - MDI) • Open an employee record from list • Make some changes • Close the form

  15. Scenario #2: MDI Application • Close form… but wait… • Clear form… but wait... • Save existing record…but wait… • Has existing record changed? • Should the user be prompted to save changes? • How did user respond to the prompt? Yes? No? Cancel? • Is the data valid? • Save record • How to extract data to save from view? • Where to send that data? • Remote Object? Web Service? • Was save successful? • What to do after save? Update record in list? • Clear record • How do we reset the form? • Do we need to clear the resource? • Close form

  16. Scenario #3: PITA Application • Write an application that has 100 data entry forms of arbitrary complexity (trees, tabs, data grids, file uploads, custom components, etc.) • Handle the loading, saving, closing, deleting, prompting, and validation consistently throughout the application

  17. Scenario #3: PITA Application • 3 months into PITA project…. • PITA Boss read usability study about benefits of single-document interfaces (SDI) • He wants you to convert those screens from MDI to SDI • He also wants prompting to occur only if the user has actually changed the record • Due to budget constraints, the timeline needs to be reduced

  18. Core Ideas of Vara • Developer should be able to handle… • Design and development of views • Selection and development of resources • View/Model interaction • Resource/Model interaction • User prompting

  19. Core Ideas of Vara • Actions always occur in a certain order • Top-level action can start other actions • Workflow can orchestrate these actions • Common workflow can be provided • Interact with developer’s code in order to manage the views and resources

  20. Flex MVC Architectures Layers User Interface Flex Application Network Services Middleware Business Logic Data Access Database Database

  21. Flex MVC Architectures Layers User Interface Flex Application Resource Services Business Logic Data Access Database

  22. Flex MVC Architectures Layers User Interface View Controller Model Resource What about the resource? Services Business Logic Data Access Database

  23. Vara Architecture Provided by Framework Created by Developer View Vara Framework Model Resource

  24. Vara Architecture Provided by Framework Created by Developer View Actions Workflow View Adapter View Adapter Implementation Initialize Load Clear Model Save Resource Adapter Resource Adapter Implementation Unload Close Resource

  25. Vara Workflow Actions Load Close Unload Clear Initialize Destroy Save Generic

  26. Steps to Implement Vara • Step 1: Include Vara.swc in Flex project • Step 2: Create View Adapter class • Step 3: Create Resource Adapter class • Step 4: Declare BasicWorkflowImpl • Step 5: Add calls to xxxxAction.start() • Step 6: Override adapters as needed

  27. Step 1: Include Vara.swc

  28. Step 2: Create View Adapter Step 3: Create Resource Adapter

  29. Step 4: Declare Workflow

  30. Step 5: Add action calls

  31. Step 6: Override as needed Vara provides… Developer extends and overrides… AdapterImpl ViewAdapterImpl

  32. Summary

  33. Vara Framework BENEFITS

  34. Benefits • Consistent handling of user workflow across an application • Makes applications easier to maintain • Speeds up coding by reducing duplication • Increases flexibility and agility in responding to customers demands

  35. Vara Framework CHALLENGES

  36. Challenges • Remember Flex applications are single-threaded and asynchronous • Remember to call proceed() • Integration with other frameworks? • Dependency injection • More use of event handling • Enable more modularity

  37. Vara Framework DEMONSTRATION

  38. Demonstration • Download samples.zip from SourceForgehttps://sourceforge.net/projects/vara/files/Downloads/samples.zip/download

  39. Vara Framework Next Steps

  40. Next Steps • Download the SWC:https://sourceforge.net/projects/vara/files/Downloads/Vara.swc/download • Download the source (SVN):https://sourceforge.net/projects/vara/develop • Join the discussion:https://sourceforge.net/projects/vara/forums/forum/1032315

More Related