Wednesday, August 7, 2013

ExtJs: ExtDirect - A Magic

Get Some idea about DJN(DirectJNGine): A java based implementation of ExtDirect Specification

ExtDirect is a magic in ExtJs that enables developer to directly call the server side methods or functions directly on client side(Javascript side). It is a specification and some group of developers in different server side technologies like Java, PHP, Dotnet etc have provided its implementation. Followings are the specification of ExtDirect:

Specification:

§  Remoting methods by metadata – Custom annotations and attributes
§  Programmatic, JSON or XML configuration
§  Type conversion
§  Asynchronous method calls
§  Method batching
§  File uploading
§  Specify before and after actions to execute allowing for aspect oriented programming. This is a powerful concept which can be used for many uses such as security.

Followings are the advantages of using ExtDirect:

Advantages:

Prior to ExtDirect, we could communicate with server by using only Ajax but in this case we have to write several boilerplate codes every time when we communicate with server.

a)      Creation of  AJAX request
b)      Populating AJAX request.
c)       Defining  request success handler
d)      Defining  request failure handler
e)      Submit the Ajax request

But, we can get rid of this boilerplate code by using ExtDirect.

Server side implentations of ExtDirect:

There are several server side implementation of ExtDirect like in PHP, Dotnet, Java etc. Here we will consider about java implementation. Followings are the java side implementation of ExtDirect:

1)      directjngine - Maintained by pagullo (Pedro Soliveres)
http://code.google.com/p/directjngine/
http://extjs.com/forum/showthread.php?t=73027

2)      extdirectspring - Maintained by ralscha
https://github.com/ralscha/extdirectspring
http://www.sencha.com/forum/showthre...t-Spring-1.0.0

3)      extdirect4java - Maintained by piziwate (Steve Guillarmod)
http://extjs.com/forum/showthread.php?t=67956
http://code.google.com/p/extdirect4java

4)      Ext.Direct Struts 2 plugin: extdirectj-s2-plugin - Mainted by stefanorg
http://extjs.com/forum/showthread.php?t=69353
http://code.google.com/p/extdirectj-s2-plugin/

5)      HQExtDirect - Mainted by cattus
A new reflection based Java server-side stack implementation.
Examples, additional information and packages you can find at the project's home page:
http://bitbucket.org/cattus/hqextdirect/

Following is the comparative study of first four implementations:

Comparative study of Java Stacks of ExtDirect Specification




DirectJNGine
ExtDirectSpring
Extdirect4java
Ext.Direct Struts 2 plugin
Version
2.2
1.3.1
0.3.2
r3
License
GNU Lesser GPL
Apache license 2.0
GNU Lesser GPL
GNU GPL v3
Document Quality
Good
Good but brief
Not Available
Not Available
Support
Good
Good
Very late response from forum
Very late response from forum
Form Post
Yes
Yes
Not Found
Not found
Duration Based Polling
Yes
Yes
Not Found
Not found
Direct Store
Yes
Yes
Not Found
Not found
Google App Engine Support
Yes
Not found
Not Found
Not found
Servlet Scope Handling
Yes
Yes
Not Found
Not found
Custom Json-Java Serialization Deserialization
Yes
Not found
Not Found
Not found
Automatic Json-Java serialization Deserialization present?
Yes
Not found
Not found but JsonSerializer and Deserializer used in Utils.java class
Not found
Adding Action methods programatically
Yes
Not found
Not Found
Not found
Diagnostic and logging
Yes
Not found
Not Found
Not found
Batch Request Handling
Yes
Yes
Not Found
Not found
Stateful Actions
Yes
Not found
Not Found
Not found
AOP Support
Yes
Not found
Not Found
Not found
Examples
Available
Some clear online examples available
Only one example provided in forum as well as on wiki tab of code link.
Very Limited
Last Build
14-May-12
29 Apr, 2012
May, 2009
May, 2009
Maintained By
Maintained by pagullo (Pedro Soliveres)
Ralscha
Piziwate (Steve Guillarmod)
Stefanorg
URL


Further we will go through DJN i.e. DirectJNGine and will do some hello world program with this in my next post.

Get Some idea about DJN(DirectJNGine): A java based implementation of ExtDirect Specification

No comments:

Post a Comment

Please provide your precious comments and suggestion