TechEd 05 Day One – This One’s for Chris Sells

Back in November, we published a series of articles about Software Factories. As excited as I am by the concept, Chris Sells really brought me back to earth with this post:

I’ve been reading each of the Software Factories articles with great interest. Part 1 and part 2 did a particularly good job describing the elements of the problem space, I thought. However, when I get to part 3, I was ready to see a solution. Instead what I got was a long abstract piece defining the bits of what makes up a software factory. This is the kind of thing I’d be ready to read after I was shown a concrete example or two of working, running software factories. Do other people like reading these long, abstract articles? I find them tedious unless they’re filling in and generalizing the details of something that I’ve already got a handle on.
[Chris Sells – Concrete Examples of Software Factories?!? – Nov 7th, 2004]

When we were planning the ARC track for TechEd this year, I sent this post to Keith and Jack and told them I wanted to show a concrete example of a working, running software factory. I wanted to impress Chris. Today was ARC302 – Building and Using a Software Factory with Jack and Wojtek. I don’t think Chris was here today, but if he had been, I think he would have been impressed. It’s one thing to see all the various parts working on their own, but it’s very different to see everything working together in concert.

The factory scenario they demoed was for building smart client apps. p&p already has a bunch of existing assets like EntLib and UIP that is useful for building smart clients as well as a ton of guidance for building smart client apps. But long books and source code projects are not the easiest form of guidance for developers to consume. The factory ties these assets and guidance together to provide a powerful in-tool experience for building such applications. For example, they started by instancing a smart client solution template. This had two projects – the UIP related code and the main application code. The UIP project had all the boilerplate code that every UIP project needs to use, but it didn’t have any code for individual UIP page flows. So they invoked a GAT recipe to create a UIP page flow. This is one way where factories differ from traditional wizards – wizards are typically only invoked when creating a new solution. Factory recopies are invoked after the initial wizard runs, meaning you can unfold the template incrementally as you go along. So in this case, you invoke the recipe to create a UIP page flow multiple times, once per flow you want to create. Running the recipe created a bunch of files, but of primary note was a DSL model file and two code generation templates. The model file was for a cool little DSL for laying out UIP page flows. The code gen templates generated all the code for the forms and the flow control as well as the config needed to implement the page flow as designed in the DSL. Then they wired up the generated forms to a web service, including usign a service agent to cache web service call results on the client.

All in all, it was a very full featured app to build in a very very short amount of time. What was interesting is that there was very little hand waving when it came to adding code. You know how demos go where they add literally pages of code? In this demo, they’d swap out the file with the empty method for one where the method had like ten lines of code. And on top of being full featured, it followed the best practices design put forth by out patterns & practices group. So it didn’t fit the mold of a “quick & dirty” demo – how often does a demo app that you build on stage conform to best practices?

I gotta get through the end of this week, but then I want to get a video of the demo up on the web so you can see what I’m talking about, even if you didn’t go to TechEd or attend the session. I’d love to get the code too – it’s all running on VS05 Beta 2 – but you know product group guys…the next version of the demo is going to be even cooler…I think I can convince Jack to ship the current code and then ship the even cooler demo code when they get that finished.

TechEd 05 – Day Zero

The calm before the storm, as they say…

Things have been quiet around here between new baby & final TechEd prep. I think we’re in pretty good shape, though we’ll see how we look tomorrow. One good piece of news is that Dick Carlson, who manages the Hands-on Labs, sent out a list of labs either not received or that have blocking bugs. No ARC track labs on either list. That’s a good sign…

Last night was the track owner dinner at Sea World. Funny, we had a track owner dinner at Sea World last year in San Diego. Is this a trend? It was fun to hang out with the other track owners and drink rather than have to sit around a table and plan. Didn’t get to see Shamu up-close-and-personal like last year, but we did go ride the Kraken roller-coaster. Pretty cool, though reminiscent of Batman at Six Flags in SoCal. One slight bummer – some of us waited extra to ride in the front, but I was to big for those seats! And it wasn’t a weight problem (though I could certainly use some work on that front), it was a barrel chest problem.

Today, my pal Chris is driving up from Hobe Sound and we’re going to hang out this afternoon. I used to see Chris all the time, but then we both switched jobs and he doesn’t have much chance to come out to the left coast. Last time I saw him was at an architect forum last spring in Orlando, when again he drove up to see me. However, I hear there may be a helicopter ride in the cards today, so I’ll try and keep the “when are you coming to see me for a change?” grief to a minimum.

I’ve even gotten a chance to write up some thoughts on two new projects and to play around with the new DSL Toolkit CTP. Of course, having an extended battery for the plane ride was the reason I could do all that.

See you in the cabana on Monday…

TechEd Utility Player

So we’re one week out on TechEd. This time next week, the final prep will be done and we’ll be ready to let this thing fly. Some of the core team goes down this week, though as a track owner, I’m not really needed on site until Sunday.

What a difference a year makes. Last year, I was freaking out – it was my first TechEd. Now I feel like the old hand at this. Of course, I wouldn’t have made it through last year with out the assistance of a few key individuals. Among others was Esther, who just started blogging for this year’s TechEd. She’s got a long post about the track cabanas. Last year, they were a big hit, but there were a few glitches. Esther writes about some of the changes they made this year to address those issues.

If you’re going to TechEd, make sure to stop by the ARC cabana and say hi.

Finally, The New DSL Toolkit CTP

The May CTP of the DSL Toolkit is finally here, as per Jochen's blog. The big new feature is compatibility with VS05 Beta 2, but according to Jochen this CTP also includes:

  • New features for the model explorer and property browser in the generated designers.
  • New shape type with collapsible compartments like in the Visual Studio Class Designer.
  • New text templating (code generation) engine with richer features like an include directive.

They haven't updated the DSL Workbench pages yet, but you get the CTP directly from the Download Center. You can also leave feedback in the MSDN Product Feedback Center.

Introducing the Architecture Resource Center

Shortly after joining the Architecture Strategy Team, we worked with MSDN to re-launch the .NET Architecture Center. While we’ve had good success with that site, we realized after running it for several months that we needed a new approach in order to engage architects of all kinds. While Solution Architects are a key audience of ours that is well served by our MSDN site, there are also enterprise and infrastructure architects that we want to be able to engage with via the website. For these audiences, the MSDN site is not really the optimal channel. So today we’ve launched a new site – the Architecture Resource Center on microsoft.com. We’ve also re-launched the MSDN site, now called the MSDN Solution Architecture Center.

One of the key differences you’ll notice about the sites is that we have a new way of categorizing our content. Previously, we used a topic based approach with categories such as service oriented architecture and application architecture. Now, we have a taxonomy with categories for think ahead, learn more, solve now and share ideas. This gives us a new way of differentiating content such as Metropolis, which really is about the future of architecture, from content such as the Smart Client Architecture and Design Guide, which really is about solving a specific design problems today. Over time, as we add both more content as well as more personalization features, we think this approach will make it much easier for our customers to find the content they are looking for.

Of course, as “community guy”, I’m most excited about the Share Ideas section. In addition to a site wide RSS feed, we also have an aggregate architecture blog (and RSS feed)  featuring both Microsoft architects like myself and Simon Guest as well as and 3rd party architects such as Architect MVP’s Jimmy Nilsson and Barry Gervin as well as Architecture Advisory Board members David Ing and Martin Fowler. There’s info on the new architecture certification, upcoming events and webcasts as well as profiles of my coworkers on the Architecture Strategy Team.

Finally, I’m very excited to announce that JOURNAL is becoming The Architecture Journal and that you can sign up for a free print subscription to this great quarterly publication. We saw a huge traffic spike when JOURNAL was introduced on Architecture Center last spring, so I’m thrilled that that great content will now be available in print format delivered right to your home or office! Watch for print copies of the Best of the Journal issue at TechEd.

Of course, with any new venture, there will be tweaks, hiccups and improvements. Please leave a comment or email me with your thoughts, opinions and suggestions on how we can continue to improve this site to meet the needs of all kinds of architects.