I am going to design Java Desktop Application. While I was design web application, I got plenty of choice, e.g. Spring, Strut etc. However, for Java Desktop (which is new to me), I don't find any.
Is that Eclipse RCP a Java Desktop Framework, which works like Spring mvc in Web apps?
I wonder, can I use Spring to enjoy the benefit of IOC, together with Eclipse RCP to enjoy the benefit of both world?
Please advise. Thanks.
In java desktop land, you have 2 major choices : Swing or SWT. I'm ignoring AWT on this one. QTJambi is not that used in Java.
Most Java desktop applications use Java Swing. Nothing is preventing you from using an IOC container in a desktop application. In general, IOC container are used mostly to store event listeners, actions in desktop applications and barely UI components.
There are many attempts to create Swing RCP frameworks but most Java desktop applications kind of roll their own.
You definitely can use Spring and reap the benefits of its various features including IoC. Spring is definitely not confined to the webworld, that's one of its great selling features is it's the swiss army knife of Java frameworks.
You realize, of course, that SWT is not portable the way that Swing is.
Yes, you can use Spring with SWT, but there's no built-in MVC framework to help you. You might find the Spring Rich Client module helpful.
Here's a simple example - one person's opinion.
Related
As stated in the question, I am looking for a Java-based (hopefully that does not require a full application server) event-based web applications development framework.
I have tried Vaadin, it was driving me insane. ZK Framework seems interesting, but it is pretty complex and there are no good examples of complex MVVC applications I know of, even though MVVC is the "way to go" in this framework.
Preferably, the framework I am looking for would be as much as possible similar to Android API, in the sense that the API is really well designed and that one can build very complex applications with it (i.e. CRUD interface within a CRUD, within a CRUD, with everything working as expected).
Another thing which we need is that the framework can be used not just for building business application, but also that web frontend can be built on top of it (even if special controls/widgets are needed).
Any ideas?
You can try GWT. Google Web toolkit is powerful tool for creating rich web application using Java as development language and eclipse as IDE. GWT provide cross browser ability and boilerplate code, so it is easy to bring rich AJAX based widgets. GWT is nice when you really need rich behavior capabilities on your client (GMail-like application).
It works very well with CRUD operation.
If you want to avoid "server-side only" frameworks you may have also a look at Apache Wicket as an alternative to JSF
i am planning to develop desktop application using java code, and wanted to use any ready
made framework and then i got know about eclipse RCP / eclipse scout but i am in doubt that which framework should i use whether eclipse rcp or eclipse scout ? could somebody suggest me please.
first of all I'd like to add another option: Eclipse Riena.
Eclipse Riena is comparable to Eclipse Scout as it is based on Eclipse RCP and provides some useful abstractions. You should have a look at it.
But to give you some help deciding which one to use:
If you are doing your first steps in Eclipse RCP, I would suggest that you first get your hands dirty with a little bit of plain Eclipse RCP. There is some complexity which will get back to you if just start with a higher level framework like Scout/Riena.
Depending on plans with your desktop application, this might already be good enough.
Scout/Riena do help you with more advanced topics like reuse/standardization, remoting, proven application architecture. But like most frameworks, you lose some flexibility.
What I especially like about Eclipse Riena:
Focus on easy to use GUI (will not fit for every project)
Abstraction over SWT/JFace (Ridgets) provides nice facility for controller tests, rendering the need for GUI tests to a minimum
Nice API to (dynamically ) structure and validate your application
Simplify remoting (no Java EE container dependencies on the client)
You can use parts of Riena independently. Say you can use the ridgets without adding the whole bunch of other perhaps not needed stuff.
What I like about Eclipse Scout
Strong focus on integration in Java EE environment
Wizards all over: Quite simple to create a first and second shot of your GUI
Supports swap of your GUI technology: You can move from SWT to Swing quite swiftly, though I wouldn't bet that is easy for a large application. ;)
HTH
Regards,
Holger
I can't comment/judge about your comments regarding Riena. However, I'd like to add some comments/clarifications regarding Scout
The fact that Scout comes with the Scout SDK tooling is a big help to beginners. This makes it ideal to get started with writing desktop applications. As the output of all the wizards is only Java code and some needed wiring in plugin.xml etc. it means that you're free to do Scout applications without using the Scout SDK (you can even have mixed teams working on the same code). This is possible as the Scout application model is just a bunch of Java classes.
Holger rightly mentions that you can swap the UI technology with Scout applications. This is possible as the programmers writes the model of the UI. For each supported UI technology (currently Swing, SWT, RAP (for web applications)) a specific plugin will actually draw the UI depending on the available UI model. This is a very clean separation of the UI technology and the application model. Therefore swapping works even for very large applications (Of course there are some exceptions to this rule: If your desktop application has some Microsoft Office integration part on the client side you will find it hard to support that in a web application).
Try some of the Scout tutorials and let us know what you think in the forum.
Best regards
Matthias
I am not familiar with any of the leading frameworks of java but still i managed to develop a desktop application. These days people are talking about spring, strut, hibernate etc.. I want to know how many of kind frameworks exists there and which of them are commonly used for developing a desktop application which involves database as well.
Which of them do you think is a must learn for Desktop application developers. Thanks in advance..
None of those are directly related to desktop applications, although Spring can be used just about anywhere, and Hibernate is app-framework-neutral.
The only real desktop framework player these days, IMO, is Griffon.
Maybe you don't really need a framework, take a look at the SWT/JFace Data Binding that is also good to learn for a desktop/database oriented application developer.
Take a look at the NetBeans platform. It is a very sound framework that eases a lot of things - but it does have steep learning curve.
Especially when you know Swing already it's very handy, because you after all it's a Swing framework and plays nicely with any Swing component out there.
Here is a nice little demo showing how to use JPA and the NetBeans platform to create a simple CRUD application:
http://platform.netbeans.org/tutorials/nbm-crud.html
Is any such frameworks we can build on ?
It should includes good-looking user-interface.
One framework to build a complete application.
i used Vaadin that is nice and easy
https://vaadin.com/home
There are plenty and all have some good parts people love about. Here your main concerns seems to build a nice UI. Then, I suppose, you need something like jQuery-UI/ZK/YUI or something in that area. The popular Java Web Frameworks will do little help in that regards.
After deciding on any of the UI frameworks, you can choose any popular web framework, consult your team/developers here. And look at this thread about Most Common Java Web Frameworks.
GWT, Icefaces, Richfaces, JavaServer Faces. There are many more you can search on the internet.
Using one framework to build the complete application depends on the type of application you are building. I will suggest the use of Java Server Faces (JSF).
I am new to Java web. Can anyone recommend some useful and efficient web framework to create UI and develop the code using Java? I am a core Java developer.
UPDATED
Thank you for your guidance guys i am planning to go with GWT ..and once again Thankyou...
Java Web Frameworks might not help you in designing UI, in real sense. You might need to look at JavaScript frameworks for that, i.e. YUI, jQuery, Scriptaculous, extJS etc..
However, Wicket and Stripes, are good among Java Web Frameworks for rapid development. Found a related thread about mostly used Java Web Frameworks.
You may use GWT ( http://code.google.com/webtoolkit/ ). This will allow you to create most of your UI using Java only.
Vaadin (www.vaadin.com) may be one to try.
You can use Adobe Flex (licensed) and integrate it with Java. It provides rich UI toolkit.
I would also recommend GWT. Not only for client side possibilities, but also for integration in IDE - Eclipse plugin, Netbeans plugin (GWT4NB), client-server capabilities with RPC helps to use a lot of already done work (java libraries) on server side.
Integration with Tomcat or another servlet container is of course also the main funcionality.
Why should there be problems with deploying GWT in Tomcat?