customer is probably not going to want to spend additional time and money down the road because javascript, browser standards, etc have changed.
Is she, or is she not? Can you persuade her that the world around her keeps moving, and she will need to update her application to work with the major platforms of future?
I assume this is an Intranet application, not a public (Internet facing) application. Because if it's Intranet I think 6 years is unrealistic, but the failure mode is likely to be fairly benign. But Internet, 6 years and no security updates to the application itself -- no way, I would not participate in that to avoid damaging my professional reputation.
I would try hard to sell a retainer (software maintenance fee) for keeping the application current. And with this, a good legal document clearly outlining what the customer gets for the fee (i.e. compatibility and security fixes, no new features). Software Maintenance is typically not that hard to sell if you do the hosting as well.
For the sake of argument, assuming the application shall be 'frozen' for 6 years:
I would absolutely not use Javascript on anything that is supposed to last 4+ browser generations. I think jQuery is great, but ... no way, Javascript engines are changing much too fast. For output, I would stick to only:
- HTML 4.01 Strict & CSS 2 (I was thinking about XHTML 1.0 Strict, which is essentially HTML 4.01 Strict changed to conform with XML rules. But HTML 4.01 has the largest installed base, and I'm no fan of XML. It's a judgment call.)
- PNG & GIF.
With regards to keeping thing static, this simple output is probably the single biggest win.
For the server environment, I would try to specify Windows 2008 R2; .NET 4.0 and ASP.NET MVC 2, and a 'near-frozen' server configuration (i.e. security updates only). Windows 2008 R2 should have extended support for around 10 years from now. The previous generation (Win 2008, .NET 3.5SP1 and MVC 1.0) would also work; but ASP.NET MVC 2 is looking soo nice, so I'd prefer to use that for my personal funfactor.
Large open source projects with a good track record of 'being there' would be fine too -- nHibernate, nUnit, StructureMap et cetera.
Oh, and good call on using ASP.NET. Microsoft is still good at keeping backwards compatibility and backporting security fixes. ASP.NET and Java are the two only environments I'd consider for something like this.