Monday, April 21, 2008

I attended the Microsoft MVP Global Summit 2008 in Seattle and Redmond, Washington last week. Great technology and it is always nice to mingle with 1,700 of my closest übernerd friends. Monday and Thursday we were all together in Seattle's WSCTC for keynotes, general meetings, and Open Spaces sessions. That formed the crunchy outer shell around the dense chewy inner nougat of breakout sessions on Tuesday and Wednesday held at various locations on the Redmond campus.

I attended the Connected Systems Division (CSD) track, where the first session answered one question on everyone's mind, "can we blog/twitter/podcast/text/talk about the track sessions?" There were several answers: no, no, no, no, and no. Okay, we are allowed to say that we were at the MVP Summit in the CSD track, and that we talked about Oslo. And that's it. Here goes:

I went to the MVP Summit and attended the CSD track. We talked about Oslo. It was cool.

Now what else can I talk about? Great Party with Palermo on Sunday evening. On Monday, Sean O'Driscoll, who will be leaving Microsoft shortly, gave a great speech about community. I liked the Open Spaces sessions on Monday afternoon, they were fairly similar in nature to Birds-of-a-Feather sessions that I help run at TechEd and PDC, so I was right at home. Michelle Laroux Bustamante led a WCF discussion, and Roman Kiss talked about his WCF null channel on Code Project. It was great to catch up with Roman on several issues during the Summit. Monday evening I I geeked it up with Sam Gentile and other folks from Neudesic, and then I ducked out of the reception to work on the TechEd BOF sessions.

At Tuesday night's CSD dinner I had the pleasure of dining with Don Box, and then discussing deployment woes and aspirations with Sasha. I was so engrossed in the conversation I didn't realized everyone else had left the restaurant, and sprinted back to the shuttle bus just in time. Wednesday night was the attendee party at the EMP, where I had some fun sharing around my new light-up juggling balls. Lots of geeks juggle.

Thursday we heard keynote sessions and Q&A with Chief Software Architect Ray Ozzy and Chief Executive Officer Steve Ballmer. Ozzy's keynote was interesting, but I personally felt it missed the mark on being inspiring. In fairness, MVPs are a tough crowd.  Ballmer, by contrast, is a dynamic character on and off the stage, and had some good answers to tough questions. Thursday afternoon I was back on campus for some follow-up CSD sessions about some very exciting technology.

Thursday evening I met up with Australian Regional Director Adam Cogan and we had dinner and discussed versioning for services. Adam was asking all the right questions. How come we don't have any of the right answers? And why aren't they baked into the platform?

Friday the Summit was over, but I had some meetings on campus. While waiting for a public transit bus from Seattle to Redmond, I got an added bonus to my trip: Pat Helland walked up an introduced himself. As luck would have it, that's his daily commute bus. We had a great conversation on the ride in.

All in all, it was a great geek week.

Monday, April 21, 2008 12:35:52 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Saturday, April 19, 2008

image I grabbed a taxi in Seattle the other day, and asked my driver my customary question, "Where are you from?"

"Ah," he said, "now that is a very interesting question. Maybe you mean, 'where do I come from first?' is that it?" Well, sure, that's a good place to start. "Very well, how about if I answer your question with a question?" I didn't know there was going to be a test on this ride or I might have studied up. "What was the first country to recognize the sovereignty of the United States?" OMG, today's quiz subject is US history.

Thinking, thinking. I remembered that Benjamin Franklin was off in France somewhere around that time. Maybe he secured French recognition of the newly minted United States. "France," I confidently declared.

"Nope. I'll give you a hint. Do you want a hint from classical music or classic rock?"

Let's go for classic rock.

image "Crosby, Stills and Nash sang a song called Marrakesh Express, so what country is Marrakech in?"

"Morocco." Whew! I know that by luck: there's a Moroccan restaurant in Portland named Marrakesh. "Really, Morocco?"

"Yes, in 1777!" Cool, I did not know that. I don't think that I even knew that once and then forgot it. But Morocco? Really?

Yes, Morocco really was the first country to recognize the independence of the United States of America, with references cited.

We arrived at my destination and I paid my driver and thanked him for the history lesson. And we didn't get to where else he was from.

Now I've got some reading to do.

Saturday, April 19, 2008 8:58:47 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, April 16, 2008

Compensable, adjective: that which can be compensated. Yes, it really is a word. I was under the mistaken impression that I had to say compensatable, but that's not even a word. So WS-BusinessActivity describes compensable activities.

Wednesday, April 16, 2008 5:05:24 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Saturday, April 12, 2008

Craig Mundie, Microsoft Chief Research and Strategy Officer, used his April 8 keynote address at RSA Conference 2008 to introduce End to End Trust, a Microsoft initiative built on authenticating identities and securing Web-based transactions and communications.

"We don't want this to be interpreted as a Microsoft play. We're saying that these are the concepts that we generally support and we've put them together in this white paper and we're asking the industry to talk about it...”

— George Stathakopoulos, general manager of security response, Microsoft, quoted in eWeek article

Craig Mundie's End to End Trust keynote address from the conference is available as webcast or transcript. Microsoft's press release provides an overview, and a related eWeek article frames the issue for a broader audience. The real goods, including the cornerstone whitepaper, are at www.microsoft.com/endtoendtrust.

Saturday, April 12, 2008 8:22:00 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, April 11, 2008

For those attending the Microsoft MVP Summit, here's some late breaking news. Patrick Smacchia (C# MVP) has a talk on NDepend that's a new addition to the schedule. It will be 5PM, Wednesday, 16 April 2008 in the MSCC. The session highlights new features of NDepend, including integration with code coverage metrics from NCover or VSTS.

If you aren't aware of NDepend, it a freaking amazing code analysis tool. It generates seriously deep code metrics, and provides tools for analyzing and visualizing the results. In the Documentation section of the website you can find a pdf "placemat" for understanding the code metrics which I created with help from Scott Hanselman and Patrick Cauldwell.

Friday, April 11, 2008 12:16:45 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, April 10, 2008

image I will be presenting a talk at PDX WebFoot this Saturday, April 12, 2008 that covers virtually every feature introduced in C# 2.0 and 3.0.

Whirlwind Tour of C# 2.0 and 3.0
Stuart Celarier — 2:30 – 3:30 pm
 

Microsoft has been working hard on changing how we write and think about code for years. Many .NET developers today still work with C# 1.0 — or use newer versions but don't use many of the new features. C# 3.0 has been released, so let's look at what's changed. In this lightning fast session we'll cover virtually every new feature of C# added since 2003. That way you can make smart decisions about which technologies to pursue without getting lost or overwhelmed. Fasten your seatbelts, we're going for a ride!

image PDX WebFoot is part of The Code Trip. It is free and open to the public. Please register through Upcoming.

The event runs from 1:00 pm to 7:00 pm, including dinner, and is located at OGI's Wilson Clark Center, 20000 NW Walker Road, Beaverton, Oregon. Other presenters include Adam Kinney, Walt Ritscher, Eric Mork, Kelly White, and the Code Trip Crew. They will be presenting and drilling into a load insanely great Silverlight goodness from the MIX08 Conference.

I hope to see some of you there!

Thursday, April 10, 2008 2:09:08 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, April 07, 2008

image Wa— uh... —hoo. This blog started up with a Technorati rank of approximately alef-naught. Now in the world of competitive ranking, that leaves no where to go but down.

Today VisualStuart.net passed a milestone (no worries, it's less painful than passing a kidney stone) by breaking through the 1,000,000 rank barrier. Yes, VisualStuart.net is now among the 962,510 highest ranked blogs on Technorati. It boggles the mind. See the stats for yourself.

And how was this incredible feat achieved? Why, it was you, dear reader, nay, dear blogger, nay, indeed, dear linking blogger who linked to my blog from yours in the past six months, boosting my so-called authority, and thus improving my ranking. I am forever in your debt.

Okay, outta my way #962,509, I am busting through!

Monday, April 07, 2008 8:30:02 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [3]  | 
 Sunday, April 06, 2008

The InnoTech 2008 conference is here in Portland, Oregon, April 16 – 17, 2008, at the Oregon Convention Center. There are a lot of events included in the conference or associated with it. You may be particularly interested in two of those events.

The Developers track runs on Wednesday, April 16, and Thursday, April 17, and features ten sessions. A number of my friends and colleagues are presenting:

And the other sessions look great, too. A big hand to my fellow SAO Development SIG committee member, Mark Lawler, for putting the track together.

The Open Source Summit runs on Thursday, April 17. One of the many things that I really respect about the open source community is their creativity when it comes to presentations and conferences. The Open In Oregon Lightning Talks session features seven snapshot 'lightning talks' by an outstanding panel of presenters. Nice.

InnoTech 2008 is presented by the Software Association of Oregon and EasyStreet Online Services.

Sunday, April 06, 2008 6:16:32 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Saturday, April 05, 2008

image Another stop on my whirlwind tour of C# awaits you on Microsoft's Channel 9. You can find it at Whirlwind 5: What's new in C# 3 - Automatically Implemented Properties, Type Inference, Initializer (10:56).

Since this is the first whirlwind session that explores the wonderful world of C# 3.0, I lead off with a brief timeline of .NET Framework, C#, and Visual Studio releases — platform, language, and tools. One thing is clear, Microsoft has continued to innovate on all three of these elements that affect the code we write and how we write it. And they intend for the .NET Framework to be a platform on which they will continue to innovate, so expect a significant release every year or two. Language releases are probably less frequent, and tools somewhere between the two. Embrace change.

The main value of automatically implemented properties and initializers is to simplify the syntax around some commonly occurring code.

While it looks like local type inference also is aimed at simplifying syntax, it has a higher purpose. In the next whirlwind session we'll look at anonymous types. I don't want to get ahead of the game, but with an anonymous type the developer does not give the type a name, but the type is known to the compiler. Well, since an anonymous type has no name, we have to use var to declare a variable of such a type. The same also goes for declaring a variable of a generic type that is parameterized by an anonymous type. So var can be both a convenience and a necessity. You'll want to give some thought to the effect of var on the readability of your code and decide when you want to use it. Opinions about when to use and when to eschew var cover the entire spectrum.

References

Automatically Implemented Properties, section 26.9 in Overview of C# 3.0, MSDN Library

Auto-Implemented Properties, C# Programming Guide, MSDN Library

var, C# Reference, MSDN Library

Implicitly Typed Local Variables, section 26.1 in Overview of C# 3.0, MSDN Library

Implicitly Typed Local Variables, C# Programming Guide, MSDN Library

Implicitly Typed Arrays, C# Programming Guide, MSDN Library

Object and Collection Initializers, section 26.4 in Overview of C# 3.0, MSDN Library

Object and Collection Initializers, C# Programming Guide, MSDN Library

Erratum

At 8:55, I show a collection initializer that is missing instantiation of the contained type. Here's the code with the error.

var circles = new List<Circle>
{
  { Origin =
new Point { X = 2, Y = 4 }, Radius = 2 },
  { Origin =
new Point { X = 3, Y = 6 }, Radius = 4 },
  { Origin =
new Point { X = 1, Y = 1 }, Radius = 3 }
};

The corrected initializer instantiates a new Circle for each item in the collection.

var circles = new List<Circle>
{
 
new Circle { Origin = new Point { X = 2, Y = 4 }, Radius = 2 },
 
new Circle { Origin = new Point { X = 3, Y = 6 }, Radius = 4 },
 
new Circle { Origin = new Point { X = 1, Y = 1 }, Radius = 3 }
};

I had it correct in my code (honest!) and must have copied it wrong to the slides. I guess the C# syntax checker in PowerPoint 2007 isn't as good as the one in Visual Studio 2008. (The syntax is written correctly in the next code slide at 9:57.)

As a bonus for enduring the correction, consider that the example illustrates that the syntax supports a collection of types derived from Circle.

public class TexturedCircle : Circle
{
 
public string Texture { get; set; }
}
var circles = new List<Circle>
{
 
new Circle { Origin = new Point { X = 2, Y = 4 }, Radius = 2 },
 
new TexturedCircle { Origin = new Point { X = 3, Y = 6 }, Radius = 4, Texture = "bumpy" }
};

Previous episodes

Saturday, April 05, 2008 8:46:46 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |