Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
What would be a good Java framework to explore for someone looking to learn? I've played around with the Android api but had someone ask what other frameworks I had experience with so I thought I should spend some time working with another. What's the best bang for my time?
There are many java frameworks but we can categorize two parts.
Standard Frameworks
JSF
JSP & Servlets
JPA
EJB
Non Standard Frameworks
Spring
Strut
Wicket
GWT
Hibernate
Seam
Play
Others
For web frameworks i suggest : Spring, Hibernate, Struts, Primefaces (cool stuff) .
It really depends on what it is you're trying to gain experience with. If you are looking for web frameworks, gaspyr named some decent ones you should try (I've worked with Spring myself). If you are looking to develop just desktop applications or embedded solutions, I would just go with tackling the standard JRE, and take special note on how the differences between how applications, applets, and servlets run. It's always good to know about the underlying libraries themselves rather than just understanding the syntax and attempting to use a framework to solve all problems without understanding how they might work under the hood.
But this is a really open ended question, and it's difficult to know exactly what you're looking for and why.
Framework choice depends on many factors and good documentation is not the least.
There is incredible book "Spring in Action" if you will decide to start with Spring.
Related
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I want to create java web based application using Spring-Hibernate. I know its not difficult to implement the functionality, but i need some help/guidance from the architecture perspective. Can any one suggest me the best design which will cover interfaces,design patterns etc.
Also need which version should i use of spring and hibernate.
The best way to start implementing a web application using the technologies you mentioned is to follow a tutorial from the large variety of tutorials you can find using google.
Another good option is to find a skeleton for an application that someone has created and shared in a source code sharing service like github or bitbucket (check the licenses also). You can check-out the code and have an initial working example you can work on and expand.
If something does not work during these attempts, then please come back here, search if your question is already asked by someone else, and if not place your question with specific code snippets and error messages you may get.
If everything works well and you need advices on different ways to improve performance, your architecture and the software patterns, then come back here also with a specific question, or in some cases you will find codereview more suitable for this kind of questions.
Good luck!
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 3 years ago.
The community reviewed whether to reopen this question 11 months ago and left it closed:
Original close reason(s) were not resolved
Improve this question
I built an application using GWT in 2012 and it has worked fine until now when a major functionality upgrade is required.
I used GWT because my background is Java and having worked in MVP type projects prior to that it was a good fit.
Today, any problem I encounter and do a google search for has answers that are posted 2 to 3 years ago ( and in a lot of cases don't solve my own issues ) This is telling me that GWT is being left behind.
Because I built the app primarly as a hobby to learn GWT I feel like I would like to learn a more recent framework when rebuilding my application.
So to narrow it down, I want to know if there is any suitable more recent alternative to GWT out there that still allows me to code in Java.
I understand this may seem like a broad question where answers will be mainly based on opinion but how else can you pick peoples brains except asking "What is your opinion" How do I do a,b,c using Java is going to be answered 3 different ways by 3 different people based on their opinion of how it should be done.
I have heard about Vaadin (https://vaadin.com/home)
Vaadin is a covering around GWT giving you more flexibility to work and the same time maintaining the GWT like experience.
Otherwise this is a good compilation, you could pick what you might need:
https://github.com/jashkenas/coffeescript/wiki/List-of-languages-that-compile-to-JS
As a long time GWT user I am increasingly drawn to AngularJS. Obviously we're talking JavaScript rather than Java here, but coming from a Java background myself I'm finding JavaScript with AngularJS a decent alternative to GWT.
Check OpenXava it's easy to use. http://www.openxava.org/ate/gwt-alternative
There is nothing wrong with GWT per se. Polyglot programming has real costs and there is plenty of activity e.g. on gitter. https://gitter.im/gwtproject/gwt
New users can use https://github.com/gwtboot to get started and there are modern ui kits like https://dominokit.github.io/domino-ui-demo/index.html?theme=indigo#home
Since you still want to code in Java and want to learn something new, i would suggest using "modern GWT", i.e. using elemental2 / j2cl. You should consider learning to refactor your app to separate your view layer from the underlying ui framework. Avoid the parts that will go away in GWT 3.0 such as RequestFactory
JSF? http://en.wikipedia.org/wiki/JavaServer_Faces
It's the "official" (part of Java EE) framework for Java web apps. I've used it briefly in the past and was relatively happy with it. I very much prefer it over other frameworks that still rely on JSPs.
cuba-platform if you are looking for ready made components and Web Firm Framework if you are looking for a framework which can be used to build any UI component. Both are java frameworks to build web ui.
I would recommend learning either Swing or JavaFX.
Swing has been arround since Java 1.2 and is the more "mature" one.
javaFX is their new "hip" version and was introduced into the JDK at version 7.
Personally I'd go for JavaFX just to be "future-proof".
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I have read the Wikipedia article on JavaFX and several other articles and I believe I have a decent understanding of what it is and what it does.
My question is simple: what do Java EE best practices dictate one uses for the presentation? Or, is it possible to use them both? Either way, can someone give an example of when it would be appropriate to choose one over the other, and why?
Thanks for any help with this; I'm just not seeing why anyone would ever want/need to stray from JSF.
JavaFX and JSF are two very different animals. I think of JavaFX as Oracle's version of Adobe Flex (or Flash?). It runs on a JVM, which means it's a heavier client for the browser. JSF uses standard HTML controls and interaction.
Running in a VM, like JavaFX or Flex means that you don't have to worry as much about browser capabilities like you do with standard HTML/Javascript, but it also means you are at the mercy of the VM implementor to get the platform on browser XYZ and fix platform and security bugs as they arrive. Another consideration is that some corporate environments may not like allowing plugins like flash/java in the browser.
Running pure HTML/Javascript will likely get you going on more devices and is lighter weight than needing to load a VM into the browser (never thought I would call JSF 'lighter weight'.) jQuery and other javascript frameworks have lessened the worries about cross-browser compatibility somewhat but not completely.
So, the answer is the same here as it is for every other question like this: "It Depends." What are your needs? Are you doing an annoying restaurant website where you feel like the menu (even though it's just an image) needs to be loaded by a heavy plugin? Perhaps JavaFX will fit the bill. Are you doing a simple CRUD app and you want to complicate things by using a difficult component based framework? JSF can help you with that.
JSF is pretty rich in UI compared to spring or struts but has a jargon of maintaining session and additional jars. But if you use richfaces, ibmfaces or primefaces your life will be much easier. JSF is a specification and you need to use its implementations like richfaces or myfaces.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 4 years ago.
Improve this question
Which is your top 3 open-source APIs (in Java) you recommend as an example of well-designed piece of art?
That would be code that you had pleasure to browse through and got some insights from it.
Any problem domain acceptable.
Emphasis here is on educational/study quality of code, complexity level - intermediate to top.
Thanks a lot for responses.
I think that google collections is a great place to start. Josh Bloch advised the development of a lot of it, and it's a very well done API. While Spring is great, it's a little hard to know where to start. A good introduction to google collections is "coding in the small with google collections" (I can't post the actual link because of stackoverflow spam filter).
1.Spring
2.Hibernate
Spring - it's a very well written and designed framework. It's a hell of a big bit of software but if want an example of how to build in a modular manner you can't go to fair wrong looking at the spring code base
The sources of the java libraries are well documented.
In my experience the most valuable works include the documentation of desgin decisions, if you see a nice API it would be very interessting what could be the alternatives to that. Unfortunatly this is mostly burried mailing-lists of a project.
Not an external library - but the java.util.concurrent package is very nicely written. The code isn't simple, but it's very well thought out and, in my opinion, has been written brilliantly.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
I've used Spring and Spring.NET quite a bit, but I would like to see what else is out there. Can anyone recommend a good Java or .NET framework that I could try to learn?
Here is a list of IoC containers from the good Mr. Hanselman...
Castle Windsor is very popular, you could do worse than learn that.
On the .Net side, Ninject is probably the most interesting, on the Java side, I would say check out Google Guice. That being said, DI is DI, and they all more or less do the same thing. The differences are mostly in how they are configured.
Google Guice is very good - unless you really need it, there are no .xml configuration files - everything is done via annotations, and in an ideal world you can avoid setter methods, injecting your dependencies via the constructor.
I'd suggest JBoss Seam. It has a very different dependency injection model than Spring. Seam's DI is bidirectional and able to inject values at every stage in an object's life (not just during initialization).
It's certainly not a good for everything, but if your looking to try different things in DI, this is interesting.
Look at Seam's home page.
So in the wide world of software you feel the need to learn what is 'assumed plumbing' rather than expand your base? You just use IoC. It's not even optional for anyone serious. This is going on like a decade now.
Go master Functional Programming in say F#. Master the new IObserver and related work coming in .NET 4.0 as the conceptual pairing to IEnumerable. Write a domain specific language for your domain of choice. Create New abstractions, don't simply relearn old ones.