Quickie blog post, just to get jamming:

  • EntLib internals webcast. Yes, EntLib and CAB ship with ObjectBuilder, our common factory & dependency injection infrastructure ++. Answering the FAQs: Yes, we have one. Yes, it's this one. Yes, you can build something like Spring with it, if you wanted to. Yes, we want your feedback and you to do cool stuff with it. And Yes, I am hoping that folks implement a creation strategy that do a transparent proxying, see my next post why. Interested in ObjectBuilder and how we externalized the config interpretation and wiring to instrumentation out of each app block? See this:

    So what's this Configuration Source thing meant to be? Why do you have so many kinds of factories? How can I reuse the instrumentation capabilities in my own app? What's different in the new Configuration Designtime?
    Get the answers to these and many more questions at the
    Enterprise Library for .NET Framework 2.0: Core Architecture webcast. It's on this coming Thursday, December 8th at 10:00am US Pacific Time / 18:00 UTC. Register now to view the webcast live (this is best if you want to ask us questions), or as always it will be available on demand from the next day

    By the way, shipping EntLib on ObjectBuilder was not an easy feat, congrats to the team for pulling it off and consolidating the EntLib and CAB factory and dependency injection approach...at one point in time I started wondering..."what have I done! Include a new component as part of the foundation of something that needs to ship ASAP for what some think is a hazy fluffy ivory-tower architectural benefit! I'll be lynched!". But our p&p devs + testers rock. (Guys - if you are reading this: If you don't pull these feats, nobody can. However, if I ever have to ship a full OS, I'll keep the learning in mind).

  • Aspect Oriented Programming Workshop We recently held a workshop around AOP here at MS. I was glad I finally got to meet Prof. Mehmet Aksit in person (from Twente, of Composition Filter fame). I hoped I would also see Christa Schwanninger from Siemens but she's having a baby (congrats Christa & Michael!). My conclusion? To better influence Microsoft the AOSD community should 'consolidate efforts' and express the commonalities that exist in approaches. I mean, there ain't that many e.g. in runtime you'll find 3 main flavors - assembly rewriting, using dynamic languages, or using transparent proxies. Only so many pointcut expressions cover a large % of advice types, and so on. I think it would be good to have a pattern language around AOSD. The AOP alliance has most of the material needed but sometimes I feel the discussions around problem space and solution space get mixed; or that the academic efforts focus on the uniqueness of each solution (which they should) instead of the commonality (which is a lousy strategy for a researcher - to write about what everyone understands!). Mehmet was going to try to get a AO on .NET wiki started somewhere to get this dialogue around commons going, when I find out that it materializes, I'll post.

    • In the meantime, if anyone from the AO community wants to define a factory for proxying, please consider doing it via an ObjectBuilder strategy. It will help others use your solution, on stuff we've built e.g. CAB. And oh, if only I got a dollar for every time I meet a customer who could have benefited from richer interception on .NET. If you want it too ping a comment here, I'll print it nail it to doors on bldg 42.

    • No, I don't have MS's official stand on AOSD, so please don't ask me-  there's an old obscure BillG 2nd hand quote from an Australian interview where he allegedly said MS would be embracing it. Definitively the platform is embracing more and more requirements of separation of concerns throughout, which is good. Indigo looks great in this regard. I'd like to see more of a unified approach one day. But a lot of questions are unresolved yet (when you think about trust models around assemblies, for example, who is allowed to advice what?). So I don't know what the end solution would look like. Especially when I think about crosscutting concerns and concurrency, hm. We'll see.

  • The infamous TDD article gets pulled Unless you have been living in a tupperware, you know there was a fallout over some article about TDD deep in the tree of MSDN VSTS content. Yes, it got removed. Here's the link, anyways. It described TDD in terms of some steps that in my opinion was just..plain..wrong...and it irked folks in the TDD community. Anyways, here are my key points late in the game:

    • Sorry Jimmy! I'm so late to this flame party it's not even funny... Jimmy Nilsson pings me for comment, I start writing a post in this web form and my machine runs out of battery...there goes my IE with all my text. It would have been a good post. To your question...no, what the article described is not what we do when we say we do TDD in patterns & practices. I respected Randy Miller's reaction a lot, even though he didn't get to blog about it. And I truly beleive in TDD as a design technique.

    • To MS folks...how about some internal review cycles...there's agile and TDD lists... one... email... away.

    • I'm glad the community responded so vigorously. Kudos to all who by nature or effort were able to articulate a response that did not evoke a Turret syndrome diagnosis.

    • I would also like to see those passionate about the subject take advantage of the situation and engage with MS in a proactive way. I mean, it's good agile approaches will be getting more visibility. As the word gets spread, it may get mangled. That's just 2nd law of thermodynamics. MS and its tools channel is a huge megaphone for the agile message. I know, many people ask, "who needs a megaphone in this era of blogs & social web 2.0 long-tail software"? Well, not everyone is in-the-know of what Michael Feathers or Brian Button are saying, or has their RSS pointing at the community gurus..so influencing an ISV like MS to help spread the word in a way the respected leaders think it's right not only will help the overall industry, but also creates a market for those engaging in it. Consider this personal estimate: probably more Microsoft customer-devs relate OOP advice to Deborah Kurata than the GoF. So what about ganging up on MS and saying "we will publish books, training, etc and furnish you at a fee with agile-community-approved guidance that the masses can take a shot at without requiring going on a 4-month spiritual walkabout with Kent Beck on some rainy hill in Oregon". I think it could be a win.

What's the news? CAB shipping, EntLib shipping, and we are off to a great start with patterns & practices in 2006 and starting to plan the wave of stuff for WinFX+ timeframe technologies.... Avalon...Indigo...Workflow...LinQ This is my 5th year in this group. Any one year is never similar to the previous one. Hope you are finding the existence of p&p as helpful as I enjoy working here.

Namasté! no, wait, that's Soma, not me. Thank you!