What Java framework would you use with Google App Engine? [closed] - java

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 2 years ago.
Improve this question
It's been a while since I've done any website with with Java, and am wondering what framework options are out there for Google App Engine.
What framework would you suggest for someone who has no real preference?
I like Ruby On Rails, and am getting into Django, and like that as well. Professionally I'm a ASP.NET developer so I have the most experience with that, but I'm looking to expand into other technologies, and patterns.
It would be nice to have more experience with MVC.
thanks,
Mark

The Spring Framework works, although you have to make sure commons-logging isn't called commons-logging-1.1.1.jar (as I had it in maven conventions, Google provides a jar with this same name and there are classloading issues as a result). So, Spring WebMVC is confirmed to work - which raises the possibility that its sister project Spring Webflow will work - though I can't say I really like where Webflow 2 completely diverged from Webflow 1.
Also, I have yet to find a framework that really encompasses the notion of "saving and continuing" well - users often like to do that, and Webflow 2 really tries to make programming that as difficult as possible if you use its persistence context inside the flows themselves.

Wicket works on App Engine, you just have to make a few tweaks to the configuration.

I've had variable experiences with Vaadin on GAE. Some applications are almost as fast as with localhost, but sometimes the latency is freakish. Probably depends on which server geographically your application gets deployed on.

Try ItsNat, more info.

Don't use it for a simple single reason - vendor lock in.
What happens if the service doesn't meet your satisfaction?
What happens if you can get a better deal (Java hosting) somewhere else?
What if you want to sell your product - where's your platform?
What happens if Google decides App Engine is not worth their effort and close it?
as a side note Google have and will close services that are unprofitable. A simple search will reveal many, escpecially in theses trying times.
Do you care about vendor lock in?
If you don't care about losing your effort and time invested and perhaps want a platform just to play with then I suppose it's OK but for anything serious stay away.

Related

Which framework should I use (Grails, Java/Spring)? [closed]

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 6 years ago.
Improve this question
I would like to create the back-end framework for my website using one of the following: Groovy Grails or Java.
My main concern is scalability/performance and the app will be able to handle large sets of data, primarily read heavy.
I will be using HTML5/JavaScript/Jquery for the front end and MySql but not hibernate spring JdbcTemplate
Any info would be greatly appreciated, I am fluent with Java and Spring and have made a few small apps with Groovy/Grails.
Edit: Some more specifications: I have to use java mails
I would suggest you to go with Groovy Grails. Simple reason, which you might be aware of as you have developed Grails application, is that Grails follow Convention over Configuration which simply means less configuration (unlike Spring and Hibernate), less time, less work and more output.
Keep in mind Grails under the hood is SPRING and HIBERNATE. So whenever you write a GORM query it would be better and optimised than writing everything yourself. Expect it to be highly scalable with very good performance if you follow the best ways for your DB calls. In any case it would be very easy to write and in the long run the Grails stuff will be much more maintainable as well.
Regarding front end, you are free to use HTML5/JavaScript/jQuery in a GSP page with lots of helpful Taglibs prebuilt for you. You might design one Taglib if needed. On the other hand even if you wish may be now or later, you can even use front end frameworks like AngularJS along with RESTful services on your server.
Regarding Java mails, you can use it or any other library in Grails which you have in Java.
Regarding your fluency with Java and Spring, it is going to take some days to be fluent in Grails but once done then in next few days you will make up any lost ground.
Apologies if I am digressing a bit, I have been a great fan of Servlet's and Spring's of the world (not much of groovy/grails), but recently did a POC on a product idea and used Play/Scala (or java) combo to greatest benefits and to summarize it -
Play! keeps you on the right track, forcing you to carefully consider your memory usage, which produces first-pass code that is practically cluster ready.
So, essentially, with Play/Scala scalability/throughput is not an afterthought rather built into the way we program on it. Hope it helps.

Should i use play framework or normal Java EE [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
Am planning to start a website that I will use commercially. I recently have heard of the Play framework and it looks good. But am not sure if I should use it or not. I know java, jsp, servlets and struts 1.
I don't know how stable that framework is? Should I go with a native Java EE application or should I use Play?
If you want to have a rapid return on investment play is your friend.
Within days of using it you can get a web site up and running (which even for an experienced Java EE developer is a bit of a challenge). I think you need to balance you requirements with the advantages of play.
Check this interesting post: https://stackoverflow.com/questions/5376732/what-is-pro-and-contra-of-using-play-framework
Play is always gaining more momentum and there are already a few commercial websites using it http://www.playframework.org/community/testimonials.
I would also add that play is fun to develop with which will also add to your productivity!
Play is stable. It now has some big reference sites, including the guardian.co.uk and more and more sites are springing up all the time. It is very easy to develop in, has its own dedicated hosting service (if required) and has a very active community.
As for whether you should use it or not, is too subjective a question to answer fairly. I use it, and would always now do so over a Java EE application, but my needs (quick, clean, not bloated) may not be the same drivers as yours.
I would suggest doing a proof of concept in both technologies, and see which one suites your needs the best. If you cant afford the time to do a proof of concept, maybe you should stick to what you know?
Play does indeed look nice and clean. From my experience using any new framework will bring its pros and cons. Play might be buggy, you seem to know Java EE. It really depends on what you want to do and how much you're willing to invest in learning something new.
In my opinion it is always possible to transition to some new way of delivering your site content. It's healthy to keep experimenting with new frameworks, but wiser to build business on a framework you know. That way the bottleneck wont be the technology.
Part of the answer is in the answer to the question: What is the purpose of this website?
Personally, I would stick with more well-used frameworks like Java EE (version 5 & 6 have a LOT less cruft than the older versions) or something like Spring or Seam. If you are going for a simple site, maybe look into JBoss Seam.

Java Frameworks [closed]

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.
Improve this question
Recently I've come across many different frameworks for creating web apps in Java such as: Play!, Wicket, Grails, Lift, and Tapestry. What exactly is a framework and what are the benefits of using one? Additionally, I would like to try one out. I want a framework that is lightweight and easy to use and get started with, since my web development knowledge is very limited. Which one would you recommend?
Also I'm sure this question has been asked a dozen times, but it's quite tedious to have to search through past questions to find the answer your looking for.
I believe Lift is for Scala.
Tapestry is a UI-only framework.
Grails is Groovy, Spring, and Hibernate combined into a Ruby On Rails-like environment for rapidly creating CRUD web apps.
Play! and Wicket deserve the moniker of framework.
You don't mention Spring; you should look at it. That's what I would recommend. It's a combination of dependency injection, aspect oriented programming, and great modules for persistence, web and portal MVC, remoting, declarative transactions, message driven POJOs, and lots more. It has a great deal of mindshare and traction. It's been purchased by VMWare, so it's going to be around for a while.
You'll need more than a framework to do web development. In all cases, you can't do web development without HTML, CSS, and JavaScript.
If you are looking for something quick and light, I think Play! framework suits you. The MVC architecture made it similar to Ruby on Rails. Unlike the traditional Java framework, it automatically recompile the Java source code when changes are made, therefore shorten the software development cycle from coding->compiling->testing to coding->testing.
A framework is something like a toolbox you can use for building. Benefits of using one would include saving time, not reinventing the wheel and lots more. This includes frameworks written in other languages.
I assume you're versed in Java, then my personal recommendation would be to give Play! a look and spend something building something in it before you actually have to try the other heavyweights (if at all).
I won't disagree with anyone who says "learn the basics of servlets first". Since you're asking for recommendations, add PicoContainer to the list.
Pico is like Spring in that it does dependency injection and supports test driven development, but they do it in a cleaner (IMO) more "Java like" way by preferring constructors and not using ridiculous xml configuration context files like Spring apps (usually) do. (Helps reduce some of what would be xml caused run-time errors by replacing them with preferable Java code compile-time errors.)
Another nice thing about it is that it's a tiny little framework which makes great attempts to avoid dozens of dependencies and jar bloat (something the Spring maintainers should take notice of). The downside (there's always one, of course) is that it's a small community. (Then again, all the Spring resources out there in Google are somewhat polluted by now with information on past/different versions of this ever-evolving framework, so more isn't always better.)

Could you pls comment before we start our mobile+server project? [closed]

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 5 years ago.
Improve this question
We are a team of four CS undergrad seniors developing a mobile app (+ the web-based servicing architecture ofcourse) with the following intentions:
(1) Its our Degree Project (Thus comes, UML Modeling, Documented Testing & other specification reports)
(2) Our chance to learn & solve issues ranging from UI, data mining, AI, TO product-marketing!
At the end of the day, we wanna see many people globally, benefiting from it.
Could you please comment on the tool set we are using?
(1) Java + Eclipse + Android Plugin (ADT) & SDK (to start with)
(2) Various web-services SDKs
(3) On the server: ?? (dunno yet)
(4) For other artifacts: IBM Rational Modeler
any resources you think shall be better/helpful?
Thanks in advance!
UPDATE: We shortlisted UML/MDT extensions of Eclipse instead of IBM Rational Modeler
That seems a pretty typical setup. If you were doing this professionally, the next addition would be version control; Subversion is probably the most common.
Edit: If you're looking at the "free" price point on a Java server, Tomcat and GlassFish are the first three to mind, I think JBoss also offered a free/evaluation copy.
If you want a server you'd be hosting remotely, Java is one of the more expensive languages to host; PHP is probably the least expensive to host, with Apache being the most common server.
How will you manage your feature/task assignments? I would recommend Google Code if you don't mind allowing your tasks assignments to be public.
Otherwise JIRA is a good alternative (only $10) that my team has started using recently, though I have mixed thoughts about it. A different team currently administers the install so we haven't been able to customize it to our needs.
As for the technical architecture, I would need to know more about your project to make recommendations. Make sure you think about high level components and requirements before selecting technologies.
UPDATE: Without knowing exactly what you need to do on the server side, I would say a good technology to consider using is Spring Core (and possibly some of the other Spring modules). Spring will still allow you to use POJOs, but allow you to construct your application using dependency injection - which ensures your code is loosely coupled. Spring is worth learning - it promotes good programming practices and is used it many Java apps today.

Recomendation tech for adding web to a java application [closed]

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 8 years ago.
Improve this question
I am new in web development world
(from microcontrollers to web is a really long path)
Having a Java software (.jar) running, it's just a background process sending/receiving info through sockets, with no interface.
I would like to make a web interface to it, and I need some guidelines, about how to confront these topics
The code:Should I keep it being .jar or it's recomendable to go into .war and deployment? other?
The html/javascript code:Edit the page with an wysiwyg editor? and/or edit the html code within IDE ? / use GWT to develop everything within java? other?
The http server: Use an Apache Server, tomcat? implementing it within java with HttpHandler? other?
The Data: Data is actually in classes, objects and some persistence with writeObject.. should I leave it that way or "web development" is compatible better with mysql or some sql? other?
Just searching for something simple and actual tools, and to avoid reinventing wheels
Experienced web developers, your advices are very welcome!
I would suggest that you embed Jetty and then add some servlets to connect your existing code.
It really works !
If this is an accurate summary
You have a (presumably) proprietory protocol exposed over a socket interface.
You desire to access the same function over HTTP, with a Browser based GUI.
Then I would approach it like this:
1). Consider whether to refactor your current code - In concept you have a "core" with a socket interface. What you need is the same "core" with an HTTP interface ... except maybe that doesn't nicely work? HTTP is effectively stateless, with request/response pairs. You might have something much cleverer with your sockets so some redesign might be needed, or maybe it just fits, or even you need to get really clever and use streaming, or Comet or something.
So first decide on an approach. Let's take the optimistic assumption that a standard HTTP model works for you. Then:
2). You may as well use the servlet API, so TomCat or WebSphere Community Edition or any readily acessible servlet engine will do. Just write a few servlets that front your "core".
3). Tools, Eclipse works. Plenty of alternatives, but favour an IDE.
4). Especially when moving to the UI part, editing HTML, or JSPs something WYSWYG is useful. Things get a bit tougher if you want to do a Javascript-based UI - there are products out there but I don't think they're as mature as things such as Eclipse for Java.
I recently learned Spring. It's a very lightweight framework, and very easy to learn and use.

Categories