Friday, August 29, 2008

I have failed you .NET

Recently I have asked to help the IT council at the Bank I work at, identify a technology to help them build small applications quickly. But still allow these applications to be built on a technology that allows for the following criteria:

  1. Has a data store (could be flat file, cloud, DB etc)
  2. Data Access
  3. Single Sign On security
  4. Audit compliance
  5. Logging
  6. Ability to interface to other applications
  7. UI data entry – Forms basic screen workflow that possibly could be configured
  8. Personalization
  9. Widget/Gadget ability (think WebParts or Google gadgets)

Each of these things would then be measured on :

  1. Solve something elegantly
  2. Ease of Development + Pace of development
  3. Ease of support
  4. Robust – Can be made production capable
  5. Ease of which to get development resources
  6. Future proof considerations
  7. Economy/Cost. i.e. A really expensive solution will lose points.

So with my little Microsoft hat on I thought I would throw together a little demo on how .NET does all this with SQL Server (Express if need be). All of that stuff is so damn easy with ASP.NET even though I haven’t touched it in nearly 2 years. They liked my concepts and asked me to present 3 weeks later a little demo. No problems.

So with the distractions of the Olympics, my 1st weekend out of town in 6 months, investing in a new business venture, doing my yearly tax, applying for a UK visa, buying a new house and preparing to move out of my current house; I thought I would be able to knock up a web site to show case how .NET can do all the above. Ok so I was a bit ambitious, however I did produce web site with some functionality. The limited functionality however did everything requested short of Auditing (which I am sure the IT council thinks is the same as Logging). I did present some Auditing options as static screen shots.

It was actually a very reassuring process. I reassured myself that yes I can create a system that can get good test code coverage, with setup/tear down database and was FxCop compliant. That makes me feel all fuzzy. Next thing I was reassured that yes, .NET is a great platform as is so nice to use VS2008 to just get things to work.

What I delivered was :

  1. Single-sign-on via Windows security in ASP.NET (wow! One line of config)
  2. AzMan Authentication. I knocked up an application policy in AzMan manager and used the AzManRoleProvider to enforce it against my site map. I also have an IAuthorize interface which my implementation passed of to AzMan. Seriously, AzMan rocks.
  3. AOP Logging. I’m not a big fan of logging, but as far as logging goes I do like the solution I provided.
  4. Personalization through skins/themes and, well, you guessed it the Personalization framework in ASP.NET. Users could choose their them on the fly and it would be remembered for that user.
  5. Widgets/Gadgets via the WebPart framework. That was great. I never used it before and I had it up and running in minutes.
  6. Sql Express database with build up and tear down scripts of schema and data.
  7. Integration tests for the services to the database.

However I didn’t have time to teach myself WCF and WF in 3 weeks and watch Usain Bolt, Michael Phelps and the Polish women’s volleyball team. So thanks to a recent Readify community event I had seen the Expense report demo application and thought I would use that. So that added Messaging and Workflow to my presentation.

Well I thought it was pretty good what I could showcase given about 30hrs of effort (including power point time). The only problem with .NET and the toys available is, well, it all just works. I only wrote a handful of classes (maybe 20-30 with tests?).

BUT… apparently that wasn’t good enough. Of the other 4 entries, you could imagine if there was LAMP entry or Java entry that was a very compelling argument then sure go with that option. Instead there was SharePoint, Tibco, Jade and a Hosted entry. I know SharePoint is almost the same as ASP.NET but was a slightly different angle to my presentation, but probably coupled with WF or InfoPath could be a nice little application framework. Tibco is more a product offering so requires one more thing to learn, but it also looks like it has some nice stuff. Hosted applications? for a Bank? Surely I have mistaken what they are offering. And finally Jade.

WTF!?! Hands up who knows what Jade is. It is one of those concepts that died like it should have and only really exists as I understand in New Zealand where it is taught at the Uni in Christshurch and has some Major NZ customers which are specks on an international scale. From what I understand it is an OO language and DB rolled into one. From my experience integrating with it for some eCommerce stuff, it performs awfully. And even if I am wrong on all counts, it still fails to meet a bunch of the criteria like:

  • Ease of support – Localized mainly to NZ. Cant really compare it to the massive corporate and community support available for .NET, Java, PHP etc. Even in NZ no one considers it a major player (I know I’m from NZ).
  • Ease of which to get development resources – Where! On Seek.Com.au there were 19 jobs for Jade (11 of which were based in NZ). Compare that to 3200 for .NET and 2500 for Java.
  • Future proof considerations. Jade might not exist in 3 years!
  • Economy/Cost. How much are you going to have to pay for the guys to build and maintain this stuff.
  • Really I must be the worst presenter in the world, or the Jade guy used some black magic. Cause you guessed it, the IT council decided that Jade + Hosted offering were the way to go. Well surly a hosted offereing is going to make single sign on a bit tricky. Nexy, if I really thought Jade was a good language/concept/platform I would have not thrown out the 2 books I had on Jade, or  I may have taken some interest in the awful system I had to integrate to 3 years ago.

    My humble apologies .NET, I have failed you.

    4 comments:

    Unknown said...
    This comment has been removed by a blog administrator.
    Lee Campbell said...

    Update: the winning entry is a Java entry using the Java Agent Development framework (isn't that acronym JADF?)
    This makes me feel better that they didn't seriously consider JADE (the programming language).
    It seems the entry wowed them with IPhone integration SMS technology (which had nothing to do with the requirements).

    Oh well.

    Anonymous said...

    Two lessons to learn from that Lee...

    1. The "Bank" you work at has a proven track record of investing in poor solutions - in fact sometimes even with obsolete technologies.

    2. Always ofer something extra which makes people go Woooowww.... Statistically your solution is more likely to get chosen that way...

    I'm sure your solution was much nicer... JADF... stategic direction for a bank... how 1990's!

    Anonymous said...

    Hi Gumble,

    Having seen your recent powerpoint magic, I'd suggest your presentation skills are just fine.

    Meeting the job requirements is usually what the employer expects. Whereas adding unnecessary stuff (no matter how cool it seems) is refered to as scope creep / slippage. So rewarding an entry for scope creep tells us something about the judging panel.

    It seems to me that you were robbed! At least we can have a laugh at the name the bank chose for the competition. I wonder if it echo's their IT policy??

    Anyway, good luck in the UK!