Loading presentation...

Present Remotely

Send the link below via email or IM


Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.


ZK Framework

Overview of the ZK framework

Richard Holland

on 29 January 2011

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of ZK Framework

ZK Framework An enjoyable RIA Ajax web framework richard holland technical lead - IT so what is the ZK Framework? and what does it look like? LANGUAGES <XML/> Javascript
Python TOP FEATURES open source 1.3 million downloads over 200 widgets and more 3rd party addons security protection built in cross-site scripting, Spring Security and more multi-threaded ajax taken care of automatically jQuery friendly interact with widgets from jQuery Java framework friendly Spring, Seam, JSF, LifeRay and more ARCHITECTURE WALKTHROUGH OF WIDGETS as a Java developer how do I do that? STEP 1 (there are many different ways to develop ZK applications... this is just a few...) install the ZK Studio Eclipse plugin STEP 2 http://studioupdate.zkoss.org/studio/update understanding the pieces Client Server ZUL files the xml files used to layout widgets to get this... the ZUL looks like this... ZScript multi-language supported server code in a ZUL file fast to do and no need to compile but not recommended...
keep server code out of ZULs
we do not use this automatically inject ZUL widgets as Java objects on the Server Autowire Composers ZUL Java Renderers Render widgets and their layout in Java ZUL Java STEP 3 Using the ZK Studio There are a lot of different ways to achieve the same goal in ZK We are going to focus on how we use ZK at Dreamworks And a few tips & tricks Why we chose ZK ease of use THE TEST: could an undergraduate intern develop the UI for an entirely
new module for our largest Java application entirely on his/her own? VERDICT: yes... and within a week... the documentation wikis small talks developer guides component reference style guides How Tos active forums open source with support A good product is one that doesn't actively need support
but instead is there to help save time and create custom features active and popular its not enough to be a good framework it must also be a popular one

an active community and active performance updates looks good How we use ZK no use of zscripts ZK Spring library is used for all MVC binding Spring beans created for each ZK controller ZK Controller (MVC) extends GenericAutowireComposer ZUL begins with DelegatingVariableResolver to resolve Spring beans ZUL widgets can now call Spring beans directly And that's all that is needed... Using ZK.xml located within WEB-INF Session listeners Listeners for anytime a new HTTP session is created or destroyed simply implement SessionInit or SessionCleanup respectively Upload size Do double check your max upload size a size of -1 is unlimited 300 is the amount of milliseconds between submits Clicking too fast Prevent users from resubmiting too fast disable-behind-modal will stop clicks if the screen is grayed out VS... GWT Too much code required to get the same task done
We don't get a lot of time and any tool that saves time is a plus GWT (5 Files, 190 Lines of Code)
Client Side Files:
1. Map.java – The main application class
2. LocationGenerator.java – The interface for RPC.
3. LocationGeneratorAsync.java- The interface for RPC.
4. LocatorData.java – The data wrapper class for passing data from server.
Server Side Files:
5. LocationGeneratorImpl.java – The data provider class in server side.

ZK (2 files, 25 Lines of Code)
Client Side Files:
1: Gmap.zul - layout for application
Server Side Files:
2: GmapController - Sets new location for map Java isn't friendly for Python/C++ devs (XML is)
and sometimes they can help us out with ZULs Found that getting backend Java developers started with ZUL/XML to create UI and then transitioning to the Java API required less developer downtime than asking them to start with an unfamilar Java API for UI. Not as friendly with others as ZK... ZK plays nice with:
jQuery Seam JSF Spring WebFlow JSP Flash Plain DHTML/CSS/JS HTML5 Canvas DWR ExtJS Too extreme in both directions JavaScript version (ExtJS) JavaScript gurus only
everything is layed out and developed in JavaScript... learn GWT + ExtJS APIs
learn all of the intricacies of their relationship don't like the license Java version (ExtJS/GWT) Thank you Extra Features
Full transcript