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:
- Has a data store (could be flat file, cloud, DB etc)
- Data Access
- Single Sign On security
- Audit compliance
- Logging
- Ability to interface to other applications
- UI data entry – Forms basic screen workflow that possibly could be configured
- Personalization
- Widget/Gadget ability (think WebParts or Google gadgets)
Each of these things would then be measured on :
- Solve something elegantly
- Ease of Development + Pace of development
- Ease of support
- Robust – Can be made production capable
- Ease of which to get development resources
- Future proof considerations
- 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 :
- Single-sign-on via Windows security in ASP.NET (wow! One line of config)
- 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.
- AOP Logging. I’m not a big fan of logging, but as far as logging goes I do like the solution I provided.
- 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.
- Widgets/Gadgets via the WebPart framework. That was great. I never used it before and I had it up and running in minutes.
- Sql Express database with build up and tear down scripts of schema and data.
- 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:
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.