SlideShare a Scribd company logo
1 of 12
Download to read offline
Agile RCP



                             Presenter First using
                           Spring Dynamic Modules

                        Heiko Seeberger, metafinanz




© 2008 by Heiko Seeberger; made available under the EPL v1.0 | March 20th, 2008 | www.metafinanz.de
Agile development of user interfaces


• Which process leading from requirements to UI code?

• How can UIs be unit-tested?


                                                            UI code                                 Unit tests
      Requirements




     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Presenter First architecture
                                                                                                                  Reference
                                                                                                                  Event

• MVP variant: Passive view.                                                                 Presenter


• Model and view abstracted
  as interfaces.                                                                  IView                       IModel


• Unit-testing presenters by
  mocking model and view.
                                                                              MockView                   MockModel

                                                                                        PresenterTest


     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Presenter First process


• Requirements drive the design.

                                                                                            Presenter
          User Story                                                                        +onQuery()
 The user can query for                                                                     …
 books by entering the title
 in the query form …                                                            IView                        IModel
                                                                              +getName()                   +getBooks()
                                                                              …                            …




      Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Presenter First on Eclipse RCP


• MVP triads managed by a                                                                    Presenter
  Spring application context.

• Spring Dynamic Modules                                                           View                        Model
  integrates Spring into OSGi.

                                                                             Spring application context
                                                                                          OSGi bundle



     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Presenter First on Eclipse RCP


• Plug into the workbench via                                                                Presenter
  factories for views and editors.


                                                                                   View                        Model
 views xPt
                                  ViewPart
                                   Factory
                                                                             Spring application context

 Workbench



     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Demo – User story, view and model
User Story
By clicking “Next“ the user can
request a new random number
which is shown in a text field.
By clicking “Clear“ this text field
is cleared.




     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Demo – Presenter




    Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Demo – Test Coverage


• Presenter 100% covered!




     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Demo – Spring configuration




    Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Agile RCP


• Framework for agile development of UIs with RCP:
    Based on standards like OSGi, Spring DM and MVP.
    Already contains library for Presenter First on RCP.
    Tooling and test support planned.


• Plans:
    0.9 release in April (Eclipse Forum Europe).
    Make Agile RCP open source.




     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
Thank you!


• For further information:
    Visit our Agile RCP website at agilercp.metafinanz.de,
    Join my session at Eclipse Forum Europe or
    Contact me at heiko.seeberger@metafinanz.de.




     Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0

More Related Content

What's hot

Keynote: What’s new in Sirius?
Keynote: What’s new in Sirius?Keynote: What’s new in Sirius?
Keynote: What’s new in Sirius?Obeo
 
PayPal's History of Microservices Architecture
PayPal's History of Microservices ArchitecturePayPal's History of Microservices Architecture
PayPal's History of Microservices ArchitecturePostman
 
Practical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approachPractical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approachMark Cocker
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11Chauvin Mariot
 
Cloud native buildpacks_collabnix
Cloud native buildpacks_collabnixCloud native buildpacks_collabnix
Cloud native buildpacks_collabnixSuman Chakraborty
 
Angular Is Better Enterprise Level Applications
Angular Is Better Enterprise Level ApplicationsAngular Is Better Enterprise Level Applications
Angular Is Better Enterprise Level ApplicationsAngelina Ilieva
 
Emulators as an Emerging Best Practice for API providers
Emulators as an Emerging Best Practice for API providersEmulators as an Emerging Best Practice for API providers
Emulators as an Emerging Best Practice for API providersPostman
 
Cloud Native Development for Continuous Integration with IBM Wazi
Cloud Native Development for Continuous Integration with IBM WaziCloud Native Development for Continuous Integration with IBM Wazi
Cloud Native Development for Continuous Integration with IBM WaziDevOps.com
 
API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice? Rohit Kelapure
 
#win8acad : Integrating the Windows 8 Experience with Contracts
#win8acad : Integrating the Windows 8 Experience with Contracts#win8acad : Integrating the Windows 8 Experience with Contracts
#win8acad : Integrating the Windows 8 Experience with ContractsFrederik De Bruyne
 
Tools for Building Windows 8 style apps
Tools for Building Windows 8 style appsTools for Building Windows 8 style apps
Tools for Building Windows 8 style appsZubair Ahmed
 
Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022 Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022 Moon Technolabs Pvt. Ltd.
 
Eclipse 4 Context Functions
Eclipse 4 Context FunctionsEclipse 4 Context Functions
Eclipse 4 Context FunctionsSopot Cela
 
Facial Analysis with Angular Web App & ASP.NET Core
Facial Analysis with Angular Web App & ASP.NET CoreFacial Analysis with Angular Web App & ASP.NET Core
Facial Analysis with Angular Web App & ASP.NET CoreMarvin Heng
 
Create React Native App vs Expo vs Manually
Create React Native App vs Expo vs ManuallyCreate React Native App vs Expo vs Manually
Create React Native App vs Expo vs ManuallyEugene Zharkov
 
Angular resolver tutorial
Angular resolver tutorialAngular resolver tutorial
Angular resolver tutorialKaty Slemon
 
Functions: Implement Once, Execute Anywhere!
Functions: Implement Once, Execute Anywhere!Functions: Implement Once, Execute Anywhere!
Functions: Implement Once, Execute Anywhere!VMware Tanzu
 
APIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIsAPIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIsOlyaSurits
 

What's hot (20)

Keynote: What’s new in Sirius?
Keynote: What’s new in Sirius?Keynote: What’s new in Sirius?
Keynote: What’s new in Sirius?
 
PayPal's History of Microservices Architecture
PayPal's History of Microservices ArchitecturePayPal's History of Microservices Architecture
PayPal's History of Microservices Architecture
 
Practical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approachPractical CICS application deployment using DevOps approach
Practical CICS application deployment using DevOps approach
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
 
Cloud native buildpacks_collabnix
Cloud native buildpacks_collabnixCloud native buildpacks_collabnix
Cloud native buildpacks_collabnix
 
Angular Is Better Enterprise Level Applications
Angular Is Better Enterprise Level ApplicationsAngular Is Better Enterprise Level Applications
Angular Is Better Enterprise Level Applications
 
Emulators as an Emerging Best Practice for API providers
Emulators as an Emerging Best Practice for API providersEmulators as an Emerging Best Practice for API providers
Emulators as an Emerging Best Practice for API providers
 
Cloud Native Development for Continuous Integration with IBM Wazi
Cloud Native Development for Continuous Integration with IBM WaziCloud Native Development for Continuous Integration with IBM Wazi
Cloud Native Development for Continuous Integration with IBM Wazi
 
API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?  API First or Events First: Is it a Binary Choice?
API First or Events First: Is it a Binary Choice?
 
#win8acad : Integrating the Windows 8 Experience with Contracts
#win8acad : Integrating the Windows 8 Experience with Contracts#win8acad : Integrating the Windows 8 Experience with Contracts
#win8acad : Integrating the Windows 8 Experience with Contracts
 
Tools for Building Windows 8 style apps
Tools for Building Windows 8 style appsTools for Building Windows 8 style apps
Tools for Building Windows 8 style apps
 
Firebase text recognition
Firebase text recognitionFirebase text recognition
Firebase text recognition
 
Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022 Angular.js vs. vue.js – which one is the better choice in 2022
Angular.js vs. vue.js – which one is the better choice in 2022
 
Eclipse 4 Context Functions
Eclipse 4 Context FunctionsEclipse 4 Context Functions
Eclipse 4 Context Functions
 
Facial Analysis with Angular Web App & ASP.NET Core
Facial Analysis with Angular Web App & ASP.NET CoreFacial Analysis with Angular Web App & ASP.NET Core
Facial Analysis with Angular Web App & ASP.NET Core
 
Create React Native App vs Expo vs Manually
Create React Native App vs Expo vs ManuallyCreate React Native App vs Expo vs Manually
Create React Native App vs Expo vs Manually
 
Tutorial spot-cloud
Tutorial spot-cloudTutorial spot-cloud
Tutorial spot-cloud
 
Angular resolver tutorial
Angular resolver tutorialAngular resolver tutorial
Angular resolver tutorial
 
Functions: Implement Once, Execute Anywhere!
Functions: Implement Once, Execute Anywhere!Functions: Implement Once, Execute Anywhere!
Functions: Implement Once, Execute Anywhere!
 
APIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIsAPIOps: Automated Processes for Even Better APIs
APIOps: Automated Processes for Even Better APIs
 

Similar to EclipseCon 08 - Agile RCP

Ellip Studio - Training session
Ellip Studio - Training sessionEllip Studio - Training session
Ellip Studio - Training sessionterradue
 
Building Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsBuilding Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsGunnar Wagenknecht
 
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetesSpryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetesBernd Alter
 
Use Eclipse Technologies to build a modern embedded development IDE
Use Eclipse Technologies to build a modern embedded development IDEUse Eclipse Technologies to build a modern embedded development IDE
Use Eclipse Technologies to build a modern embedded development IDEBenjamin Cabé
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABB6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABBHeiko Koziolek
 
Graphiti indigo demo_camp_walldorf
Graphiti indigo demo_camp_walldorfGraphiti indigo demo_camp_walldorf
Graphiti indigo demo_camp_walldorfKarsten Schmidt
 
Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010Gunnar Wagenknecht
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionObeo
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugLars Vogel
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Mickael Istria
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingMarc Dutoo
 
Model Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkModel Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkSuresh Krishna Madhuvarsu
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?Niklas Heidloff
 
Eclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationEclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationDietmar Schmidt
 
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...VMware Tanzu
 
Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)jsievers
 

Similar to EclipseCon 08 - Agile RCP (20)

Ellip Studio - Training session
Ellip Studio - Training sessionEllip Studio - Training session
Ellip Studio - Training session
 
Building Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applicationsBuilding Server-Side Eclipse based web applications
Building Server-Side Eclipse based web applications
 
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetesSpryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
Spryker meetup-distribute-your-spryker-deployment-with-docker-and-kubernetes
 
Use Eclipse Technologies to build a modern embedded development IDE
Use Eclipse Technologies to build a modern embedded development IDEUse Eclipse Technologies to build a modern embedded development IDE
Use Eclipse Technologies to build a modern embedded development IDE
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABB6 Years of Performance Modeling at ABB
6 Years of Performance Modeling at ABB
 
Graphiti indigo demo_camp_walldorf
Graphiti indigo demo_camp_walldorfGraphiti indigo demo_camp_walldorf
Graphiti indigo demo_camp_walldorf
 
Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010Building Server-Side Eclipse based web applications 2010
Building Server-Side Eclipse based web applications 2010
 
Put the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight SessionPut the Power of Cloud-based Modeling to Work - Spotlight Session
Put the Power of Cloud-based Modeling to Work - Spotlight Session
 
Eclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ RheinjugEclipse RCP Overview @ Rheinjug
Eclipse RCP Overview @ Rheinjug
 
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
Whats new in Eclipse Indigo ? (@DemoCamp Grenoble 2011)
 
Riena onrap econ-2011
Riena onrap econ-2011Riena onrap econ-2011
Riena onrap econ-2011
 
API Tooling in Eclipse
API Tooling in EclipseAPI Tooling in Eclipse
API Tooling in Eclipse
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented Modeling
 
Model Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkModel Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse Link
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
Eclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process OrchestrationEclipse Con2009 Practical Process Orchestration
Eclipse Con2009 Practical Process Orchestration
 
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...Moderniser le legacy JEE avec les containers et les microservices: patterns a...
Moderniser le legacy JEE avec les containers et les microservices: patterns a...
 
Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)Tycho Tutorial (EclipseCon 2012)
Tycho Tutorial (EclipseCon 2012)
 
Afupday lille-2020
Afupday lille-2020Afupday lille-2020
Afupday lille-2020
 

More from Heiko Seeberger

Scaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of ScalazScaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of ScalazHeiko Seeberger
 
RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?Heiko Seeberger
 
Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?Heiko Seeberger
 
JM 08/09 - Beginning Scala Review
JM 08/09 - Beginning Scala ReviewJM 08/09 - Beginning Scala Review
JM 08/09 - Beginning Scala ReviewHeiko Seeberger
 
OSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on ScalaOSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on ScalaHeiko Seeberger
 
JAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components ModelsJAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components ModelsHeiko Seeberger
 
Eclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by ContractEclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by ContractHeiko Seeberger
 
Eclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiEclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiHeiko Seeberger
 
Eclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance LoggingEclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance LoggingHeiko Seeberger
 
Eclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on EquinoxEclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on EquinoxHeiko Seeberger
 

More from Heiko Seeberger (20)

Scaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of ScalazScaladays 2011 - The Ease of Scalaz
Scaladays 2011 - The Ease of Scalaz
 
Java Magazin - Lift
Java Magazin - LiftJava Magazin - Lift
Java Magazin - Lift
 
JavaSPEKTRUM - Scala 3
JavaSPEKTRUM - Scala 3JavaSPEKTRUM - Scala 3
JavaSPEKTRUM - Scala 3
 
JavaSPEKTRUM - Scala 2
JavaSPEKTRUM - Scala 2JavaSPEKTRUM - Scala 2
JavaSPEKTRUM - Scala 2
 
JavaSPEKTRUM - Scala 1
JavaSPEKTRUM - Scala 1JavaSPEKTRUM - Scala 1
JavaSPEKTRUM - Scala 1
 
RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?RheinJUG 2010 - Sprechen Sie Scala?
RheinJUG 2010 - Sprechen Sie Scala?
 
Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?Objektforum 2010 - Sprechen Sie Scala?
Objektforum 2010 - Sprechen Sie Scala?
 
W-JAX 09 - ScalaModules
W-JAX 09 - ScalaModulesW-JAX 09 - ScalaModules
W-JAX 09 - ScalaModules
 
W-JAX 09 - Lift
W-JAX 09 - LiftW-JAX 09 - Lift
W-JAX 09 - Lift
 
JM 08/09 - Beginning Scala Review
JM 08/09 - Beginning Scala ReviewJM 08/09 - Beginning Scala Review
JM 08/09 - Beginning Scala Review
 
JM 08/09 - ScalaModules
JM 08/09 - ScalaModulesJM 08/09 - ScalaModules
JM 08/09 - ScalaModules
 
OSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on ScalaOSGi DevCon Europe 09 - OSGi on Scala
OSGi DevCon Europe 09 - OSGi on Scala
 
JAX 09 - OSGi on Scala
JAX 09 - OSGi on ScalaJAX 09 - OSGi on Scala
JAX 09 - OSGi on Scala
 
JAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components ModelsJAX 09 - OSGi Service Components Models
JAX 09 - OSGi Service Components Models
 
JAX 08 - Agile RCP
JAX 08 - Agile RCPJAX 08 - Agile RCP
JAX 08 - Agile RCP
 
Eclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by ContractEclipse Magazin 12 - Design by Contract
Eclipse Magazin 12 - Design by Contract
 
JUGM 07 - AspectJ
JUGM 07 - AspectJJUGM 07 - AspectJ
JUGM 07 - AspectJ
 
Eclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der DreiEclipse Magazin 16 - Die Stärke der Drei
Eclipse Magazin 16 - Die Stärke der Drei
 
Eclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance LoggingEclipse Magazin15 - Performance Logging
Eclipse Magazin15 - Performance Logging
 
Eclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on EquinoxEclipse Magazin 14 - Getting hooked on Equinox
Eclipse Magazin 14 - Getting hooked on Equinox
 

Recently uploaded

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
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
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

EclipseCon 08 - Agile RCP

  • 1. Agile RCP Presenter First using Spring Dynamic Modules Heiko Seeberger, metafinanz © 2008 by Heiko Seeberger; made available under the EPL v1.0 | March 20th, 2008 | www.metafinanz.de
  • 2. Agile development of user interfaces • Which process leading from requirements to UI code? • How can UIs be unit-tested? UI code Unit tests Requirements Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 3. Presenter First architecture Reference Event • MVP variant: Passive view. Presenter • Model and view abstracted as interfaces. IView IModel • Unit-testing presenters by mocking model and view. MockView MockModel PresenterTest Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 4. Presenter First process • Requirements drive the design. Presenter User Story +onQuery() The user can query for … books by entering the title in the query form … IView IModel +getName() +getBooks() … … Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 5. Presenter First on Eclipse RCP • MVP triads managed by a Presenter Spring application context. • Spring Dynamic Modules View Model integrates Spring into OSGi. Spring application context OSGi bundle Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 6. Presenter First on Eclipse RCP • Plug into the workbench via Presenter factories for views and editors. View Model views xPt ViewPart Factory Spring application context Workbench Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 7. Demo – User story, view and model User Story By clicking “Next“ the user can request a new random number which is shown in a text field. By clicking “Clear“ this text field is cleared. Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 8. Demo – Presenter Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 9. Demo – Test Coverage • Presenter 100% covered! Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 10. Demo – Spring configuration Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 11. Agile RCP • Framework for agile development of UIs with RCP: Based on standards like OSGi, Spring DM and MVP. Already contains library for Presenter First on RCP. Tooling and test support planned. • Plans: 0.9 release in April (Eclipse Forum Europe). Make Agile RCP open source. Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0
  • 12. Thank you! • For further information: Visit our Agile RCP website at agilercp.metafinanz.de, Join my session at Eclipse Forum Europe or Contact me at heiko.seeberger@metafinanz.de. Agile RCP - Presenter First using Spring Dynamic Modules | © 2008 by Heiko Seeberger; made available under the EPL v1.0