My Experience
Web Development
When I first started developing web sites back in 1997, the available development
tools were pretty dire to say the least. Most of them offered only a marginal increase
in productivity over Notepad. Then along came Microsoft with Visual Studio.NET
in Feb '02.
VS.NET was by no means perfect but it was certainly a big step in the right direction.
At last, we (developers) could now knock web sites with comparative functionality
to windows client equivalents. But more importantly, we could produce these web
sites in within similar timescales.
I first started to tinker with VS 2005 beta in April 2006 and I was instantly hooked.
At last the Microsoft hype delivered what it had promised. Here was a web development
suite that allowed windows client developers to produce web applications with the
same ease and speed we had been used to using the rich and powerful Windows client
IDE's.
I've now started to get to grips with VS 2008 and whilst not as big a jump as 2003
to 2005, 2008 dies have some neat new features (Javascript intellisense is a god send
to those of us who cringe at Javascript).
Web Services
Most of my work from October 2004 up until July 2007, has centred on the development
of web services. Since their introduction, web services have offered a way of providing
platform independent remote functionality via the web in a secure and robust manner.
The main drawback of web services was the difficulty faced when you need to update\amend
a given web method. Consumers store a local of the web methods interface and any
future amendments to a web method interface would require a refresh of this local
copy by each and every consumer. This presented a real headache.
Microsoft recommended developing web services using a 'document style' approach
which basically involved passing an XML document as the single parameter to a web
method. This approach allows the supporting of multiple versions of the same web
method. However, I still felt uncomfortable at the thought of recompiling and distributing
the entire web site each and every time a new version of a web method was released.
I then looked at an n-tier approach where each version of a web method is compiled
as separate assembly. Each subsequent version of a web method as implemented as
a new, separate assembly, thus minimising the need for regression testing.
I don't want to get bogged down with details, but with input from several colleagues,
I took this idea further to produce an architecture for mutli-versioned web methods
and produced a 'Versioner' middle tier assembly that handles all web requests. This
approach has been formally documented and is used for all web service development
within my current client.
This 'Versioned' approach now allows me to:
- Support multiple versions of any given web method.
- Produce a new version of any given web method without the need for any consumer web reference refresh.
- Rapidly respond to a consumer's request for change with minimal regression testing.
Windows Client Development
Back in 1995, I started as a FoxPro contractor but after a year or two I found VB
offered a richer development experience. I started with VB 3.0 in August 1994 and
began using VB.NET commercially in March 2003. I have been using VBExpress 2005
to develop the next version of my commercially available data mining application,
The Query Tool.