Duwamish Code Generation

Reading about the deprecation of vbscript got me thinking about my very first coding job out of high school, which was basically creating middle-tier Visual Basic object libraries to expose data from an Oracle database. The small organization I worked for was basically paying me and someone else to code all of this by hand, and my bit of innovation on that was spending a week writing a code-generator instead, given that there was nothing that wasn't boilerplate.

That in turn got me thinking about what the architectures of the day often looked like, and I found myself looking around for any references to the old Microsoft Duwamish samples.

Classic

The original sample was actually a collection of them, put together to show a system migrating from a simpler "fat client" to a distributed system.

The more interesting the architecture, the higher reliance on multiple Microsoft products - unsurprisingly.

Interestingly - and this would continue - once you had the database or logical schema, you could derive a ton of functionality, from front-end forms, middle-tier objects or data layouts, and back-end declarations and stored procedures. Again, a good, rich description and a code generator can get you pretty far.

At some point, the XML craze hit full-force and the architecture got a couple of additions: XML services as well as the ability for cutting-edge browsers like Internet Explorer to directly access them.

Other developments were branding for Windows DNA, a heavier focus on ASP and DHTML, and leveraging DCOM, MSMQ and MTS.

There was a fair bit of concern at the time with the rise of Java, and you can map out advanced in 'object management' both from Sun/Java offerings as well as the Microsoft/DOCM stack (the wayback machine still has the MTS vs EJB whitepaper).

.NET Era

The Duwamish samples generally languished for a while, but they did get revisited during the rollout of .NET.

Much of the focus here was in migrating from ADO to ADO.NET, and ASP to ASP.NET. Massive, massive differences beyond the suffix to be sure.

'Disconnected/Client RecordSets' become 'DataSets', and in general the explicit differences were a very good improvement.

Happy migrations!

Tags:  history

Home