Saw some excellent sessions at TechEd on Tuesday. The first was by a blogger I've been reading for a while,
Scott Hanselman. Scott has a lot of interesting and humerous observations on his site, including such gems as "Can we use WS-Powerpoint for this" and various Zen mantras related to .NET coding. Then quotes in his powerpoint reminded me of something I've been into for a
long time, which is writing
Haiku about topics such as coding and everyday life. For example
Asynchronous call
Such an efficient method
Of getting work done
I should really poste more .NET related Haiku, as I'm sure its something that would benefit the community immensly. Back to Scott's talk: the topic was about code generation. I've been getting more interested in this ever since a local client disallowed me to use a CG tool to generate Types from a datastore. I'm like a small child that way, making it forbidden makes me want to do it more. Scott showed a lot of interesting code generation best practices and ideas including:
- Generating Big word docs as part of your build process
- Generating unit tests and CHM files along with your code
- naming conventions to indicate what files are generated
- Using XSD and WSDL for creating your Domain Specific Languages
- How to make your own XSD files available to VS 2003 so you have intellisense support
And a lot more. The most interesting part is that Scott did all this in VS 2003, no built in DSL support or partial classes. I became interested enough in this to switch one of my sessions on Wednesday to a talk on the DSL support in VS 2005.
My favorite talk of the day had to be one concerning adding voice support to mobile devices using Speech Server. This is something casey has been using for a while and had good success with. It still amazes me sometimes how Microsoft can take some incredibly complex problem spaces and make them accessible to almost anyone. The speech server model is a web-application model, and adding SALT-like support to your pages is incredibly straight forward.
There is simply too much to learn.