I was chatting to my colleague Charles Young earlier today and it reminded me of an idea that I had a while back. Wouldn't it be nice if, instead of having expression shapes (and the awful expression editor window ;-) ), we instead had an ASP.NET-like "code behind" model allowing us to use any .NET language, and not have to worry about working within the restrictions of XLANG/s. Of course I appreciate the design principle that Orchestrations shouldn't be littered with code and you should instead be calling out to .NET classes to do the real work, but the developer experience of ASP.NET code-behind development is just so appealing. Orchestrations are rather like ASP 1 for calling code in their current form.
That led me to thinking that effectively you'd have anonymous blocks of code (a la .NET 2.0) subscribing to certain events in the orchestration; following that thought, if you could create subscriptions for blocks of code, you'd be opening up a whole world of possibilities (or, maybe, pain). Then again, that's not such a big step from the Aspect Oriented ethos - Aspect Oriented Biztalk anyone? ;-)