What is the WB JEE about

Modern web applications with

Transcript

1 Modern web applications as of September 2013

2 web applications with Vaadin ??? <{2

3 Agenda What are the typical challenges? Why is Vaadin helpful in this? How do you develop with Vaadin? Start with 3

4 Agenda What are the typical challenges? Why is Vaadin helpful in this? How do you develop with Vaadin? Start with 4th

5 What are daily challenges? Efficiency Roundtrip API / Libraries Debugging Testability 5

6 What are daily challenges? Variance feedback standards preparation 6

7 What are daily challenges? Acceptance Benefit Simplicity Setting Actual Use 7

8 Agenda What are the typical challenges? Why is Vaadin helpful in this? How do you develop with Vaadin? Start with 8th

9 What is Vaadin? Rich Internet ApplicaBons = RIA (in the browser) At desktop level for users MiGels components (such as SWT / Swing) for developers Develop in pure Java Strictly typed web development 9

10 ways to Vaadin Fat Client (starting point) 12 strong 10 pronounced little 2 pronounced 0 Fat Client maximum scope for a small circle 10

11 Ways to Vaadin CGI 12 strong 10 pronounced little 2 pronounced 0 Fat Client CGI very rudimentary, but widely applicable architecture 11

12 Ways to Vaadin JSF & Co. 12 strong 10 pronounced little 2 pronounced 0 Fat Client CGI JSF & Co. improved efficiency, still widely applicable architecture 12

13 Ways to Vaadin Vaadin 12 strong 10 pronounced little 2 pronounced 0 Fat Client CGI JSF & Co. Vaadin EvoluBon to PerfekBon: very large scope for a very broad target group 13

14 History of Vaadin 2000 Internal start 2003 AJAX rendering 2007 Open Src / GWT 2009 Vaadin Beta Vaadin Vaadin 7 Stability + topicality 14

15 Architecture by Vaadin - Shared State / Terminal Adapter via Framework 15

16 Extensive preparatory work - UI library 45+ components 300+ in the add-on Dir 5+ layouts 3 themes 1 more in progress Drag & Drop Support Touch Events CSS + SASS 16

17 Mobile Development: Vaadin TouchKit Still RIA Still Pure Java ios Look & Feel Neutral look possible NavigaBons model Scroll lists, Navigaeon Bar 17

18 Why is Vaadin helpful? Efficiency Efficiency Roundtrip API / Libraries Debugging Testability Maven, Hot Deployment, JRebel UI Components Collection Full Java Remote Debugging JUnit Selenium JMeter 18

19 Why is Vaadin helpful? Variance / Risk Fast first version Qualified feedback standard JEE technology No teething problems Hardened Variance feedback standards Preparation Large UI components collection 19

20 Why is Vaadin helpful? Acceptance UI style and usability conforming to expectations Mobile acceptance Benefit Simplicity setting Actual use Time for business logic Fast feedback 20

21 Agenda What are the typical challenges? Why is Vaadin helpful in this? How do you develop with Vaadin? Start with 21

22 Basis of the Vaadin architecture Representation in the browser Communication / State UI for Use Cases Theme / Design Data Binding Client State processed in the background Creating components on the server Using Web / JEE Container Focus on specific logic Business logic and Data management JVM 22

23 Jump into the code: officewerker) public class OfficewerkerApplicationUI extends UI {own notificator public void init (vaadinrequest request) {main () from Vaadin this.i18nlocaleconfig.setlocale (getlocale ()); ...} setcontent ((componentcontainer) this .mainpresenter.getview (). getcomponent ()); Page.current (). SetTitle ("Officewerker"); Window analog Swing MVP is an opeon} 23

24 Jump into the code: LoginComponent public void init () {setsizefull (); Toolbar toolbar = new Toolbar (this.i18n.get ("login.title"), null); this.textfieldmandator = new TextField (this.i18n.get ("login.label.mandator")); this.textfieldmandator.setwidth ("100%"); this.textfieldmandator.settabindex (1); this.textfieldmandator.focus (); this.textfieldmandator.setid ("loginmandant"); this.textfieldmandator.addstylename ("styleid- loginmandant"); this.textfieldlogin = new TextField (this.i18n.get ("login.label.login")); this.textfieldlogin.setwidth ("100%"); this.textfieldlogin.settabindex (2); this.textfieldlogin.setdebugid ("loginname"); this.textfieldlogin.addstylename ("styleid- loginname"); HorizontalLayout layoutloginmandator = new HorizontalLayout (); layoutloginmandator.setwidth ("100%"); layoutloginmandator.setspacing (true); layoutloginmandator.addcomponent (this.textfieldmandator); layoutloginmandator.addcomponent (this.textfieldlogin); Internaeonalization TextField analogous to Swing Preparation of surface test panels analogous to Swing 24

25 Jump to the code: init () + LoginComponent 25

26 Jump to the code: init () + LoginComponent HTML 26

27 Development details Data binding Consistent model across all components Property, Item, Container Basis implementations available Bean, SQL Further implementations available via add-ons JPA, Paged Own implementation possible For integration of your own business layer

28 Details on TouchKit Development Specials Window setcontent (new TouchKitWindow ()); NavigaBon to the left and right Style (mobile) Source: Book of vaadin 28

29 Details on development - environment Support of the common IDEs Eclipse, Netbeans, IntelliJ Can be easily integrated into Build / CI Maven, Gradle Jenkins, Hudson CVS, Subversion, Git Testability Unirest: High coverage possible Surface test: Selenium or test bench Performance test: JMeter 29

30 Agenda What are daily challenges? Why is Vaadin helpful in watering them? How is an application developed in Vaadin? Start with 30th

31 Where do I start? Getting started! Easy Einseeg First results quickly Warning: Vaadin helps, but it is only a technology! Clear requirements Good project methodology Permanent feedback Clean architecture 31

32 Where do I start? Tutorials e.g. JavaMagazin PDF, printed Book of Vaadin Comm unity vaadin.com e.g. akquinet Solution Partner 32

33 Conclusion and wrap-up Strictly typed web development Pure and Full Java EvoluBon towards PerfekBon regarding efficiency, variance, acceptance Get started! ASK? 33