Vaadin:A suitable Design Pattern - java

I'm about to start to develop a Vaadin web application, I also plan to use Spring IOC container.
As far was I know it is pretty much like a Swing application, and I see that people use Presentation Model or MVC "like" patterns.
If you have experience on Vaadin can you suggest me a design pattern regrading the structure of Vaadin framework? maybe a slightly modified version of Presentation Model or MVP or MVC whatever? I also read that there are some patterns provided in Vaadin, what are they?
Thanks

Personally, I prefer to use the MVP pattern, it keeps the code nice and clean and it suites well for Vaadin applications. There are even multiple MVP add-ons you could try out.

Maybe you could try Vaadin together with Grails. Grails gives you clear division between database, services and view layer (+ you will get Spring IoC for free). If you want to give it a try, follow this one.
If not, you can
as view, create UI with components from Vaadin
you could also use State pattern for implementation of different states of UI screens
create your implementation of DAO pattern (and put somewhere there also your domain classes)
and use Listener pattern for action
The second option without Grails is pure Java, but it is also more painful.

If you're using Spring and Vaadin together, consider using the Spring Stuff Vaadin add-on for application autowiring, etc.
Disclaimer: I'm the author

Related

Framework like ATG Dynamo Application Framework

I am a ATG developer, I am developing an application for my own venture, I know ATG is pretty expensive. So I want to know if there is any java framework like ATG. Of if any way to use ATG DAF free of cost or with min. expense. I just want to use the basic of DAF, Nucleus(component model), Repository and dsp taglibs.
I don't work for Oracle so I can't comment on the commercial aspects of your question. That said, the components you are referring to are available in some shape or form in other JAVA based technologies which, with your knowledge of ATG you should be able to pick up quite quickly.
For example the Nucleus provides you IOC in a similar way that Spring does. The repository layer is a precursor to Hibernate while most of the DSP tags (useful ones at least) is mimicked by JSTL.
You could also refer to this discussion elsewhere on Stackoverflow where opensource alternatives to ATG is being discussed.
You can go for Spring. Spring also provide much thing which help you to developing these your own venture. You can also use Hibernate as per repository layer.
Though there are no exact framework like ATG dynamo, but I have found combination of Strips Framework (https://stripesframework.atlassian.net/wiki/display/STRIPES/Home) and Ebean as ORM (http://ebean-orm.github.io/) to be closed in offering to ATG.
Most of the things behave in the same manner as ATG. Below are few examples
In ATG you refer to components by path like /com/path/MyComp in stripes you refer to ActionBeans using package like com.path.MyComp and you can access all the properties using ${actionbean.myProperty} as you do in ATG
is equivalent to droplets, only better, instead of always calling service method(which forces you to write all the code in service method) you can invoke any method you want by passing name of the method in event variable
For pipeline they have Interceptors
Also have a pretty awesome validation framework
Like ATG Stripes is also very customizable
Ebean
Ebean is also very much simple to use, it used JPA mappings

Is it better to use spring mvc with hibernate?

I am going to develop small ERP System. The product has only one major requirement to support multiple databases.
I have planned to use
Front side: JSP+JSTL+JQuery [I have good command on that] + I have create my own custom component for re-useability and full control of my component.
Back-end: Using hibernate[ORM] framework [due to Cross database] and I have also good knowledge of it.
I am happy with above and feeling confident to build product, soon.
BUT
My friend made me unhappy ;)
My friend suggest me that you should use spring MVC with hibernate, because when your product become large,it create a problem in future due to many developers involvement.So, you should use framework , so that every developer follow the pattern and then your product remain stable.
But I am already follow hibernate pattern :)
I have no any knowledge of Spring MVC. When I search about spring MVC , I found it is a different thing than my requirement and also find Cross database context issue, if I use Spring MVC with hibernate.
Either should I used spring MVC or not. If yes, I have to learn then Spring MVC and
I do not want to waste my time, if spring is not suitable for me.
That's why I am consulting that forum , to go for right direction.
Actually, Spring MVC does not interfere with any of the components you have chosen already. It just introduces a way to structure your frontend - backend interface in a standard way (MVC pattern).
I actually run the very same setup and is very happy with it. (Jquery, JSP, Spring MVC, Hibernate).
Other than structure, you will get easy return of invested time in Spring MVC when you want to do Ajax heavy things (as I assume you want in an ERP app). It's trivial to build AJAX/JSON stuff with jQuery and SpringMVC.
Using Spring MVC will make your application structured. This will help in future maintenance.
Your code will look clean and you can separate your code into components and Spring will help you wire them together and you might decide to combine them in different ways, or wish to make it easy to swap out one component for another depending on different settings or environments. This would be great for multiple databases when used with hibernate.
Learning spring will not take much time if you have a good knowledge of Java EE.

Where to find examples for easy task manager

I am a junior java developer.
I have to make a project that requires me to have 2 kind of users, managers and normal ones.
The manager may add new duties to the normal users, register new users in the system, view everything etc.
The normal users can only view information related with them.
I am able to do this by my own but I am required to use MVC architecture and I am a little confused.
Please if anyone know where can I find any similar project it will help me a lot
I think the best you can do is use Struts framework to implement your application (http://struts.apache.org/). Simple, universally used, realizes MVC pattern in a very easy and understandable way, supports user handling and so on.
If, on the other hand, you are not allowed to use frameworks...
Well you should struct your application with jsp, servlets and POJOs in order to implement MVC custom. JSPs just handle page layout, Servlets manage navigation and general application control and POJOs (Plain Old Java Objects) realize your business logic, in order to keep in separated layers the "look", the navigation issues and the business.
You don't provide a lot of context but judging by your tags (which include JSP and Servlet) then consider taking a look at the Web application technology stack project AppFuse. It will generate a Web Application project for you using Maven, the project builds on top of the state-of-the-art in Web Development. The generated project has exactly the functionality you are [vaguely] describing.

Architectural Differences in Java MVC Web Frameworks

I'm trying to choose an AJAX-friendly Java framework for my first web application and am interested in first
understanding the architectural differences between the different flavors that are out there.
I like the concept of MVC frameworks, and so am primarily considering the following:
Any JSF variety (ICEFaces, RichFaces, PrimeFaces, etc.)
Spring Web Flow
ZK
Wicket
I've downloaded each of these projects and tried to follow their samples/tutorials, and there is
so much information to ingest I figured I'd take a breather and come here to cover some preliminaries
first.
I'm interested in how each of these frameworks implements the MVC pattern. Obviously, something rooted
in JSF (like ICEFaces) is going to have a different architecture than Spring. I'm sure that this is a
huge question, so I'm not looking for a full-blown tutorial on each of these frameworks; I'm just
curious as to what sort of artifacts (Java sources, XML config files, etc.) a developer has to write in
order to build a single AJAX-driven page using these. I'm interested in the differences to their approach,
nothing more.
For instance, I would imagine that each framework at some point uses a FrontController (or its likes) to
map HttpRequests to the right Controller implementation. That Controller (bean) would then need to do
some processing, possibly hit the database for some information (using ormapping and forming the Model), and
then construct a View/HttpResponse to send back to the client. This is an oversimplification I'm sure, but
there has to be an easy way to explain the high-level architecture for how each of these frameworks accomplishes
that.
Struts uses the ActionServlet (with Struts2 now its just Action) as the controller and model and jsp is the view.
For Spring MVC is achieved by DispatcherServlet which does the routing and Model is not bound to any framework related object you can use any.
JSF - UI jsp or jsf itself, Model - ManagedBean, Controller - FacesServlet.
I did some similar search for my own project a while ago, have a look at the links below:
Comparison based on multiple parameters : http://static.raibledesigns.com/repository/presentations/ComparingJavaWebFrameworks.pdf
Difference between JSF and Struts
http://struts.apache.org/2.0.14/docs/what-are-the-fundamental-differences-between-struts-and-jsf.html
Somewhat related post
https://stackoverflow.com/questions/7633583/which-mvc-is-better-spring-or-struts
Spring and JSF
http://blog.springsource.org/2007/04/21/what-spring-web-flow-offers-jsf-developers/
Spring MVC : http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html
Best Fit For JSF Component Library: Primefaces based on my own experience
From IBM Clearing the FUD : http://www.ibm.com/developerworks/library/j-jsf1/
Hope this gives you some insight.
Have a look at Matt Raible's talk on Comparing JVM Web Frameworks here. You can also consider looking at Spring MVC and 'Tapestry`.
Also, this link gives you a matrix on capabilities of various java web frameworks.
You should also check out the Play framework. I have used it a little and really like it.
It is very easy to get started with minimal configuration (reminds me of Rails).
http://www.playframework.org/

Add framework to java project

I've been working on a java web project.
Currently this project doesnt use any framework. Its a standard MVC application, using servlets and DAO with jdbc access to database (all queries are handwritten).
The project has a good code (all project developed using TDD), but its way too slow to add any feature, since all have to be done by hand.
In this case, which framework would you suggest to add this project?
I can't use a framework that requires me to rewrite all current code base to fit in this framework.
I think that Hibernate is a great choice for persistence.
But what else? Spring? VRaptor? Struts?
You might add interfaces for your classes, use Hibernate for the persistence layer replacing your DaoSqlImplementation by DaoHibernateImplementation one per time. As long as you wire your application with interfaces you won't have any problem.
Also I recommend you to use Spring, this way you can switch between implementations declaratively by just modifying the XML. One of the principles Spring follows is IoC (Inversion of Control). In this case means your application controls the framework and not the framework controls the application which is exactly what you requested.
One important thing is that you must justify every framework you decide to add to the application and not just add it because it is very cool.

Categories