SlideShare a Scribd company logo
1 of 40
Introducing…. Vara Framework
Agenda Introduction Benefits Challenges Demonstration Next Steps
Introduction Vara Framework
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
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
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.
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
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
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.
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?
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?
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?
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?
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
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
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
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
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
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
Flex Application Flex MVC Architectures Layers User Interface Network Services Middleware Business Logic Data Access Database Database
Flex Application Resource Flex MVC Architectures Layers User Interface Services Business Logic Data Access Database
Flex MVC Architectures Layers User Interface View Model Controller Resource What about the resource? Services Business Logic Data Access Database
Vara Architecture Created by Developer Provided by Framework View Vara Framework Model Resource
Vara Architecture Created by Developer Provided by Framework View Actions View Adapter Implementation Workflow View Adapter Initialize Load Clear Model Save Resource Adapter Implementation Resource Adapter Unload Close Resource
Vara Workflow Actions Load Unload Close Clear Initialize Destroy Save Generic
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
Step 1: Include Vara.swc
Step 2: Create View Adapter Step 3: Create Resource Adapter
Step 4: Declare Workflow
Step 5: Add action calls
Step 6: Override as needed Developer extends and overrides… Vara provides… AdapterImpl ViewAdapterImpl
Summary
BENEFITS Vara Framework
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
CHALLENGES Vara Framework
Challenges ,[object Object]
Remember to call proceed()
Integration with other frameworks?
Dependency injection
More use of event handling

More Related Content

What's hot

Startup application trends spring 2013
Startup application trends spring 2013Startup application trends spring 2013
Startup application trends spring 2013Mukund Mohan
 
Introduction to Salesforcedotcom
Introduction to SalesforcedotcomIntroduction to Salesforcedotcom
Introduction to SalesforcedotcomEdureka!
 
Introduction to Salesforcedotcom
Introduction to SalesforcedotcomIntroduction to Salesforcedotcom
Introduction to SalesforcedotcomEdureka!
 
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...Bruce Elgort
 
ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaEr. Sndp Srda
 
Designing a Reliable Software Factory for the Cloud
Designing a Reliable Software Factory for the CloudDesigning a Reliable Software Factory for the Cloud
Designing a Reliable Software Factory for the CloudAnkaraCloud
 
A JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business ExecutionA JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business ExecutionCITYTECH, Inc.
 
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...mfrancis
 
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBM
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBMUdvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBM
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBMIBM Danmark
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-eehomeworkping3
 
The Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App DevThe Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App DevIBM Connections Developers
 
Software Engineering for Web Applications
Software Engineering for Web ApplicationsSoftware Engineering for Web Applications
Software Engineering for Web ApplicationsMoh'd Shakeb Baig
 
Lotus Notes Meets the Workplace Rich Client
Lotus Notes Meets the Workplace Rich ClientLotus Notes Meets the Workplace Rich Client
Lotus Notes Meets the Workplace Rich Clientdominion
 

What's hot (16)

Startup application trends spring 2013
Startup application trends spring 2013Startup application trends spring 2013
Startup application trends spring 2013
 
Introduction to Salesforcedotcom
Introduction to SalesforcedotcomIntroduction to Salesforcedotcom
Introduction to Salesforcedotcom
 
Introduction to Salesforcedotcom
Introduction to SalesforcedotcomIntroduction to Salesforcedotcom
Introduction to Salesforcedotcom
 
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
Apps, Apps, and More Apps: Meet the Very Best Open Source Apps from OpenNTF -...
 
Web engineering
Web engineeringWeb engineering
Web engineering
 
ADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep ShardaADF Introduction By Sandeep Sharda
ADF Introduction By Sandeep Sharda
 
Designing a Reliable Software Factory for the Cloud
Designing a Reliable Software Factory for the CloudDesigning a Reliable Software Factory for the Cloud
Designing a Reliable Software Factory for the Cloud
 
A JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business ExecutionA JBoss Enterprise Middleware Solution to Improving Business Execution
A JBoss Enterprise Middleware Solution to Improving Business Execution
 
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
Keynote - The Benefits of an Open Service Oriented Architecture in the Enterpr...
 
Resume_Debaprasad
Resume_DebaprasadResume_Debaprasad
Resume_Debaprasad
 
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBM
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBMUdvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBM
Udvikling af apps til mobile enheder med IBM Worklight, Christina Møller, IBM
 
235042632 super-shop-ee
235042632 super-shop-ee235042632 super-shop-ee
235042632 super-shop-ee
 
Web Engineering
Web EngineeringWeb Engineering
Web Engineering
 
The Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App DevThe Power of IBM SmartCloud for Social Business and XPages App Dev
The Power of IBM SmartCloud for Social Business and XPages App Dev
 
Software Engineering for Web Applications
Software Engineering for Web ApplicationsSoftware Engineering for Web Applications
Software Engineering for Web Applications
 
Lotus Notes Meets the Workplace Rich Client
Lotus Notes Meets the Workplace Rich ClientLotus Notes Meets the Workplace Rich Client
Lotus Notes Meets the Workplace Rich Client
 

Viewers also liked

Chapter ii c#(building a user interface)
Chapter ii c#(building a user interface)Chapter ii c#(building a user interface)
Chapter ii c#(building a user interface)Chhom Karath
 
ASP.NET Session 3
ASP.NET Session 3ASP.NET Session 3
ASP.NET Session 3Sisir Ghosh
 
android sqlite
android sqliteandroid sqlite
android sqliteDeepa Rani
 
SQLite: Light, Open Source Relational Database Management System
SQLite: Light, Open Source Relational Database Management SystemSQLite: Light, Open Source Relational Database Management System
SQLite: Light, Open Source Relational Database Management SystemTanner Jessel
 
How to create rss feed
How to create rss feedHow to create rss feed
How to create rss feedTanuja Talekar
 
how to setup Google analytics tracking code for website
how to setup  Google analytics tracking code for websitehow to setup  Google analytics tracking code for website
how to setup Google analytics tracking code for websiteOM Maurya
 
tybsc it asp.net full unit 1,2,3,4,5,6 notes
tybsc it asp.net full unit 1,2,3,4,5,6 notestybsc it asp.net full unit 1,2,3,4,5,6 notes
tybsc it asp.net full unit 1,2,3,4,5,6 notesWE-IT TUTORIALS
 
C# Tutorial
C# Tutorial C# Tutorial
C# Tutorial Jm Ramos
 
.NET and C# Introduction
.NET and C# Introduction.NET and C# Introduction
.NET and C# IntroductionSiraj Memon
 

Viewers also liked (17)

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

Similar to Vara Framework

Case Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San FranciscoCase Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San FranciscoForgeRock
 
Dreamwares: Lightning Experience
Dreamwares: Lightning ExperienceDreamwares: Lightning Experience
Dreamwares: Lightning ExperienceAmit Ahuja
 
Microsoft project (msp) group 6
Microsoft project (msp)  group 6Microsoft project (msp)  group 6
Microsoft project (msp) group 6Asish Verma
 
5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdf5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdfMverve1
 
An Integrated Development Environment Driven Through Multi tenant Approach.pdf
An Integrated Development Environment Driven Through Multi tenant Approach.pdfAn Integrated Development Environment Driven Through Multi tenant Approach.pdf
An Integrated Development Environment Driven Through Multi tenant Approach.pdfLisa Graves
 
KiranGara_JEE_7Yrs
KiranGara_JEE_7YrsKiranGara_JEE_7Yrs
KiranGara_JEE_7YrsKiran Gara
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDave Malouf
 
Swapnil_Shelke_SAP_EP_Developer_2016
Swapnil_Shelke_SAP_EP_Developer_2016Swapnil_Shelke_SAP_EP_Developer_2016
Swapnil_Shelke_SAP_EP_Developer_2016Swapnil Shelke
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net coreSam Nasr, MCSA, MVP
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstEnea Gabriel
 
SAP BusinessObject's Webi Rich Client
SAP BusinessObject's Webi Rich ClientSAP BusinessObject's Webi Rich Client
SAP BusinessObject's Webi Rich ClientEric Molner
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxwrite31
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the informationToushik Paul
 
MCA 6th Sem Project Report
MCA 6th Sem Project ReportMCA 6th Sem Project Report
MCA 6th Sem Project ReportPRADEEP GUPTA
 
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformWebinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformEdureka!
 

Similar to Vara Framework (20)

Case Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San FranciscoCase Study: University of California, Berkeley and San Francisco
Case Study: University of California, Berkeley and San Francisco
 
Hands-on Microsoft Flow
Hands-on Microsoft FlowHands-on Microsoft Flow
Hands-on Microsoft Flow
 
Salesforce Lightning
Salesforce LightningSalesforce Lightning
Salesforce Lightning
 
Dreamwares: Lightning Experience
Dreamwares: Lightning ExperienceDreamwares: Lightning Experience
Dreamwares: Lightning Experience
 
Microsoft project (msp) group 6
Microsoft project (msp)  group 6Microsoft project (msp)  group 6
Microsoft project (msp) group 6
 
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJSMicro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
Micro Front Ends : Divided We Rule by Parth Ghiya - AhmedabadJS
 
Symphony Driver Essay
Symphony Driver EssaySymphony Driver Essay
Symphony Driver Essay
 
5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdf5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdf
 
An Integrated Development Environment Driven Through Multi tenant Approach.pdf
An Integrated Development Environment Driven Through Multi tenant Approach.pdfAn Integrated Development Environment Driven Through Multi tenant Approach.pdf
An Integrated Development Environment Driven Through Multi tenant Approach.pdf
 
KiranGara_JEE_7Yrs
KiranGara_JEE_7YrsKiranGara_JEE_7Yrs
KiranGara_JEE_7Yrs
 
Designing Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAsDesigning Powerful Web Applications Using AJAX and Other RIAs
Designing Powerful Web Applications Using AJAX and Other RIAs
 
Swapnil_Shelke_SAP_EP_Developer_2016
Swapnil_Shelke_SAP_EP_Developer_2016Swapnil_Shelke_SAP_EP_Developer_2016
Swapnil_Shelke_SAP_EP_Developer_2016
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net core
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 
SAP BusinessObject's Webi Rich Client
SAP BusinessObject's Webi Rich ClientSAP BusinessObject's Webi Rich Client
SAP BusinessObject's Webi Rich Client
 
COMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docxCOMP6210 Web Services And Design Methodologies.docx
COMP6210 Web Services And Design Methodologies.docx
 
Subhadra Banerjee_latest
Subhadra Banerjee_latestSubhadra Banerjee_latest
Subhadra Banerjee_latest
 
A report on mvc using the information
A report on mvc using the informationA report on mvc using the information
A report on mvc using the information
 
MCA 6th Sem Project Report
MCA 6th Sem Project ReportMCA 6th Sem Project Report
MCA 6th Sem Project Report
 
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration PlatformWebinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
Webinar: Microsoft SharePoint-The Ultimate Enterprise Collaboration Platform
 

Recently uploaded

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Vara Framework

  • 2. Agenda Introduction Benefits Challenges Demonstration Next Steps
  • 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 Application Flex MVC Architectures Layers User Interface Network Services Middleware Business Logic Data Access Database Database
  • 21. Flex Application Resource Flex MVC Architectures Layers User Interface Services Business Logic Data Access Database
  • 22. Flex MVC Architectures Layers User Interface View Model Controller Resource What about the resource? Services Business Logic Data Access Database
  • 23. Vara Architecture Created by Developer Provided by Framework View Vara Framework Model Resource
  • 24. Vara Architecture Created by Developer Provided by Framework View Actions View Adapter Implementation Workflow View Adapter Initialize Load Clear Model Save Resource Adapter Implementation Resource Adapter Unload Close Resource
  • 25. Vara Workflow Actions Load Unload Close 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 Developer extends and overrides… Vara provides… AdapterImpl ViewAdapterImpl
  • 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
  • 36.
  • 37. Remember to call proceed()
  • 40. More use of event handling
  • 41.
  • 42. Demonstration Download samples.zip from SourceForgehttps://sourceforge.net/projects/vara/files/Downloads/samples.zip/download
  • 43. Next Steps Vara Framework
  • 44. 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