En route to VSLive! Toronto, I decided to stop in Milwaukee, WI for a weekend conference called Deeper in .NET. Sponsored by the rockin' Wisconsin .NET user's group, organized by Scott Isaacs with assistance from Doug Rhoten of the rollin' Chippewa Valley .NET user's group, and underwritten by a large number of local and national companies, Deeper in .NET attracted four of the most dynamic and well known speakers in the .NET community: Julie Lerman (pics), Michele Leroux Bustamante, Scott Hanselman, and Bill Hatfield. In response, over 500 eager .NET developers from Milwaukee and beyond, packed themselves into a drab banquet hall at the hohum Hyatt Regency in Milwaukee at 7:00AM on a Saturday for a full day of .NET love on a spectacular spring day in the Great Lakes region.
Photos: Milwaukee, Deeper in .NET, Friends
Deeper in .NET Speakers and AgendaMichelle, a Microsoft Regional Director from Southern California (dasblonde.com), opened the event with a rousing technical session on WCF. Scott Hanselman followed with an awesome presentation about DasBlog. At lunch, they were joined by Bill Hatfield, Julie Lerman, and two Microsoft employees (Dave Bost and Brian Tinkler) for a Q&A panel discussion about Vista, Google, and several new .NET innovations. After lunch, Julie Lerman talked about ADO.NET and Bill Hatfield about AJAX and Atlas.
Milwaukee Hyatt Overrun by GeeksFunny side note: Shortly after I arrived at the Hyatt, I heard my name. I turned around to find Julie Lerman, who cheerfully greeted me as she always does :-) and immediately introduced me to some people she was talking to. "These are my Fox friends," she said. Turns out, there is a two day FoxPro convention taking place in the Hyatt Milwa at the same time as Deeper in .NET. Coincidence? Apparently, it is. A complete surprise to everyone. Amused by the situation, I asked Julie's FoxPro developer friends what they think of LINQ. Blank stares. They've never heard of it! Alas, I later learned that in addition to the hundreds and hundreds of FoxPro and.NET geeks in the building, the National High School Chess Championship is taking place at the Hyatt Milwa, concurrently. Geeks! Geeks! Geeks! Everywhere.
Scott Hanselman on DasBlogHere are a few notes and reflections on Scott Hanselman's awesome, 1 hour and 45 minute session on DasBlog, XML-RPC, SOAP, C#, and other blog-related technologies, applications, and services.
Whereas Scott based his talk on DasBlog, a project to which he is a primary contributor, the bulk of his presentation revolved around the technologies DasBlog relies upon, such as XMLSerializer and RSS, he did a good job of highlighting related applications, features, services, and technologies such as SOAP, BlogJet, Newsgator, and others.
The .NET CommunicatorA gifted and engaging speaker, Scott Hanselman quickly establishes rapport with his audience. In a good natured way, he bemoans several of his pet pieves with Microsoft developer tools and technologies. With respect to code behind, he says, "I love XMLSerializer but not the "voodoo" code behind stuff." Rhetorically, he asks, "Are there any Microsoft employees in the room?" In the back row, Dave Bost and I meekly raise our hands. Mercifully, Scott pretends not to notice. "Microsoft speakers always gloss over what I'm about to show you." He cracks open the code behind file for a DasBlog class in Visual Studio and digs into the code. He muses, "Check this out. There must be a hundred lines of code here for the six lines of code we've written so far. What does it do? It's magic."
XMLSerializer Rocks, Until...Suddenly, Scott breaks from his demo, paces across the stage with code from the overhead projector washing over his face and emphatically says, "XMLSerializer RuhOCKs. It Rrrrocks. RuhRuhRuh rocks." He stops and adds, "Until..." [long pause, upraised index finger] "Until it doesn't work. And then it doesn't rock and we go back to reading nodes, one by one.." He concludes, "I don't believe in black boxes."
Connecting with .NET DevelopersClearly at home on the dais, Scott fills his presentation with self-effacing jokes like, "I google myself all the time because I have no memory" and "You can contact me at paypal:firstname.lastname@example.org". He pauses occasionally to look up at the big screen and comment on minor typing mistakes. "Hmph. This is what Visual Basic programmers do when they can't remember what language they're using: '//this is a comment." The audience laughs appreciatively.
Scott relates to his audience as a peer and connects with them in a genuine and friendly way. He builds credibility with highly technical attendees the old fashioned way, by exhibiting technical wizardry. He makes the rest of us ;-) feel smart--or at least not stupid--by occasionally drilling down into advanced concepts and technologies. He employs funny metaphors, deftly.
Don Who?Scott doesn't rely on cheap tricks, such as name dropping, to establish credibility with his audience. For example, at one point, he asks, "How many people in the room have a SOAP application in production?" One person raises their hand. "SOAP is HARD, isn't it? It makes us programmers work." In a few seconds, he transforms a 10 line XML file from SOAPy syntax into a simpler form: XML-RPC. He interjects, "Would you believe that the same brilliant madman who wrote this...[Scott deftly adds about 20 characters to the file]...wrote this." [and he quickly removes all 20 characters from the file]. He never mentions Don Box's name.
I highlight this subtlety because, in my opinion, it is the type of thing that distinguishes a GREAT speaker from a really capable speaker. By referring to Don Box but not mentioning his name, explicitly, Scott refrains from saying, 'I'm special and you're not because I know Don Box and you don't.'
DasBlog: Reusable Patterns and Free .NET Code that Works in ContextWith well-rehearsed rhythm and delivery, Scott occasionally puts on his serious face, notes that he has something important to say, and then shares a nugget of wisdom or a technical tip, developer to developer. Here are a few salient tidbits that I managed to capture, on the fly: