Your SlideShare is downloading. ×
Rich Enterprise Applications with JavaFX <ul><li>Max Katz </li></ul><ul><li>Senior Systems Engineer </li></ul><ul><li>Exad...
<ul><li>Max Katz </li></ul><ul><li>Senior Systems Engineer at Exadel </li></ul><ul><li>RIA strategy, development, training...
Author of  Practical RichFaces (Apress) Co-author of RichFaces Dzone RefCard
<ul><li>Blog </li></ul><ul><li>http://mkblog.exadel.com </li></ul><ul><li>Twitter </li></ul><ul><li>http://twitter.com/max...
<ul><li>Exadel </li></ul><ul><li>Products and services </li></ul><ul><li>Founded in 1998, headquarters in San Francisco Ba...
<ul><li>Exadel Products </li></ul><ul><li>Open Source with JBoss </li></ul><ul><ul><li>RichFaces </li></ul></ul><ul><ul><l...
<ul><li>Exadel Services </li></ul><ul><li>Rich Enteprise Applications development </li></ul><ul><li>Custom rich components...
<ul><li>The Plan: </li></ul><ul><li>Introduce JavaFX </li></ul><ul><li>Show how JavaFX can be connected to enterprise back...
<ul><li>Options today </li></ul><ul><li>Ajax/HTML </li></ul><ul><ul><li>Browser only </li></ul></ul><ul><li>Flash/Flex </l...
<ul><li>Another (new/old) option </li></ul><ul><li>JavaFX  </li></ul><ul><ul><li>Browser + Java plug-in </li></ul></ul>
<ul><li>What is JavaFX? </li></ul>
<ul><li>Rich client platform for building and deploying rich Internet applications </li></ul><ul><li>JavaFX SDK </li></ul>...
<ul><li>Java applets done correctly ( almost )? </li></ul><ul><li>Java runtime download </li></ul><ul><li>Java runtime ins...
<ul><li>JavaFX Script is a DSL for creating rich UI using a powerful declarative language </li></ul>
<ul><li>Let's look at a simple example </li></ul>
<ul><li>Could JavaFX be used to create rich UI's in the enterprise?  </li></ul>
<ul><li>Server options: </li></ul><ul><li>Java EE </li></ul><ul><li>Spring </li></ul><ul><li>Seam </li></ul>
<ul><li>H ow to connect the client (JavaFX) with server?  </li></ul><ul><li>Basic API to make remote calls in JavaFX </li>...
<ul><li>Flamingo </li></ul><ul><li>Framework for easily bootstrapping JavaFX front-end with a Java EE, Seam and Spring bac...
<ul><li>Flamingo features: </li></ul><ul><li>CRUD tools </li></ul><ul><li>Server-side push </li></ul><ul><li>Offline </li>...
Examples
@Name (&quot;messageManager&quot;) public class MessageManager { public void delete (int index){...} public void add (Stri...
@Name (&quot;wizardManager&quot;) @Scope(ScopeType.CONVERSATION) public class Wizard { @Begin public void start (){   log....
@Name (&quot;messageManager&quot;) @Scope(ScopeType.SESSION) public class MessageManager { @DataModel private List<Message...
@Entity @Name (&quot;message&quot;) public class Message { @Length(min=3, max=40) private String  text ; } FlamingoService...
<ul><li>More examples: </li></ul><ul><li>EL (Expression Language) </li></ul><ul><li>Server-side push </li></ul><ul><li>Off...
<ul><li>JavaFX server-side push </li></ul>
<ul><li>JavaFX hotel booking application </li></ul>http://tinyurl.com/javafxhotel
<ul><li>Flamingo Mobile </li></ul><ul><li>Easily connect Java EE, Seam and Spring back-ends to iPhone, Android, and BlackB...
<ul><li>Android application connected to back-end with Flamingo </li></ul>
<ul><li>Other JavaFX projects  </li></ul>
<ul><li>JavaServer Faces (JSF) is the standard component-oriented UI framework for the Java EE platform </li></ul>
<ul><li>Using JavaFX applet on JSF page </li></ul>JSF page Applet <h:outputText> <h:inputText> <h:dataTable> <fiji:javafx>
<ul><li>Fiji:  JavaFX – JSF integration </li></ul><ul><li>Wrap any JavaFX applet as a JSF component </li></ul><ul><li>Open...
<ul><li>Fiji: JSF-JavaFX integration </li></ul><fiji:javaFx archive=&quot;/javafx/chart.jar&quot;  applicationClass=&quot;...
<ul><li>FacesFX  – JavaFX as JSF VDL (View Description Language) </li></ul><ul><li>JavaFX script is a very powerful UI lan...
JavaFX nodes  for JSF component ValueExpression
<ul><li>JavaFX plug-in for Eclipse </li></ul><ul><li>Eclipse plug-in for developing JavaFX applications </li></ul><ul><li>...
<ul><li>Ajax Applications with RichFaces and JSF 2 session </li></ul><ul><li>Tomorrow, 4:30pm </li></ul>
<ul><li>Max Katz </li></ul><ul><li>Blog </li></ul><ul><ul><li>http://mkblog.exadel.com </li></ul></ul><ul><li>Twitter </li...
Upcoming SlideShare
Loading in...5
×

Rich Enterprise Applications with JavaFX

3,344

Published on

JavaFX presentations given during TheServerSide Java Symposium in Las Vegas (2010)

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,344
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Rich Enterprise Applications with JavaFX"

  1. 1. Rich Enterprise Applications with JavaFX <ul><li>Max Katz </li></ul><ul><li>Senior Systems Engineer </li></ul><ul><li>Exadel </li></ul><ul><li>[email_address] </li></ul>
  2. 2. <ul><li>Max Katz </li></ul><ul><li>Senior Systems Engineer at Exadel </li></ul><ul><li>RIA strategy, development, training and consulting </li></ul><ul><li>Products: </li></ul><ul><ul><li>Exadel JavaFX plug-in for Eclipse </li></ul></ul><ul><ul><li>Exadel FacesFX (JavaFX as JSF VDL) </li></ul></ul><ul><ul><li>Exadel Fiji (JSF with JavaFX and Flex) </li></ul></ul><ul><ul><li>jsf4birt (JSF-BIRT integration) </li></ul></ul>
  3. 3. Author of Practical RichFaces (Apress) Co-author of RichFaces Dzone RefCard
  4. 4. <ul><li>Blog </li></ul><ul><li>http://mkblog.exadel.com </li></ul><ul><li>Twitter </li></ul><ul><li>http://twitter.com/maxkatz </li></ul>
  5. 5. <ul><li>Exadel </li></ul><ul><li>Products and services </li></ul><ul><li>Founded in 1998, headquarters in San Francisco Bay Area </li></ul><ul><li>300+ employees </li></ul><ul><li>Offices in: </li></ul><ul><ul><li>Concord, California - 1998 </li></ul></ul><ul><ul><li>Russia, Moscow - 1999 </li></ul></ul><ul><ul><li>Belarus, Minsk - 2002 </li></ul></ul><ul><ul><li>Belarus, Vitebsk - 2005 </li></ul></ul><ul><ul><li>Ukraine, Donetsk and Kharkov - 2006 </li></ul></ul>
  6. 6. <ul><li>Exadel Products </li></ul><ul><li>Open Source with JBoss </li></ul><ul><ul><li>RichFaces </li></ul></ul><ul><ul><li>JBoss Tools/JBoss Developer Studio </li></ul></ul><ul><li>Exadel </li></ul><ul><ul><li>JavaFX plug-in for Eclipse </li></ul></ul><ul><ul><li>FacesFX </li></ul></ul><ul><ul><li>Fiji (JSF – JavaFX/Flex integration) </li></ul></ul><ul><ul><li>jsf4birt (JSF – BIRT/Actuate integration) </li></ul></ul><ul><ul><li>Mobile ecommerce </li></ul></ul>
  7. 7. <ul><li>Exadel Services </li></ul><ul><li>Rich Enteprise Applications development </li></ul><ul><li>Custom rich components </li></ul><ul><li>Eclipse development </li></ul><ul><li>Cloud services </li></ul><ul><li>Mobile development </li></ul><ul><li>Training </li></ul>
  8. 8. <ul><li>The Plan: </li></ul><ul><li>Introduce JavaFX </li></ul><ul><li>Show how JavaFX can be connected to enterprise back ends </li></ul><ul><li>Other JavaFX-related projects </li></ul>
  9. 9. <ul><li>Options today </li></ul><ul><li>Ajax/HTML </li></ul><ul><ul><li>Browser only </li></ul></ul><ul><li>Flash/Flex </li></ul><ul><ul><li>Browser + Flash player plug-in </li></ul></ul><ul><li>Silverlight </li></ul><ul><ul><li>Browser + plug-in </li></ul></ul>
  10. 10. <ul><li>Another (new/old) option </li></ul><ul><li>JavaFX </li></ul><ul><ul><li>Browser + Java plug-in </li></ul></ul>
  11. 11. <ul><li>What is JavaFX? </li></ul>
  12. 12. <ul><li>Rich client platform for building and deploying rich Internet applications </li></ul><ul><li>JavaFX SDK </li></ul><ul><li>JavaFX script </li></ul><ul><li>Java runtime (JRE) </li></ul>
  13. 13. <ul><li>Java applets done correctly ( almost )? </li></ul><ul><li>Java runtime download </li></ul><ul><li>Java runtime installation/configuration </li></ul><ul><li>Application deployment </li></ul><ul><li>Powerful declarative language </li></ul>
  14. 14. <ul><li>JavaFX Script is a DSL for creating rich UI using a powerful declarative language </li></ul>
  15. 15. <ul><li>Let's look at a simple example </li></ul>
  16. 16. <ul><li>Could JavaFX be used to create rich UI's in the enterprise? </li></ul>
  17. 17. <ul><li>Server options: </li></ul><ul><li>Java EE </li></ul><ul><li>Spring </li></ul><ul><li>Seam </li></ul>
  18. 18. <ul><li>H ow to connect the client (JavaFX) with server? </li></ul><ul><li>Basic API to make remote calls in JavaFX </li></ul><ul><li>Some ready-to-use framework </li></ul>
  19. 19. <ul><li>Flamingo </li></ul><ul><li>Framework for easily bootstrapping JavaFX front-end with a Java EE, Seam and Spring back-end </li></ul><ul><li>Open source </li></ul>
  20. 20. <ul><li>Flamingo features: </li></ul><ul><li>CRUD tools </li></ul><ul><li>Server-side push </li></ul><ul><li>Offline </li></ul><ul><li>Server integration components: </li></ul><ul><ul><li>Server components call </li></ul></ul><ul><ul><li>Conversation support </li></ul></ul><ul><ul><li>Binding </li></ul></ul><ul><ul><li>Validation </li></ul></ul><ul><ul><li>EL (Expression Language) </li></ul></ul>
  21. 21. Examples
  22. 22. @Name (&quot;messageManager&quot;) public class MessageManager { public void delete (int index){...} public void add (String text) {...} } public interface MessageManager { public void delete (int index); public void add (String text); } public static MessageManager getMessageManager() { return (MessageManager) FXServiceFactory .getService (MessageManager.class, &quot; messageManager &quot; ); } function add(): Void { var text = textBox.text; var msg: Message = Message {}; msg.setMessage(text); insert msg into messages; AppServiceFactory.getMessageManager().add(text); } Server Client 1 2 3 Server component call Server component call
  23. 23. @Name (&quot;wizardManager&quot;) @Scope(ScopeType.CONVERSATION) public class Wizard { @Begin public void start (){ log.info(&quot;starting long-running conversation&quot;); .. } } public static void start() { ((WizardManager) ServiceFactory.getService(WizardManager.class, &quot; wizardManager &quot; )).start(); } Server Client Conversation support
  24. 24. @Name (&quot;messageManager&quot;) @Scope(ScopeType.SESSION) public class MessageManager { @DataModel private List<Message> messageList ; Binding – bind (send to client) to any variable in server context public static BindingManager getBindingManager() { return (BindingManager) ServiceFactory.getService(BindingManager.class, &quot;com.exadel.flamingo.service.binding.bindingManager&quot; ); } public static Message[] getMessageList() { List<Message> list = (List<Message>) getBindingManager() .getObject( &quot;messageList&quot; ); return list; } Server Client 1 2
  25. 25. @Entity @Name (&quot;message&quot;) public class Message { @Length(min=3, max=40) private String text ; } FlamingoServiceFactory. getHessianEntityValidator(). validate( &quot;message.text&quot; , value); Server Client Hibernate and Bean Validation (JSR 303)
  26. 26. <ul><li>More examples: </li></ul><ul><li>EL (Expression Language) </li></ul><ul><li>Server-side push </li></ul><ul><li>Off-line </li></ul>
  27. 27. <ul><li>JavaFX server-side push </li></ul>
  28. 28. <ul><li>JavaFX hotel booking application </li></ul>http://tinyurl.com/javafxhotel
  29. 29. <ul><li>Flamingo Mobile </li></ul><ul><li>Easily connect Java EE, Seam and Spring back-ends to iPhone, Android, and BlackBerry native applications </li></ul><ul><li>Re-use exiting enterprise services </li></ul><ul><li>Open source </li></ul>
  30. 30. <ul><li>Android application connected to back-end with Flamingo </li></ul>
  31. 31. <ul><li>Other JavaFX projects </li></ul>
  32. 32. <ul><li>JavaServer Faces (JSF) is the standard component-oriented UI framework for the Java EE platform </li></ul>
  33. 33. <ul><li>Using JavaFX applet on JSF page </li></ul>JSF page Applet <h:outputText> <h:inputText> <h:dataTable> <fiji:javafx>
  34. 34. <ul><li>Fiji: JavaFX – JSF integration </li></ul><ul><li>Wrap any JavaFX applet as a JSF component </li></ul><ul><li>Open source </li></ul>
  35. 35. <ul><li>Fiji: JSF-JavaFX integration </li></ul><fiji:javaFx archive=&quot;/javafx/chart.jar&quot; applicationClass=&quot;com.exadel.fiji.Chart&quot;/>
  36. 36. <ul><li>FacesFX – JavaFX as JSF VDL (View Description Language) </li></ul><ul><li>JavaFX script is a very powerful UI language </li></ul>
  37. 37. JavaFX nodes for JSF component ValueExpression
  38. 38. <ul><li>JavaFX plug-in for Eclipse </li></ul><ul><li>Eclipse plug-in for developing JavaFX applications </li></ul><ul><li>Open source, free </li></ul>
  39. 39. <ul><li>Ajax Applications with RichFaces and JSF 2 session </li></ul><ul><li>Tomorrow, 4:30pm </li></ul>
  40. 40. <ul><li>Max Katz </li></ul><ul><li>Blog </li></ul><ul><ul><li>http://mkblog.exadel.com </li></ul></ul><ul><li>Twitter </li></ul><ul><ul><li>http://twitter.com/maxkatz </li></ul></ul><ul><li>Email </li></ul><ul><ul><li>[email_address] </li></ul></ul><ul><li>Exadel </li></ul><ul><li>Blog </li></ul><ul><ul><li>http://blog.exadel.com </li></ul></ul><ul><li>Twitter </li></ul><ul><ul><li>http://twitter.com/exadel </li></ul></ul>Thank you. Questions?

×