When to use Eclipse RCP?
As we start talking more and more about Eclipse RCP, I find it important to be able to describe when someone should consider using Eclipse RCP, instead of alternative technologies. If anything it starts to help people better understand the capabilities of Eclipse RCP.
In the space of platforms for rich user applications there seems to be a number of potential solutions, including Eclipse RCP, AJAX, MS .Net and Flash. (I am sure I am missing other potential solutions, feel free to add a comment.) At the high level, I think there are a couple of decision points that lead you to a different technology alternative.
Point #1 - Organization Culture
Is your organization considered a Microsoft or Java shop? Are most of the programmers trained on .Net or in Java or something else? Do you have a strategic direction to develop all applications on Java or .Net. Lets face it, an organization that is 100% Microsoft probably won't/shouldn't consider Eclipse RCP. If it is 100% Java, then I would hope Eclipse RCP would have a lot to offer. Lots of shops are heterogeneous, so the decision might be less than obvious.
Point #2 - Type of End User
What is the user profile of the application end user? Is it a casual user that uses the application occassionally or a power user that 'lives' in the application. For instance, I am fine doing my on-line banking via a browser, since I do it only once or twice a month. However, a bank employee that manages high-end banking customers probably wants to have a desktop application. They need to be able to save local information, switch between different contexts and tasks. Also integration with other applications on the desktop is often important. Here I think something like MS .Net or Eclipse RCP would be a big win.
Point #3 - Type of Application
I think there are different types of applications that are better suited for AJAX, Flash or RCP. At a very simplistic level I think there are three types of applications: 1) content delivery, ie portals, dashboards, where presentation is very important. 2) collaboration/workflow applications,where context and tasks switching is important and 3) transactional applications. For the content delivery, AJAX and Flash seem to be better suited for presentation and ease of content delivery. However, when you get into sophisticated workflow or collaboration, the ability to work offline and have persistent data is pretty important. Here I think RCP might be better suited. For transactional applications, I think it will depend, maybe on the type of user?
Of course none of this is black and white; there is a lot of gray in all of this. However, I am interested if people think this begins to hit home on when thinking about RCP? Or is this just pure marketing fluff and I've missed the important stuff?
In the space of platforms for rich user applications there seems to be a number of potential solutions, including Eclipse RCP, AJAX, MS .Net and Flash. (I am sure I am missing other potential solutions, feel free to add a comment.) At the high level, I think there are a couple of decision points that lead you to a different technology alternative.
Point #1 - Organization Culture
Is your organization considered a Microsoft or Java shop? Are most of the programmers trained on .Net or in Java or something else? Do you have a strategic direction to develop all applications on Java or .Net. Lets face it, an organization that is 100% Microsoft probably won't/shouldn't consider Eclipse RCP. If it is 100% Java, then I would hope Eclipse RCP would have a lot to offer. Lots of shops are heterogeneous, so the decision might be less than obvious.
Point #2 - Type of End User
What is the user profile of the application end user? Is it a casual user that uses the application occassionally or a power user that 'lives' in the application. For instance, I am fine doing my on-line banking via a browser, since I do it only once or twice a month. However, a bank employee that manages high-end banking customers probably wants to have a desktop application. They need to be able to save local information, switch between different contexts and tasks. Also integration with other applications on the desktop is often important. Here I think something like MS .Net or Eclipse RCP would be a big win.
Point #3 - Type of Application
I think there are different types of applications that are better suited for AJAX, Flash or RCP. At a very simplistic level I think there are three types of applications: 1) content delivery, ie portals, dashboards, where presentation is very important. 2) collaboration/workflow applications,where context and tasks switching is important and 3) transactional applications. For the content delivery, AJAX and Flash seem to be better suited for presentation and ease of content delivery. However, when you get into sophisticated workflow or collaboration, the ability to work offline and have persistent data is pretty important. Here I think RCP might be better suited. For transactional applications, I think it will depend, maybe on the type of user?
Of course none of this is black and white; there is a lot of gray in all of this. However, I am interested if people think this begins to hit home on when thinking about RCP? Or is this just pure marketing fluff and I've missed the important stuff?



19 Comments:
Good timing on this post, I will be visiting a client tommorrow who wants to webifiy all of their internal applications. I will be trying to sell the RCP vision which I belive is vastly superior.
I guess one thing you miss out on is the maintenance issue, with local applications and local data there is increased maintenance on the local computer.
I've always tried to argue with a web solution (even internal) you're managing your installs of IE and spyware etc..
Anyways, thanks for the post!
To counter refux's maintenance concern, if you use Eclipse Update Site concepts, maintaining the app can be as easy as web solution. The web server is just a deployment server and let the desktop OS download and update the plugins. If anything Eclipse guys can do (are you guys listening?) is to wrap the update site idea with a "dumb end user" concept. Updatesite works great for developer types but for end users it's a little daunting. We've written a few things to make it dead simple...which is what the boys in Redmond have done with Click Once deploys.
Excellent post BTW!
...and if you're using Java WebStart for the initial installation and eclipse update sites for the updates then you have an ideal combination for admin-free deployment.
I'm having some success with an internal RCP app just having everybody run it off a network drive. No install step or update issues that way.
We have developed an RCP solution for our client's budgeting needs who is a national concern in South Africa. It has been operational now for almost a year now and the update manager is key to its success. Our decision to go RCP was based on bandwidth constraints, which is still a continuing problem in our "developing" country. Hence the offline ability described in your blog was a major motivation. The other buy-in factor was cross platform ability. Our client is not locked into an MS platform and this freedom is ensuring that we have lots of future headway. On the negative side, clients running offline often persist data locally and this is where I agree with the point of increased client-side maintenance. The strangest things happen when you are not control of the data such as PC failures, PC replacements, formatting of hard drives, etc. To overcome this, we impose restrictions on the duration that data may exist offline. Aside from this, our experience has been a positive one and our users (who are predominantly non-technical, business minded) have taken well to concepts such as perspectives, views, wizards, cheat sheets, etc.
Just got back from the meeting I mentioned in my previous post.
We were able to talk the CIO out of going full-steam ahead with his webification plans (when does a consulting firm ever try to talk a client out of an expensive project!). Using the points Ian makes in his post I think I was able to make a fairly compelling reason to have a rich client on the desktop.
The discussion of data on the client computer did come up again, I wish I'd read Andre's post before the meeting, I love the idea of expiring data!
Anyway, just wanted to give an update and to let Ian know his post was quite timely and useful :)
Refux,
Glad to hear your presentation went well. I agree the update manager is pretty cool and I think one of the hidden secrets of Eclipse.
Andre,
I'd love to hear more about your application. I am trying to write case studies about successful RCP deployments. Do you think you and your customer would be willing to participate?
We'd be happy to assist. Leave a comment on my unplugged blog with your email (it won't display ) and I'll get in contact with you.
While still early and not ready for public (developer) consumption, myself and a few others are working on a Swing based RCP application framework. We have modeled our plugin engine similar to Eclipse, but are working on adding an event bus and IoC capabilities within the engine itself. The framework will initially include a simplified launcher and a number of plugins that provide the core api with which developers can build on top of. Included will be the main window with optional docking framework (flexdock) or MDI/SDI style (so you aren't stuck with a docking based application), help, preferences, configuration management for saving/restoring properties, some generic but nice looking dialogs, wizards, and so forth. We are working right now on an auto-update feature that will be similar to the Eclipse one, although initially it's a non-GUI plugin that can be used by other plugins; we'll be providing a GUI plugin for a manual push/update dialog, as well as the ability for checking for updates on startup.
Hopefully we'll gain some traction as an alternative especially since the vast majority of java GUI developers are Swing based and there is an outpouring of cries for a Swing based framework like Eclipse, even though RCP can be used with Swing.
You Swing people should take a look at Netbeans Platform. Surprised you don't have heard about it.
I also see two major counterparts of Eclipse RCP:
1) Eclipse use SWT, means harder/unrealist/very slow to deploy online via webstart/applet. On this point the Netbeans RCP might be better then.
2) You can't bundle any GPL file with any Eclipse RCP file because the Eclipse EPL license is GPL incompatible. For me this is what sucks the most and why I forgot about using Eclipse RCP in JGraphpad CE while it would have been a nice design solution. Regards.
Raph.
RCP versus Java Web Start.
In a company where the culture is Java oriented (not .NET) and for transactional or collaboration/workflow applications, it seems Java Web Start is so suitable as RCP. What do you think about ? If it is, what are the advantages and disadvantages of each solution, comparing RCP and Java Web Start ?
ok i understand why and when to use ... but i don't find real informations about how i could write a better rcp plugin...can anyone help me with a tutorial or something else..
plase write me at ctechinfotech@yahoo.com
Dr Link,
Try for info on RCP.
Very interesting info... I am a software developper who has just discovered the great potential of RCP. In my daily work, I have to deal with java applications (Web, Swing,...) for big companies, which want (and can pay for) exclusive products and nice looking layouts (at least the ones I'm working for). Kind of bored of that, right now I am thinking about creating a small business dedicated to develop Eclipse plugins and offer java solutions in general for small/medium size local companies as a begining.
But there is something even more challenging for me: develop applications for researchers at uni. They usually need fast-to-develop, high-performance, scalable software proyects and trust me, they would stand hours in front of the computer. I think there is a potential market there for RCPs.
Anyway, very interesting post! and good luck from Spain!
You mention workflow & offline viewing in your blog post.
Lotus Notes excels in workflow & offline viewing.. and Lotus Notes 8 is an eclipse platform.. so you can use eclipse to develop and deploy eclipse applications to lotus notes - because upgrading to Notes 8 ensures an eclipse environment on users desktop!
Online pharmacy is operated by experienced Australian pharmacists - Canadian pharmacy drugs to patients at discount prices
Viagra
Death after taking Viagra?
Viagra (Sildensfil) like any other drug has side e...
Who should not take Viagra
Who should take Viagra carefully
How to take Viagra
Viagra’s story
First ED study
VIAGRA shows excellent results
Viagra - proven veteran in ED treatment
Viagra's action limits
fax cash loan payday
fax hassle payday loan
faxless ga loan payday
PAYDAY LOAN
PYADY LOAN ONLINE
PAYDAY LOANS
CASH PAYDAY LOAN
CASH ADVANCE
PAYDAY LOAN OK
NO FAX PAYDAY LOAN
fax cash loan payday
fax hassle payday loan
faxless ga loan payday
no fax payday advance cash
no fax fast payday loans
payday loan free no fax
advance payday loan
ree payday loan
payday cash loan markham texas
advance cash maine payday
accupril
aciphex
actonel
actos
advair
aldactone
allegra
altace
amaryl
amoxil
antabuse
arava
aricept
atarax
atrovent
avandia
avapro
bactroban
benicar
biaxin
buspar
cardura
carisoprodol
ceftin
celexa
celebrex
Post a Comment
Links to this post:
Create a Link
<< Home