UvMoney Goes AJAX

By Thomas Krehbiel

It's time for an exciting update on my UvMoney home accounting project.

When I last wrote about it, I was disgruntled about scraping transactional data from bank sites. I'm happy to report that I've eliminated AutoHotKey scripts from four out of the five of my bank scraper modules. The last one is a hideously convoluted bank site that uses layer upon layer of frames, and I fear for my sanity when it comes time to investigate directly scraping transactions from that HTML. I freely admit I've been postponing that task as long as possible, even though the AutoHotKey script routinely fails when the bank site changes.

Since the scraping is largely resolved, the next step was building a user interface for entering and editing transactional data. The original method was less than optimal, since it involved hand-editing a large XML file of bank transactions. I set out working on a desktop application, as I usually do, seeing as how I learned software development before the arrival of Google. I explored some WinForms data grids, but I didn't like any of them, so I started porting my old grid code to .NET 2.0. Initial versions were promising, but I quickly grew frustrated because I wanted to rewrite everything from scratch, and it's really a time-consuming pain in the butt to make a nice, clean, fast grid control from scratch, so I gave up because my free time is limited and I went back to the XML file because, you know, it's not that hard to edit an XML file, right?

The project languished like that for a few months, until I found myself researching the Microsoft AJAX extensions for ASP.NET 2.0 at work last week, and then it suddenly dawned on me that an AJAX-enabled web application might be just the ticket for UvMoney. It would simultaneously give me a working interface and provide a useful test project for the AJAX extensions.

I cobbled together a basic interface over a weekend, and it works pretty well. This confirms what everyone already knew -- it's much quicker and easier (and cheaper, since you don't have to buy a bunch of pre-made components) to build an interface for web browsers than it is to build interfaces for desktop applications. This could explain why everyone has been moving away from the desktop: Simple laziness. The task of building a good desktop application interface is too hard and takes too long for most development shops to consider it anymore. Kids today! They just don't want to work anymore. :) (I have a perfectly good excuse for caving in to the web application frenzy, by the way: Since I'm older, I actually have a life, so I can't spend all my spare time hand-coding efficient grid rendering code. So there.)

Anyway, back to the topic of the Microsoft AJAX extensions. Overall I have a favorable impression of the extensions. It was pretty easy to install and produce good results. However, if you don't like the way ASP.NET abstracts away all of the underlying mechanisms of HTML, you will continue to dislike the Microsoft AJAX extensions. I have mixed feelings about that. On one hand I like the control of working with the "bare metal" of HTML and Javascript, but on the other hand, Intellisense and sensible C# code is pretty dern convenient. Thankfully, you can mix both methods in ASP.NET projects, so you can pick and choose your preferred style of coding.

It's pretty nice to have a centralized page where I can navigate around all of my banking data. I even added a diagonal crosshatch background to the page so it looks all Web 2.0-ified. I'll be expecting a venture captialist to fund my Web 2.0 AJAX project now. For the right price, I might even add some useless social networking features and a rating system!

Reader Comments

Comments are the property of their respective owners.

Be the first to post a comment!

Add a Comment

Name: (optional)
Comment: