Gwt + AppEngine CRUD - google-app-engine

We're going to develop a brand new software for our customer.
While evaluating different technologies, the most interesting I found is Google App Engine cloud service. This will keep all the system engineering complexity management out of my mind I think. The price is more work on the code: the eventual consistency of the datastore, and so on.
Google Web Toolkit looks as the best companion to GAE, too. I just deployed an hello world.
Usually, when I'm going deep in a new technology, I write a simple CRUD for a table with a few simple fields. Here's what I think I will need:
JDO / JPA or something like Objectify /Twig "entity" class (my domain model)
Gwt-RPC knowledge, I mean, for example, do I need DTOs?
Can anyone address me in the right direction? Or better, a good crud example?

I think this question's been answered already. I like the stockwatcher tutorial also. It will also show you how to migrate to GAE once you're done.
An example of a Google Web Toolkit (GWT) Create Read Update and Delete (CRUD) Application

This is one of examples created by me, hope it helps,
http://code.google.com/p/gwtcrudapp/

Related

porting an app built using Tornado framework to Django framework

I have an app that was developed using Tornado framework and Angularjs.
the app is basically a game with two type of users a moderator and players. the moderator and players exchange data in "real time" and a graph is updated based on their input.
I am a decent coder but new to web development and this is just an in case question. Since the app has some issues, and since I will have to learn a framework anyway, I would rather learn Django. I was wondering if there is a resource out there that makes the conversion easier?
What I am looking for is advice on how to tackle this in a way where I don't have to go through the documentation of both frameworks before I can do anything useful.
Ideally, I'd like to incrementally learn more about both frameworks as I make meaningful edits to the app.
From what I see you need to get familiar with two things. Django Rest Framework` which is a great tool, with a really good documentation. Basically it helps you to communicate with you application by REST API. And of course Django.
They also have a tutorial made for starting your way with Django. Which basically have everything needed to start. If you have an experience with Tornado, you will have no problem to work with Django. Here is a link to tutorial.

JSPs for a simple Project Reporting Web App?

I'm about to start developing a simple reporting tool for tasks in international projects. In a nutshell: using the tool, a project is created, defining team members, tasks, and work packages. Team members will be asked to periodically submit reports on the work they've done (related to tasks and/or work packages). These reports will be stored and accessed trough the tool.
I'll use Google App Engine (client requirement) and its datastore (using JDO). But I want to ask you for advice on the frontend part: JSP looks pretty messy for non Java developers... any other idea???
Thanks!!!
Seems like at the moment it's either java or python. However, you may want to look at Grails. GSPs might looks a little less 'messy'. I'm suggesting Grails based on your description of the project, that I suspect will turn out anything but simple later on. You might end up being glad for the mix of constraints and flexibility that Grails will afford.
JSP doesn't need to be any messier than other similar HTML presentation frameworks, it really comes down to implementation. That being said, it is old Java technology which means it's not being kept up to date, and finding a good single source of documentation is difficult.
If you don't want to use JSP, there are other frameworks you can use, you just need to make sure they're compatible with Google App Engine.
The new kid on the block is the Play framework, and that's a Java MVC framework similar to Ruby on Rails. You can find a tutorial here: http://viralpatel.net/blogs/first-play-framework-gae-siena-application-tutorial-example/
If you're going to use Spring, check out this question: Alternatives to JSP for Spring MVC view layer
For a front end developer, if the code is separated correctly, you won't have to know anything about Java since there shouldn't be any Java mixed in with the HTML. If that's your only worry, then I would just go with JSP to keep things simple unless the team has experience with another technology.

Expert developer on the Microsoft stack, can't decide between GAE or Microsoft stack

I am creating a website with a friend to try and make some money. Basically, we want to let users aggregate data from different social networking site's APIs (FaceBook, Twitter, etc.) and do some cool things with the data.
My non-developer friend is sold on the Google App Engine because it costs nothing at first, and then you pay as your traffic/data increases. I am torn. I like being able to bootstrap the business like that and have no startup costs (other than time) but I am worried about learning a whole new "programming world" as Joel Spolsky would put it.
I am so comfortable with C#, ASP.NET MVC and SQL Server that I think moving to something like Java or Python on top of BigTable would end up taking about 3x longer to develop (if not more).
Can anyone give me some guidance on this? Basically, I am wondering if there is any way I can have the following with the Microsoft stack:
Free hosting up to some limit of traffic
Ability to scale out at a cost similar to what Google offers with GAE (maybe the hosting service would need to have support for a good scalable persistence solution--like Couch DB?)
For #1, I am OK if that means hosting it on my own server for the ALPHA/BETA phases. For #2 I am hoping that there is a good hosting service out there who can put me on shared hosting servers and charge by the traffic. Does that exist? Thanks!
Unfortunately when it comes to a similar platform then you won't find a MS Stack version. Windows Azure comes close but this is more akin to Amazon's EC2.
The python stack in GAE is really easy to use and was able to make the transition quite quickly. Django is a MVC that is really popular and quite simple to use. It also gives you a ORM to write to BigTable which means you don't actually have to care about it.
The Java implementation is very similar and you can use really well know MVC frameworks for creating your app like Spring
I am also a .NET expert, but I have been using Python-AppEngine for hobby/entrepreneurial purposes specifically because it allows me to bootstrap an new web application at no initial cost. That is critical for me, as I have no budget at all for side projects, and so far, with many deployed AppEngine applications, I haven't spent a penny on it.
Learning a new language can seem like a drag at first, but I have come to find my new expertise in Python to be invaluable. Remember that the best and most employable developers are usually generalists with a broad and flexible palette of skills. My resume features C# and .NET as well as Python and Ruby/Ruby on Rails, and I have gotten very positive reaction from potential clients and employers.
Learning Python was dead easy. Getting a handle on WebOb and Django templates took more effort, but nothing extraordinary. Over time, I built up my own framework layer on top of those things that incorporates the best ideas from Rails and ASP.NET MVC that I missed. You can take a look at it on Google Code, and you will see a number of ideas that specifically borrowed from ASP.NET MVC.

I want to build a Google-friendly web app, where should I start?

I have only very basic experience with HTML/CSS and have quite a bit of experience with testing software and web apps from a consumer perspective. I'd love to launch a web application that plays nicely with Google services, similar to some of the apps you'd find on the Google Apps Marketplace, such as ManyMoon, time to note, Socialwok, etc. I'm a huge Google fan and would like to build something that's well integrated with other Google services.
If you were a total beginner and wanted to build a complex app like one of examples above (project management, CRM, etc), where would you start?
If you worked your ass off 18 hours a day, 24/7, how fast could you do it?
I've dabbled into various languages and development frameworks, and read about which apps are using what languages but it's hard to figure out what would be most beneficial to jump into. Ruby on Rails, PHP, Google Web Toolkit, AppEngine. The list goes on and on. I want to be able to build and launch my own scalable web app.
Thanks.
One bit of advice: There is no shortcut for proper experience. It took me 4 years to come to a point where I can build enterprise level web apps - even though I had the dream of building one immediately, right from the beginning. Start small and build your way up.
Even though I did hate this advice when I was receiving it... Don't try to build the next Facebook platform right now.
Now, to answer your question:
Skills:
You must be absolutely clear about server-client interaction with respect to HTTP. You will never understand AJAX fully without understanding HTTP and behind the scenes of browsers. Note: being clear and knowing everything are two different things. Be clear about HTTP.
Learn about HTML/CSS and JavaScript standards to some extent to know that they bahave differently in different browsers. In the grand scheme of things, they are not that important if you are okay with some framework that handles these for you (I recommend JQuery and JQuery UI).
Learn a little about Linux, Apache, PHP.
How to go about it:
To develop web-apps, you could start with the LAMP stack - Linux + Apache + MySQL + PHP.
First build a small web app that does something trivial - like saving and retrieving user's stuff using AJAX and a nice UI or something. I'd recommend jQuery and jQueryUI for JavaScript and UI frameworks.
Then, build a small web app that just gets data from some Google service, given a user's credentials.. I am not Google expert but I guess Google provides APIs for some services(?).
Then build an app where two people can share their data coming from a Google's service or something to that effect.
Then add your own fancy stuff.
It goes on like that.
If you are a .Net person, you could go with.. Windows + IIS + MS SQL Server + ASP.Net3.5/VB/C#. Guess what? StackOverflow is build on that stack :)
Learning about and using an MVC framework is also a good idea - ASP.Net MVC or something similar for PHP.
Minor clarification - By Google-friendly did you mean SEO-friendly? If so, Google-friendly and web-app don't go well together.
It makes sense to build a Google-friendly website not a web-app.
I would start by
brainstorming a hands-on project
identify the skills you will need to achieve it
learn them as you work through the project
set progress goals and celebrate small victories
For most people 18 hrs/day 24/7 sounds a little overly optimistic. A reasonable goal would be to form an interesting project idea and research the needed skills the first week, work through a few tutorials and maybe apply your own functionality the second week, build something 'complete' the third week, then take a step back and take another look at your original goal.
As far as choosing a project, I find a notepad helps. I'll be somewhere and think, 'wouldn't it be nice if...' and I'll go look for a solution that provides that 'what if' and find it doesn't exist. So there you go.
I would also have a look to one of the top voted questions here on Stack Overflow:
What should a developer know before building a public web site.

Google app engine vs mochahost or similar

I have developed a site with google app engine using python and django, now I have another similar project to develop.
Well I have got some well-known problems using the datastore:
query: there's no "LIKE CLAUSULE" and GQL is not Sql
documentation is not so clear and easy to find
backup database is not so trivial
django support is not so great (I use google app engine patch)
I'm just a little scared about when my traffic go "into pay mode"
Now, I hope that this site will have a great number of visitors in my optimistic prevision :) so the question is, can an alternative hosting service offer me a professional service like google app engine?
Is it possible to make a professional web site that works starting from a 'conventional' hosting service?
An other stupid question, but I site like this where is hosted??
I'm a little bit confusing about which kind of hosting chosing...
Thanks for help :)
My individual opinion is that App Engine is ideal for prototyping for these reasons:
Free. Nowhere else can you run a web app for $0
Deployment and upgrading is extremely simple
You don't have to worry about backups or networking or anything besides programming
GQL is no problem. There are workarounds. It's a reasonable price to pay for free hosting and scaling.
However, once you think your site is popular, and especially if it becomes profitable, App Engine is not ideal.
Yes it scales. But as your site grows, you always wanting new reports on your data to gain knowledge. This is extremely tough in App Engine. You need case-by-case programming and possibly database changes. That takes time and resources. This is my #1 problem for App Engine for startups or small companies.
You want to control your backup and restore process
It is bad business to be locked in to a sole hosting provider
There is nobody to contact if something goes wrong. Forums schmorums. That's for hobbyists and discussion, not for time-critical problem-solving.
If you plan on having something you think will grow decently, maybe you should launch on something like linode or slicehost, where you have a VPS. That you, you control the instance of django, and have full control over your server. That way, your app doesn't have to contain some of hosting-specific code.
Yes, the initial setup for both may be a little bit of a headache, but you'll be able to create something that is a little more portable
really thanks, for link
yesterday I "discover" that exist IronPython and seems django compatible, or Ndjango for F#, so I love visual studio which one of best developer enviroments (in my opinion) so a good hosting service for microsoft product?
Thanks again I feel you are really an expert developer, so I take really care of your opinion

Resources