Off and Running
Understandably, I was a bit nervous about showing the prototype to anyone, but most of the comments that I've received back on the prototype have actually been pretty minor. Overall, everyone seems very excited about the changes to the site. I know I am!
I'm now deep into the really fun part of the project — bringing the functional ideas of the prototype to life with actual code — and I have to say that things are coming together better than I had envisioned. So much so that I'll be bold enough to say that when you see this new version in action during the upcoming public beta, I think you will agree that Mapraider 2.0 raises the bar for map cataloging sites.
You'll notice that I've updated the development progress bars on the blog here. I'm not exactly sure how far along I am at this point, but there are big chunks of functionality roughed-in. One of my biggest challenges now is determining how to handle some of the massive changes that will need to take place on the actual data in the database.
As it stands, the alpha version of the site already lets you visit the home page, browse and search for maps, view maps, rate maps, comment on them and news posts, and a host of other new bits of functionality that I don't want to reveal just yet. It's nearly at a point where using the beta site is more enjoyable than surfing the live site :)
Sorry for the tease, but it'll be worth the wait.
...
Thinking back, it's funny to realize during the development of the site in 2002, AJAX and RSS practically didn't exist, Firefox was still in its infancy (not even having reached version 1.0 yet) and Microsoft was about to tell us that IE6 would no longer have updates. Mapraider has been moderately updated in the past few years with new features, but nothing requiring a substantial overhaul to the site's underlying framework.
Mapraider 2.0 will be much more in line with today's web standards, and in terms of the back-end itself, it is being developed with ASP.NET and written in C#.
I debated quite some time about which platform to select. ASP.NET, PHP, Ruby and even Java and Python were all considered, and aside from PHP all of these platforms provided an interesting challenge to me as I was mostly unfamiliar with them in one or more respects. Finally, I chose ASP.NET/C# specifically because I liked:
- The "Object Oriented-ness" of C#
- The event-driven architecture of ASP.NET apps
- The blazingly fast execution speed of ASP.NET apps (even on cheap hardware due to the fact that the apps can be compiled linked libraries vs interpreted at runtime)
- The simplicity of setup and deployment
- The Visual Studio IDE
- The fact that although it's a Microsoft platform, the Mono Project potentially provides the ability to run the site on Windows or *nix
AJAX, CSS and RSS will also all have major roles in the next version of the site, and deciding on a back-end platform wasn't the only decision to be made. I also had to decide between creating my own Javascript framework or selecting an existing one.
Thankfully, having so many well-assembled frameworks to choose from (I specifically looked at Prototype and Scriptaculous, MooTools, jQuery, Dojo, YUI, Google Web Toolkit, and Atlas) made it apparent that I should not reinvent the wheel, and as a result I selected jQuery. It is impressively small, flexible, fast and expandable thanks to its plugin architecture. Also included is support for XPath style selections, which is an awesome bonus as I prefer to work with web services that deliver XML vs JSON strings (at least at this point in time) :)
Now don't get the wrong impression! Although the site will feature "AJAXified" features, I'm a strong believer in supporting non-script-enabled clients, and those of you without Javascript will still be able to use the site.
That said, seeing the new dynamically updating homepage, posting comments and rating maps is MUCH, MUCH more enjoyable in their AJAXified form as compared to that of the traditional entire page refresh. I'll definitely be encouraging everyone to consider enabling Javascript for the site.
...
Yeah, that's a lot of technical mumbo-jumbo to digest there. Trust me, it all just means the site will be better than ever :)