Introducing….<br />Vara Framework<br />
Agenda<br />Introduction<br />Benefits<br />Challenges<br />Demonstration<br />Next Steps<br />
Introduction<br />Vara Framework<br />
About Mike Merchant<br />12+ Years in Software Development<br />10 Years between KP and SCE<br />Developed or managed on 5...
Introduction<br />“What is this Vara Framework?”<br />User workflow framework for Flex<br />New architecture? New use of p...
Introduction<br />“How come I’ve never heard of it?”<br />This is the first time we have presented it publicly (11/5/2009)...
Observations<br />We are going to talk about CRUD (a.k.a. Create, Read, Update, Delete)<br />Applications handle CRUD simi...
Observations<br />Views have arbitrary complexity<br />Resources have arbitrary complexity<br />Mapping is usually not sim...
Observations<br />Any widely used frameworks that concretely handle CRUD operations???<br />Desire for frameworks is NOT t...
Scenario #1: SDI Application<br />Assume we are building an application that shows one employee form at a time (i.e. singl...
Scenario #1: SDI Application<br />Load new record…but wait…<br />Clear existing record…but wait... <br />Save existing rec...
Scenario #1: SDI Application<br />Save existing record<br />How to extract data to save from view?<br />Where to send that...
Scenario #1: SDI Application<br />Clear existing record<br />How do we reset the form?<br />Do we need to clear the resour...
Scenario #2: MDI Application<br />Assume we are building an application that uses multiple employee form at a time (i.e. m...
Scenario #2: MDI Application<br />Close form… but wait…<br />Clear form… but wait... <br />Save existing record…but wait…<...
Scenario #3: PITA Application<br />Write an application that has 100 data entry forms of arbitrary complexity (trees, tabs...
Scenario #3: PITA Application<br />3 months into PITA project….<br />PITA Boss read usability study about benefits of sing...
Core Ideas of Vara<br />Developer should be able to handle…<br />Design and development of views<br />Selection and develo...
Core Ideas of Vara<br />Actions always occur in a certain order<br />Top-level action can start other actions<br />Workflo...
Flex Application<br />Flex MVC Architectures<br />Layers<br />User Interface<br />Network<br />Services<br />Middleware<br...
Flex Application<br />Resource<br />Flex MVC Architectures<br />Layers<br />User Interface<br />Services<br />Business Log...
Flex MVC Architectures<br />Layers<br />User Interface<br />View<br />Model<br />Controller<br />Resource<br />What about ...
Vara Architecture<br />Created by Developer<br />Provided by Framework<br />View<br />Vara Framework<br />Model<br />Resou...
Vara Architecture<br />Created by Developer<br />Provided by Framework<br />View<br />Actions<br />View Adapter Implementa...
Vara Workflow Actions<br />Load<br />Unload<br />Close<br />Clear<br />Initialize<br />Destroy<br />Save<br />Generic<br />
Steps to Implement Vara<br />Step 1: Include Vara.swc in Flex project<br />Step 2: Create View Adapter class<br />Step 3: ...
Step 1: Include Vara.swc<br />
Step 2: Create View Adapter<br />Step 3: Create Resource Adapter<br />
Step 4: Declare Workflow<br />
Step 5: Add action calls<br />
Step 6: Override as needed<br />Developer extends and overrides…<br />Vara provides…<br />AdapterImpl<br />ViewAdapterImpl...
Summary<br />
BENEFITS<br />Vara Framework<br />
Benefits<br />Consistent handling of user workflow across an application<br />Makes applications easier to maintain<br />S...
CHALLENGES<br />Vara Framework<br />
Challenges<br /><ul><li>Remember Flex applications are single-threaded and asynchronous
Remember to call proceed()
Integration with other frameworks?
Dependency injection
More use of event handling
Upcoming SlideShare
Loading in …5
×

Vara Framework

618 views

Published on

The Vara Framework for Adobe Flex makes it easier for developers to build consistent, user-friendly apps. It is primarily to help keep CRUD operations organized along with user interaction such as prompting to save changes and making remote calls.

This presentation was given at the OC Flex group in Irvine, CA. It was given along with the first public release of the source code and SWC library which can be found on SourceForge at http://sourceforge.net/projects/vara/.

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

  • Be the first to like this

No Downloads
Views
Total views
618
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Vara Framework

  1. 1. Introducing….<br />Vara Framework<br />
  2. 2. Agenda<br />Introduction<br />Benefits<br />Challenges<br />Demonstration<br />Next Steps<br />
  3. 3. Introduction<br />Vara Framework<br />
  4. 4. About Mike Merchant<br />12+ Years in Software Development<br />10 Years between KP and SCE<br />Developed or managed on 50+ projects<br />Experience in Flex, Java, .NET and others<br />Founder and President of MCW Software, an RIA consulting firm in Lake Forest, CA<br />
  5. 5. Introduction<br />“What is this Vara Framework?”<br />User workflow framework for Flex<br />New architecture? New use of patterns?<br />Based on concepts I’ve been thinking about and working on for most of my software development career<br />Developed version for VB 6.0 around 2000<br />Developed first Adobe Flex version last year<br />Used and maintained by MCW Software<br />
  6. 6. Introduction<br />“How come I’ve never heard of it?”<br />This is the first time we have presented it publicly (11/5/2009)<br />“Why should I care?”<br />Vara makes building large-scale, enterprise RIAs simpler, faster, easier to maintain, and more consistent.<br />
  7. 7. Observations<br />We are going to talk about CRUD (a.k.a. Create, Read, Update, Delete)<br />Applications handle CRUD similarly<br />Forms should handle CRUD consistently<br />Applications tend to repeat this logic for each and every screen<br />Logic is very difficult to abstract<br />
  8. 8. Observations<br />Views have arbitrary complexity<br />Resources have arbitrary complexity<br />Mapping is usually not simple<br />Simple binding does not solve this<br />MVC does not go far enough<br />
  9. 9. Observations<br />Any widely used frameworks that concretely handle CRUD operations???<br />Desire for frameworks is NOT to dumb down or eliminate the developer.<br />Desire for frameworks comes from being pragmatic and the need to efficiently build applications that are easily maintainable and flexible.<br />
  10. 10. Scenario #1: SDI Application<br />Assume we are building an application that shows one employee form at a time (i.e. single-document interface - SDI)<br />Open an employee record from a list<br />Make some changes<br />Open another employee record from list<br />What actions need to take place?<br />
  11. 11. Scenario #1: SDI Application<br />Load new record…but wait…<br />Clear existing record…but wait... <br />Save existing record…but wait…<br />Has existing record changed?<br />Should the user be prompted to save changes?<br />How did user respond to the prompt? Yes? No? Cancel?<br />Is the data valid?<br />
  12. 12. Scenario #1: SDI Application<br />Save existing record<br />How to extract data to save from view?<br />Where to send that data? <br />Remote Object? Web Service?<br />Was save successful?<br />What to do after save? Update record in list?<br />
  13. 13. Scenario #1: SDI Application<br />Clear existing record<br />How do we reset the form?<br />Do we need to clear the resource?<br />Load new record<br />Where do we load from?<br />How to populate the data onto the view?<br />What to do after load?<br />
  14. 14. Scenario #2: MDI Application<br />Assume we are building an application that uses multiple employee form at a time (i.e. multiple-document interface - MDI)<br />Open an employee record from list<br />Make some changes<br />Close the form<br />
  15. 15. Scenario #2: MDI Application<br />Close form… but wait…<br />Clear form… but wait... <br />Save existing record…but wait…<br />Has existing record changed?<br />Should the user be prompted to save changes?<br />How did user respond to the prompt? Yes? No? Cancel?<br />Is the data valid?<br />Save record<br />How to extract data to save from view?<br />Where to send that data? <br />Remote Object? Web Service?<br />Was save successful?<br />What to do after save? Update record in list?<br />Clear record<br />How do we reset the form?<br />Do we need to clear the resource?<br />Close form<br />
  16. 16. Scenario #3: PITA Application<br />Write an application that has 100 data entry forms of arbitrary complexity (trees, tabs, data grids, file uploads, custom components, etc.)<br />Handle the loading, saving, closing, deleting, prompting, and validation consistently throughout the application<br />
  17. 17. Scenario #3: PITA Application<br />3 months into PITA project….<br />PITA Boss read usability study about benefits of single-document interfaces (SDI)<br />He wants you to convert those screens from MDI to SDI<br />He also wants prompting to occur only if the user has actually changed the record<br />Due to budget constraints, the timeline needs to be reduced<br />
  18. 18. Core Ideas of Vara<br />Developer should be able to handle…<br />Design and development of views<br />Selection and development of resources<br />View/Model interaction<br />Resource/Model interaction<br />User prompting<br />
  19. 19. Core Ideas of Vara<br />Actions always occur in a certain order<br />Top-level action can start other actions<br />Workflow can orchestrate these actions<br />Common workflow can be provided<br />Interact with developer’s code in order to manage the views and resources<br />
  20. 20. Flex Application<br />Flex MVC Architectures<br />Layers<br />User Interface<br />Network<br />Services<br />Middleware<br />Business Logic<br />Data Access<br />Database<br />Database<br />
  21. 21. Flex Application<br />Resource<br />Flex MVC Architectures<br />Layers<br />User Interface<br />Services<br />Business Logic<br />Data Access<br />Database<br />
  22. 22. Flex MVC Architectures<br />Layers<br />User Interface<br />View<br />Model<br />Controller<br />Resource<br />What about the resource?<br />Services<br />Business Logic<br />Data Access<br />Database<br />
  23. 23. Vara Architecture<br />Created by Developer<br />Provided by Framework<br />View<br />Vara Framework<br />Model<br />Resource<br />
  24. 24. Vara Architecture<br />Created by Developer<br />Provided by Framework<br />View<br />Actions<br />View Adapter Implementation<br />Workflow<br />View Adapter<br />Initialize<br />Load<br />Clear<br />Model<br />Save<br />Resource Adapter Implementation<br />Resource Adapter<br />Unload<br />Close<br />Resource<br />
  25. 25. Vara Workflow Actions<br />Load<br />Unload<br />Close<br />Clear<br />Initialize<br />Destroy<br />Save<br />Generic<br />
  26. 26. Steps to Implement Vara<br />Step 1: Include Vara.swc in Flex project<br />Step 2: Create View Adapter class<br />Step 3: Create Resource Adapter class<br />Step 4: Declare BasicWorkflowImpl<br />Step 5: Add calls to xxxxAction.start()<br />Step 6: Override adapters as needed<br />
  27. 27. Step 1: Include Vara.swc<br />
  28. 28. Step 2: Create View Adapter<br />Step 3: Create Resource Adapter<br />
  29. 29. Step 4: Declare Workflow<br />
  30. 30. Step 5: Add action calls<br />
  31. 31. Step 6: Override as needed<br />Developer extends and overrides…<br />Vara provides…<br />AdapterImpl<br />ViewAdapterImpl<br />
  32. 32. Summary<br />
  33. 33. BENEFITS<br />Vara Framework<br />
  34. 34. Benefits<br />Consistent handling of user workflow across an application<br />Makes applications easier to maintain<br />Speeds up coding by reducing duplication<br />Increases flexibility and agility in responding to customers demands<br />
  35. 35. CHALLENGES<br />Vara Framework<br />
  36. 36. Challenges<br /><ul><li>Remember Flex applications are single-threaded and asynchronous
  37. 37. Remember to call proceed()
  38. 38. Integration with other frameworks?
  39. 39. Dependency injection
  40. 40. More use of event handling
  41. 41. Enable more modularity</li></li></ul><li>DEMONSTRATION<br />Vara Framework<br />
  42. 42. Demonstration<br />Download samples.zip from SourceForgehttps://sourceforge.net/projects/vara/files/Downloads/samples.zip/download<br />
  43. 43. Next Steps<br />Vara Framework<br />
  44. 44. Next Steps<br />Download the SWC:https://sourceforge.net/projects/vara/files/Downloads/Vara.swc/download<br />Download the source (SVN):https://sourceforge.net/projects/vara/develop<br />Join the discussion:https://sourceforge.net/projects/vara/forums/forum/1032315<br />

×