NOTE: A slidedeck with 20 slides of "How To" JavaFX Dependency Injection with FxContainer is available here.
In the previous installment of Effective Architecture, I covered TDD with Model-View-Presenter. However the code I presented had synchronous server calls. In JavaFX (like Swing), the UI code runs in the Event Dispatch Thread (EDT). It is unwise to block the EDT. Hence it is encouraged to execute all server calls on a separate thread.
In the last installment of my post, I briefly described how to do Test Driven Development (TDD) in JavaFX using Model-View-Presenter (MVP) pattern. In this installment, I illustrate this particular piece in detail and provide working code samples.
In spite of the cool animation and glamour power of JavaFX, the largest usage of JavaFX will be for building “boring” enterprise software combined with some visualization. There is a dearth of resources exploring architecture options for building serious and large applications using JavaFX. This blog post is an attempt towards addressing that gap.
I am drawn to JavaFX these days. Not because it is cool (which, it is) or because I want to do whiz bang effects, but just as an explorer to do an unbiased check on whether it can be a tool useful to create regular corporate UIs in any better fashion than regular Swing.
Bean validation is a nice API for for validating Java objects and is included in Java EE 6. But it can also be used anywhere, regardless of the layer. It can be used with or without JPA and in a stand alone Java SE.
Struts is a very mature framework. Some may think it is old fashioned or not so cool kid on the block, but like it or not, it is a force to reckon with. If I were running a business requiring a solid web infrastructure, I would bet on Struts. After all, the bottomline for the business is project success and not playing with cool bleeding edge framework. (That's the passion for us, developers).
Enterprise applications are all about data manipulation. Data flows through the system from one tier to another.
Logging with Log4J is simple and seems to be trivial and doesn't warrant a blog. However Logging in enterprise projects raises interesting requirements and possibilities.