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 3 years ago.
Improve this question
To create a web application on Google's AppEngine I was looking for a framework. During my research I came across Groovy and Grails. I'm a Java kind of guy so I prefer something Java-like above Python frameworks (like Django). So I scraped together some information and decided that Groovy and Grails are both to my liking.
While trying to dig deeper into Grails in combination with AppEngine I found that the Grails GAE Plugin hasn't been updaten in two years and on the website it says it "works with the latest Grails 1.3 RC2 release and above"[3]. The newest version of Grails (as of today) is 2.1.1[4]. So I'm wondering if the plugin is still maintained. Of course, the plugin could be so good, that it doesn't need maintenance - but in my experience this really looks like the plugin is dead.
So what I would like to know if there are people out there currently working with (or have recently worked with) a recent version of Grails on AppEngine and whether it is a pain in the... fingertip or a solid framework.
If you believe that Grails on App-Engine is dead I would really like to hear about alternatives, so please let me know if you used a framework on AppEngine, what you used and how the experience was.
To be a bit more precise on my requirements; a framework I would want to use should
be Java-like or Java
run on Google AppEngine
have some degree of scaffolding mechanism (I'm really lazy when it comes to writing code that could easily be able to generate)
take away the pain of database handling with SQL by providing a solid NoSQL persistence layer
Before you link any other Stackoverflow posts in your answers, please be aware that I have done my research on stackoverflow before asking this, sadly I found no up-to-date information - of course I could have overlooked something, but please don't link articles older than a year, it doesn't help here.
Sorry for the long text, shorten if you like and deem it necessary.
Thank you in advance for your helpful answers.
I tried out Grails on App Engine using the plugin mentioned above. I wrote a series of blog postings about it. I don't think the Grails App Engine plugin is actively maintained anymore.
I personally switched to Gaelyk which is a lightweight web toolkit for App Engine written in Groovy. It should fulfill all your requirements.
The App Engine plugin for Grails has not been updated for 2.X. The announcement from Graem Rocher can be found here
Grails currently throws a error when you attempt to run-app against 2.1.1. An issue concerning this has been raised here
I tried Grails with Google App Engine long time ago. As in previous answers was stated - there is no current version of the plugin. However if this is an option for you to consider, try CloudFoundry service. It's fully compatible with Grails.
Update 2017 : There is a new tutorial for Grails 3.2.9
http://guides.grails.org/grails-google-cloud/guide/index.html
Consider the Play Framework a light weight framework for Web Applications.
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 7 years ago.
Improve this question
Guidelines to deploy a production MEAN Stack app.
I'm beginning with Full Stack development and I'm studying news topics every week. But, it's really common to find something new that should be used in the beginning of the project.
My first glance with this gave me this kind of checklist:
Node Express API.
MongoDB running.
Angular Connecting on API.
Them, I've started to find some online solutions like Heroku, Modulus and MongoLab for Heroku. Later, Grunt, Karma, GitHub, Travis CI and lots of 'understandings' that changed my code.
I don't have a 'checklist' and I think that I will do it using Grunt in the future. So, when I create a new app, my steps are the following:
TDD: Karma on Backend, Mocha on Frontend.*
Node Express API with JWT, Mongoose, ENV variables and connecting on DB.
MongoLab setted up.
Public code should be uglified and minified. And images should be sprites.*
Angular App connecting on API.
Git Push to 'Staging'.
Travis CI run tests.
Heroku upload the build if tests pass.
*I don't know, yet, how to do that.
Well, I'm not doing anything commercial yet, but I pretend to launch some solo applications soon. And this really annoys me. I've read about 10 technical books, finished dozens of online courses and followed a lot of tutorials in the past 6 months. All about MEAN related things, but I don't feel confident yet to deploy a full production app on the cloud.
I know that there may be some subjective answers, but that answers will be objective in the end, because I do know that we have a market standard. Someone may disagree with specific tool, but will use similar tool to accomplish the same goal. Someone may not use 100%, but will use 90% or so.
So, I want to know what should be done to get things done and running in the market standard?
Answer to on hold
As I've said, answers can't be too broad because there is a market standard. Someone may use some technologies to accomplish the same goal as someone who uses another technologies. I'm looking for guidelines that can be specific, I'm not looking for specific platforms. An full answer could include agile methods and software requirements while a simpler answer can include a text editor, a version control and a integration phase. If this is not enough, I'll read the rules again and forget about this question. Thanks, anyway.
Guidelines to deploy a production MEAN Stack app.
On top of this, I like to use yeoman with angular fullstack generator with a grunt based app
TDD: Mocha with chai on Backend, Karma with jasmine on Frontend.
Node Express API with JWT, Mongoose, ENV variables and connecting on DB. With babel if you want ECMAScript 2015. I like promise too, in my case, with bluebird.
MongoLab setted up. heroku addons:create mongolab
Angular App connecting on API. I choose ui-router, and edit a little bit angular code generated, for ex., change to controllerAs instead of use scope.
Public code should be concate, uglified and minified. And images should be sprites. This and much more do it by grunt build task to make a new dist folder with a prod like app.
Regarding test, grunt test will do the work. Or grunt test:server and grunt test:client separately.
generator heroku deploy yo angular-fullstack:heroku
BTW, I do like your question, same happends to me, maybe still happens. But I don't aim to answer your question, I just want to share my experience.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
After years /decades of using tasks managers: Lotus Notes, Outlook, Palm (that was a good one), etc.. and now using Appigo, after using Toodledo, a friend of mine and me (both programmers) got tired of how far are all those from our personal GTD style and we decided to build one, something that we can customize as much as we can moving forward. We will do it open source open to public.
Appigo and Toodledo a great inspirations from a functional and technological point of view. We like the server on the cloud, the clients on browser and mobile platforms.
We have been thinking this for a while but when we saw Grails and did some of the tutorials, coincidentally on the task manager subject, we said ‘great, we can use this technology to build ours, this sounds cool’. (at least for the web part and the model, the core part).
Following Appigo strategy also, we plan to use Google App Engine for hosting the back-end.
On the mobile side, since we do not have time for hard core objective-c and stuff and we have a decent experience on Javascript frameworks we decided to use the now popular HTML5/Javascript approach and we think we decided for Sencha but any other Framework may be fine (Dojo, jQuery, etc).
Not surprisingly, our mobile and web clients will communicate with the server primarily using REST and we plan to have a server-side MVC (Grails) and a client-side MVC (like Sencha or Dojo propose)
We do not want to bother too much about databases, we love the Grails idea of creating a model-driven objects and storage.
Our project will be open source and hosted on github for anybody to use it.
Ok, here is the actual question:
Do you guys know good books or sample apps or articles that can help us go through this end-to-end. Of course we could go alone, but we will greatly enjoy going through some books, tutorials first to glue of these things together, decide good patterns to use, learn tips, experiences..etc. We do not have experience with Grails. (but a lot of java and javascript web development), of course I can find books about Grails but we want something end to end, with a good sample focusing on practices and patterns.
Basically a book or article that somehow touches part of this topic “good practices and experience building something like a task manager that runs on Google cloud platform, has the server side done with Grails and the browser and mobile clients using robust HTML5 javascript frameworks”.
Can anybody point us into this?
Thanks!
I have done a couple of engines that are build using grails + the google app engine. My experience is that you are going to have to build up the knowledge thought actually doing the work.
It's very easy to start out but once you get about knee deep there are some very interesting problems that can crop up.
Now that being said the main resources that I have found useful are the following:
http://shop.oreilly.com/product/9780596522735.do
http://www.amazon.com/Groovy-Action-Dierk-Koenig/dp/1932394842
http://www.manning.com/gsmith/
https://developers.google.com/appengine/docs/java/overview
The link above gives a good java over view. But you will need to be able to distill that down to groovy.
http://www.grails.org/plugin/app-engine
and finally www.google.com
but i found that most of the blogs out there are dated to earlier version of grails. And a lot of the issues they were seeing have been fix in 2.0 or are no longer issues at all.
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 last month.
Improve this question
I'm curious to know how other developers deal with versioning of web-apps and deploying different versions. The fundamental problem is that someone might be using your web-app when you deploy a new version, at which point the Javascript etc they have not he client-side is out of date.
Versioning the media on the client-side is easy enough, but if you version that you also need to version your business logic and the database, which is where things could get messy...
So I see a couple of ways of dealing with this:
Display a "Upgrading" notice on the site when deploying a new version.
Version tag client-side and reject any submissions to the new version from old client-side sources. Fair enough, but it doesn't really go hand in hand with continuous deployment.
Continuous DB migration - running multiple version of the app at the same time (migrating users to the new version when possible). This would need any updates on the old DB schema to be "forward ported" to the new schema. Seems the most attractive for deployment, but also could be horribly complex.
Somewhere in the middle of all three.
I should note that I know worrying about this kind of thing is beyond the needs of most apps, but I was thinking about it and I'm curious to know how others deal with it.
This is really an amazing question.
Most important and effective tool is Git that is currently used for versioning tool though there are many tools but I found git the most efficient as it tracks the working of every employee.We can also took suggestions from public contributors for testing purpose. We can make different branches from main that help us to keep our code present in all versions with or without new features. And auto deployment is not a positive step you should test that several times and use different test cases for that.
There are plenty of tools available for your exact requirements. Like Phing, and Phingistrano. Git also makes it simple but that wont display offline notice and DB deployment . I recommend dont go for auto deployment on live server, use auto deployment on staging and manual deployment on live. Also look for continuous integration on google and try teamcity
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am beginning development on a new AppEngine application using Groovy. It will be medium-sized and use a number of AppEngine services. It will have both a regular and a mobile website, using HTML 5 and JQuery.
Which of the two frameworks suits my case best? And why?
With Graeme (Grails project lead), we looked recently into making the latest Grails run again in App Engine, and we stumbled across some OpenJDK bugs that prevent the latest Grails from even starting on App Engine. So till those issues are resolved, and we are able to resolve other potential issues that may arise, recent Grails versions won't run properly, if at all, on App Engine. So Gaelyk seems to be the sole "Groovy" option on App Engine for now.
I am not directly comparing Grails vs. Gaelyk on App Engine but maybe my blog posts will help you in making a decision: http://bit.ly/9BRQRP. In general you are better off with Gaelyk because the cold startup times are lower (assuming you don't want to pay for a reserved instance). Gaelyk provides a nice abstraction layer on top of all the App Engine services which makes using them easier. The Grails App Engine plugin only helps you with enabling your Grails app for deployment on Google's platform.
I spent long time trying to make Grails work with GAE last year but I encountered lots of problems with long cold start... Grails took more than 30sec to start and at this time, it prevented Grails from being used with GAE. I asked some questions on Grails forums but no answer so I decided to find another solution and found Play! that works like a charm with GAE. It is not Groovy but pure java and I find it is the best thing I've seen around Java for a long time. So Gaelyk is a nice solution if you absolutely want Groovy but I'm a big fan of Play! now and I would advice to take a glance at it ;)
I gave up Grails on GAE and it turned out I like Gaelyk more than Grails in some areas for GAE. So using gaelyk is a cooler option on GAE.
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 been slowly and a bit painfully working my way up the datastore/JDO learning curve in GAE. Recently I've found a framework called Objectify that is supposed to be somewhere between the very-simple Datastore native API and the complex JDO. I've been reading up on it and it does seem attractive.
What I want to know is, if anyone has much experience with Objectify... How mature is it? Is there much of a user community? Is it ready for heavy-lifting primetime? Could it be abandoned?
There doesn't seem to be much discussion of Objectify here or on the web in general, which makes me nervous about entrusting my project to it.
I've looked into objectify a bit and wrote an initial post about it at http://borglin.net/gwt-project/ . There are actually at least 5 different low-level wrapper frameworks at this point (objectify, Twig, SimpleDS, siena, slim3).
I'm currently working on a interview-style comparison between objectify, Twig and SimpleDS together with the authors for each framework. They will answer a bunch of technical questions and I will do some code scenarios with each framework.
In the mean time, you might want to check out these threads:
http://groups.google.com/group/google-appengine-java/tree/browse_frm/thread/4467986eaf01788b/c6d007863a616a1b
http://groups.google.com/group/google-appengine-java/browse_thread/thread/f20d922ffecb310c
http://groups.google.com/group/google-appengine-java/browse_thread/thread/79078132130a3dfe#
For all who are looking for the interview-style comparison between objectify, Twig and SimpleDS as mentioned by Andreas Borglin, it is available here: http://borglin.net/gwt-project/?page_id=604
I've just ported from JDO and the low-level API to Objectify, and I'm sold. Automatic use of Memcache, much easier (and shorter) queries, fewer surprises. I like that it doesn't hide the nature of the datastore - it just makes it easier to use.
You might also want to check out the recent announcement of the Twig final release 1.0:
http://groups.google.com/group/google-appengine-java/browse_thread/thread/aafbeb679a6e6790
It gives a good overview of what Twig is capable of. A point of interest is the ability to do non-blocking async queries which is only possible with Twig at this time.
Objectify is Ok but there is nothing better yet. Twig is relatively new, As of 09/21/10, took a look at documentation, examples, discussion groups of both and looks like it has some ways to go before getting mainstream. Not many claimed features have out-of-box working examples. I love the succinct documentation from Twig as opposed to the Verbose yet somewhat clear documentation from objectify. Objectify seems to want me to do lot of work, e.g. no managed owned relationship support etc. But given everything that it gives on top of plain JDO/JPA and also given JDO/JPA does not give much, I will say Objectify is the best choice for now.
You can read this article. It provides a very good comparison between Objectify and JDO
http://borglin.net/gwt-project/?page_id=491
It is a late reply but i diged into this issue as you. As i wanted to use lucene and compass at that time for full text searching and then i found you can use objectify in full text searching in this project
http://code.google.com/p/fulltext-search-in-objectify/