SlideShare a Scribd company logo
Introducing….Vara Framework
AgendaIntroductionBenefitsChallengesDemonstrationNext Steps
IntroductionVara Framework
About Mike Merchant12+ Years in Software Development10 Years between KP and SCEDeveloped or managed on 50+ projectsExperience in Flex, Java, .NET and othersFounder and President of MCW Software, an RIA consulting firm in Lake Forest, CA
Introduction“What is this Vara Framework?”User workflow framework for FlexNew architecture? New use of patterns?Based on concepts I’ve been thinking about and working on for most of my software development careerDeveloped version for VB 6.0 around 2000Developed first Adobe Flex version last yearUsed and maintained by MCW Software
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.
ObservationsWe are going to talk about CRUD (a.k.a. Create, Read, Update, Delete)Applications handle CRUD similarlyForms should handle CRUD consistentlyApplications tend to repeat this logic for each and every screenLogic is very difficult to abstract
ObservationsViews have arbitrary complexityResources have arbitrary complexityMapping is usually not simpleSimple binding does not solve thisMVC does not go far enough
ObservationsAny 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.
Scenario #1: SDI ApplicationAssume 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 listMake some changesOpen another employee record from listWhat actions need to take place?
Scenario #1: SDI ApplicationLoad 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?
Scenario #1: SDI ApplicationSave existing recordHow 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?
Scenario #1: SDI ApplicationClear existing recordHow do we reset the form?Do we need to clear the resource?Load new recordWhere do we load from?How to populate the data onto the view?What to do after load?
Scenario #2: MDI ApplicationAssume we are building an application that uses multiple employee form at a time (i.e. multiple-document interface - MDI)Open an employee record from listMake some changesClose the form
Scenario #2: MDI ApplicationClose 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 recordHow 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 recordHow do we reset the form?Do we need to clear the resource?Close form
Scenario #3: PITA ApplicationWrite 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
Scenario #3: PITA Application3 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 SDIHe also wants prompting to occur only if the user has actually changed the recordDue to budget constraints, the timeline needs to be reduced
Core Ideas of VaraDeveloper should be able to handle…Design and development of viewsSelection and development of resourcesView/Model interactionResource/Model interactionUser prompting
Core Ideas of VaraActions always occur in a certain orderTop-level action can start other actionsWorkflow can orchestrate these actionsCommon workflow can be providedInteract with developer’s code in order to manage the views and resources
Flex ApplicationFlex MVC ArchitecturesLayersUser InterfaceNetworkServicesMiddlewareBusiness LogicData AccessDatabaseDatabase
Flex ApplicationResourceFlex MVC ArchitecturesLayersUser InterfaceServicesBusiness LogicData AccessDatabase
Flex MVC ArchitecturesLayersUser InterfaceViewModelControllerResourceWhat about the resource?ServicesBusiness LogicData AccessDatabase
Vara ArchitectureCreated by DeveloperProvided by FrameworkViewVara FrameworkModelResource
Vara ArchitectureCreated by DeveloperProvided by FrameworkViewActionsView Adapter ImplementationWorkflowView AdapterInitializeLoadClearModelSaveResource Adapter ImplementationResource AdapterUnloadCloseResource
Vara Workflow ActionsLoadUnloadCloseClearInitializeDestroySaveGeneric
Steps to Implement VaraStep 1: Include Vara.swc in Flex projectStep 2: Create View Adapter classStep 3: Create Resource Adapter classStep 4: Declare BasicWorkflowImplStep 5: Add calls to xxxxAction.start()Step 6: Override adapters as needed
Step 1: Include Vara.swc
Step 2: Create View AdapterStep 3: Create Resource Adapter
Step 4: Declare Workflow
Step 5: Add action calls
Step 6: Override as neededDeveloper extends and overrides…Vara provides…AdapterImplViewAdapterImpl
Summary
BENEFITSVara Framework
BenefitsConsistent handling of user workflow across an applicationMakes applications easier to maintainSpeeds up coding by reducing duplicationIncreases flexibility and agility in responding to customers demands
CHALLENGESVara Framework
ChallengesRemember Flex applications are single-threaded and asynchronous
Remember to call proceed()
Integration with other frameworks?
Dependency injection
More use of event handling

More Related Content

PPT
Enterprise Application Framework
DOCX
Kashave_Kumar
PPT
"Eclipse Application Development" at GNUnify 07
PPTX
java web framework standard.20180412
PPTX
Solution-Architectures-MADP-20180125
PPTX
Web design - Applications and web application definition
PPTX
Web Engineering - Web Applications versus Conventional Software
PDF
Web engineering notes unit 2
Enterprise Application Framework
Kashave_Kumar
"Eclipse Application Development" at GNUnify 07
java web framework standard.20180412
Solution-Architectures-MADP-20180125
Web design - Applications and web application definition
Web Engineering - Web Applications versus Conventional Software
Web engineering notes unit 2

What's hot (15)

PPT
Startup application trends spring 2013
PPTX
Introduction to Salesforcedotcom
PPTX
Introduction to Salesforcedotcom
PPT
Web engineering
PDF
ADF Introduction By Sandeep Sharda
PPTX
Designing a Reliable Software Factory for the Cloud
PPTX
A JBoss Enterprise Middleware Solution to Improving Business Execution
PDF
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
DOCX
Resume_Debaprasad
PPT
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBM
DOC
235042632 super-shop-ee
PPT
Web Engineering
PDF
The Power of IBM SmartCloud for Social Business and XPages App Dev
PPTX
Software Engineering for Web Applications
PPT
Lotus Notes Meets the Workplace Rich Client
Startup application trends spring 2013
Introduction to Salesforcedotcom
Introduction to Salesforcedotcom
Web engineering
ADF Introduction By Sandeep Sharda
Designing a Reliable Software Factory for the Cloud
A JBoss Enterprise Middleware Solution to Improving Business Execution
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Resume_Debaprasad
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBM
235042632 super-shop-ee
Web Engineering
The Power of IBM SmartCloud for Social Business and XPages App Dev
Software Engineering for Web Applications
Lotus Notes Meets the Workplace Rich Client
Ad

Viewers also liked (17)

PPTX
Chapter ii c#(building a user interface)
PPS
04 gui 05
PPT
ASP.NET Session 3
PPT
Chapter 14
PPT
Introducation to C#
PPTX
Sdi & mdi
PPTX
Sqlite
PPTX
android sqlite
PPTX
SQLite: Light, Open Source Relational Database Management System
PPTX
SQLite - Overview
PPTX
How to create rss feed
PPTX
how to setup Google analytics tracking code for website
PDF
tybsc it asp.net full unit 1,2,3,4,5,6 notes
PPT
C#/.NET Little Wonders
PPTX
C# Tutorial
PPTX
.NET and C# Introduction
PPT
Programming in c#
Chapter ii c#(building a user interface)
04 gui 05
ASP.NET Session 3
Chapter 14
Introducation to C#
Sdi & mdi
Sqlite
android sqlite
SQLite: Light, Open Source Relational Database Management System
SQLite - Overview
How to create rss feed
how to setup Google analytics tracking code for website
tybsc it asp.net full unit 1,2,3,4,5,6 notes
C#/.NET Little Wonders
C# Tutorial
.NET and C# Introduction
Programming in c#
Ad

Similar to Vara Framework (20)

PDF
Introduction to MVC in Flex and HydraMVC
PDF
Agile Modelling Architecture
PDF
CollabSphere 2020 - ANA101 - Domino Application Strategy Key insights for suc...
KEY
The Enable Labs Way
PPTX
Framework
PPTX
Think Future Technologies
PDF
Download full ebook of Flex on Java Bernerd Allmon instant download pdf
PDF
Download full ebook of Flex on Java Bernerd Allmon instant download pdf
PPT
NEXiDA at OMG June 2009
PPT
Document management and Workflow
PDF
Roma introduction and concepts
PDF
Model Driven Architecture Applying MDA to Enterprise Computing 1st Edition Da...
PDF
apidays LIVE Australia 2021 - Designing Embedded Platforms by Jeremy Glassenb...
PDF
Oracle - Programatica2010
PPT
Evolutionary Architecture And Design
ODP
Zen and Enterprise Architecture
PDF
10 Ways To Improve Your Code( Neal Ford)
PDF
The Xoriant Whitepaper: Last Mile Soa Implementation
PDF
X Aware Ajax World V1
PDF
Framework Engineering
Introduction to MVC in Flex and HydraMVC
Agile Modelling Architecture
CollabSphere 2020 - ANA101 - Domino Application Strategy Key insights for suc...
The Enable Labs Way
Framework
Think Future Technologies
Download full ebook of Flex on Java Bernerd Allmon instant download pdf
Download full ebook of Flex on Java Bernerd Allmon instant download pdf
NEXiDA at OMG June 2009
Document management and Workflow
Roma introduction and concepts
Model Driven Architecture Applying MDA to Enterprise Computing 1st Edition Da...
apidays LIVE Australia 2021 - Designing Embedded Platforms by Jeremy Glassenb...
Oracle - Programatica2010
Evolutionary Architecture And Design
Zen and Enterprise Architecture
10 Ways To Improve Your Code( Neal Ford)
The Xoriant Whitepaper: Last Mile Soa Implementation
X Aware Ajax World V1
Framework Engineering

Recently uploaded (20)

PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PPTX
Modernising the Digital Integration Hub
PDF
STKI Israel Market Study 2025 version august
PPTX
Chapter 5: Probability Theory and Statistics
PPT
What is a Computer? Input Devices /output devices
PDF
project resource management chapter-09.pdf
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
1. Introduction to Computer Programming.pptx
PDF
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
PPTX
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Hindi spoken digit analysis for native and non-native speakers
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Group 1 Presentation -Planning and Decision Making .pptx
A contest of sentiment analysis: k-nearest neighbor versus neural network
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
Modernising the Digital Integration Hub
STKI Israel Market Study 2025 version august
Chapter 5: Probability Theory and Statistics
What is a Computer? Input Devices /output devices
project resource management chapter-09.pdf
NewMind AI Weekly Chronicles - August'25-Week II
1. Introduction to Computer Programming.pptx
DASA ADMISSION 2024_FirstRound_FirstRank_LastRank.pdf
TechTalks-8-2019-Service-Management-ITIL-Refresh-ITIL-4-Framework-Supports-Ou...
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
Assigned Numbers - 2025 - Bluetooth® Document
A comparative study of natural language inference in Swahili using monolingua...
Hindi spoken digit analysis for native and non-native speakers
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
1 - Historical Antecedents, Social Consideration.pdf

Vara Framework

  • 4. About Mike Merchant12+ Years in Software Development10 Years between KP and SCEDeveloped or managed on 50+ projectsExperience in Flex, Java, .NET and othersFounder and President of MCW Software, an RIA consulting firm in Lake Forest, CA
  • 5. Introduction“What is this Vara Framework?”User workflow framework for FlexNew architecture? New use of patterns?Based on concepts I’ve been thinking about and working on for most of my software development careerDeveloped version for VB 6.0 around 2000Developed first Adobe Flex version last yearUsed 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. ObservationsWe are going to talk about CRUD (a.k.a. Create, Read, Update, Delete)Applications handle CRUD similarlyForms should handle CRUD consistentlyApplications tend to repeat this logic for each and every screenLogic is very difficult to abstract
  • 8. ObservationsViews have arbitrary complexityResources have arbitrary complexityMapping is usually not simpleSimple binding does not solve thisMVC does not go far enough
  • 9. ObservationsAny 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 ApplicationAssume 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 listMake some changesOpen another employee record from listWhat actions need to take place?
  • 11. Scenario #1: SDI ApplicationLoad 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 ApplicationSave existing recordHow 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 ApplicationClear existing recordHow do we reset the form?Do we need to clear the resource?Load new recordWhere do we load from?How to populate the data onto the view?What to do after load?
  • 14. Scenario #2: MDI ApplicationAssume we are building an application that uses multiple employee form at a time (i.e. multiple-document interface - MDI)Open an employee record from listMake some changesClose the form
  • 15. Scenario #2: MDI ApplicationClose 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 recordHow 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 recordHow do we reset the form?Do we need to clear the resource?Close form
  • 16. Scenario #3: PITA ApplicationWrite 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 Application3 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 SDIHe also wants prompting to occur only if the user has actually changed the recordDue to budget constraints, the timeline needs to be reduced
  • 18. Core Ideas of VaraDeveloper should be able to handle…Design and development of viewsSelection and development of resourcesView/Model interactionResource/Model interactionUser prompting
  • 19. Core Ideas of VaraActions always occur in a certain orderTop-level action can start other actionsWorkflow can orchestrate these actionsCommon workflow can be providedInteract with developer’s code in order to manage the views and resources
  • 20. Flex ApplicationFlex MVC ArchitecturesLayersUser InterfaceNetworkServicesMiddlewareBusiness LogicData AccessDatabaseDatabase
  • 21. Flex ApplicationResourceFlex MVC ArchitecturesLayersUser InterfaceServicesBusiness LogicData AccessDatabase
  • 22. Flex MVC ArchitecturesLayersUser InterfaceViewModelControllerResourceWhat about the resource?ServicesBusiness LogicData AccessDatabase
  • 23. Vara ArchitectureCreated by DeveloperProvided by FrameworkViewVara FrameworkModelResource
  • 24. Vara ArchitectureCreated by DeveloperProvided by FrameworkViewActionsView Adapter ImplementationWorkflowView AdapterInitializeLoadClearModelSaveResource Adapter ImplementationResource AdapterUnloadCloseResource
  • 26. Steps to Implement VaraStep 1: Include Vara.swc in Flex projectStep 2: Create View Adapter classStep 3: Create Resource Adapter classStep 4: Declare BasicWorkflowImplStep 5: Add calls to xxxxAction.start()Step 6: Override adapters as needed
  • 27. Step 1: Include Vara.swc
  • 28. Step 2: Create View AdapterStep 3: Create Resource Adapter
  • 29. Step 4: Declare Workflow
  • 30. Step 5: Add action calls
  • 31. Step 6: Override as neededDeveloper extends and overrides…Vara provides…AdapterImplViewAdapterImpl
  • 34. BenefitsConsistent handling of user workflow across an applicationMakes applications easier to maintainSpeeds up coding by reducing duplicationIncreases flexibility and agility in responding to customers demands
  • 36. ChallengesRemember Flex applications are single-threaded and asynchronous
  • 37. Remember to call proceed()
  • 40. More use of event handling
  • 42. DemonstrationDownload samples.zip from SourceForgehttps://sourceforge.net/projects/vara/files/Downloads/samples.zip/download
  • 44. Next StepsDownload the SWC:https://sourceforge.net/projects/vara/files/Downloads/Vara.swc/downloadDownload the source (SVN):https://sourceforge.net/projects/vara/developJoin the discussion:https://sourceforge.net/projects/vara/forums/forum/1032315