Tuesday, June 27, 2006

RCP

Currently i am getting my feet wet with rich client projects like Eclipse RCP, Spring RCP.
Currently working with a closed-source RCP in my day job, i have high standards.
I expect:
drag and drop visual editor.
role based authorized menu system.
a standard way to achieve remoting(XML-RPC, web services)
solid navigation support.

Spring RCP is strong in the services layer and Eclipse on the visual side. I want the best of both worlds. Dependency injection can be the solution for the middle-tier, but i am not sure it can be used effectively for building complex user interfaces.

Eclipse RCP has one downside and it is SWT. I believe Swing is superior in terms of maintainability, interoperability. Netbeans is playing catch-up for sometime. It has one curse and it is SUN itself.


Why do we struggle to do lots of things in browsers quirky HTML/CSS support.

Lets realize that deployment will be less of an issue with broadband access rising.

Standarting on Eclipse RCP sounds more and more advantegous for large multinational companies. Imagine using a Eclipse client with two plugins that are developed by Human Resources department in US and portal team in Turkey.

The key to successfully adopting RCP is churning out applications much more quickier than html development.


Some of the interesting advantages are:
Supporting occasionally connected clients, (Rich client can do that so easily)
Transaction support (Spring can do transaction management for you)
Grid computing (embed Jetty in the client and listen for work requests from the dispatcher)
Document and office integration.


Some of the applications lend themselves to rich clients much more better than others.

A development shop should define
local caching strategy, (cache reference data on the client (eh-cache))
page composition strategy,(visual and reusable widgets)
action handling strategy, decoupling from UI(web services, hessian burlap?)
deployment strategy (web start, update center)



If your company or team needs to work on a project that calls for a rich client user interface development, just shout!

when the need arises i can manage and run projects that involve Spring-core, Spring MVC , struts sitemesh and Ajax(DWR)....