Update: I started writing this post more than a month ago but never finished it. Since then I have started a new job so I have not really had the time. It’s also the middle of winter so I have not been playing any golf to motivate me. I decided to post what I had done a month ago because it will show how much my opinions have changed.
Well as I stated in the original set of objectives I’d like to add a server side to this app. The server would provide:
– a library of courses so users don’t need to add all the info required
– the ability to upload the results of a round to be backed up and potentially shared with other users.
There are definitely more posibilities but these are the primary reasons.
So the decision I need to make is, what server technology should I use and why?
I’ve been researching the options for the last few days. I have not made a decision just yet but I thought I could post about what I have found and what factors I am considering.
Possible server technologies:
– WebObjects – as I was a WebObjects developer for 10 years this is definitely an option. In fact when I first started work on this project I put a simple WebObjects app together. However, now that I’m unemployed, I no longer have a connection with WO. I still think it’s a great web app framework but it’s got it’s problems (such as no good way to host cheaply) so I’ve decided against using it.
– ASP.NET – most of the available jobs I’m seeing seem to be .NET so it would make sense for me to code this in .NET and brush up on my knowledge.
– Java (one of the many java web application frameworks available) – I know java so that’s a plus but I have been in the WebObjects world for so long I don’t have that much experience or knowledge in the other java web technologies. If I had a good reason to down this path I would be happy to but to be honest I’d rather try something new.
Update: This is as far as I got a month ago and I now have a few more ideas for server technologies I’d like to try.
– GAE (Google App Engine) – I started playing around with this a few weeks ago and I really liked it. It’s pretty easy to get started and REALLY easy to deploy. It’s cheap to host (free until you reach a certain amount of usage) and Google handles the scalability. The downside is that it is a little restrictive about what you can do. For example I think it could be hard to upload files and I’d like people to be able to upload photos of a golf course.
– Ruby on Rails – I looked into this a few years ago (I have the Agile Development with Ruby on Rails Edition 2 textbook to prove it). It looks like a pretty cool web development framework but I always had my doubts about how good it would be once you got beyond the simple tasks you see in tutorials etc. I also found that I didn’t have the head space to learn another completely new language and it seems like ruby on rails would need a bit of a commitment to do it well.
– CouchDB – Again I’d read about this awhile ago but it was not until it came up in discussion at my new job that I started to consider this a viable option. If you’ve never heard about CouchDB it’s a non-relational database that utilizes HTTP for communication. (not a good explanation at all, google it for more info). This interests me a lot as I love to play with new technologies such as this. It’s not a web application framework like the others but I could use it directly from an iPhone to achieve my objectives. I could also develop a website later that connected to the same CouchDB … db.
Well that’s probably enough for now. I’ll keep thinking about it for a little longer before I start putting the next steps together.