10 Things I Learned From the September MSDN Event in Atlanta
A week ago, I went to the September MSDN event in Atlanta, held at the AMC Parkway Pointe theater. The itinerary included presentations on LINQ (Language Integrated Query), WCF (Windows Communication Foundation) and Silverlight. Having seen live presentations on LINQ and WCF before, I hoped to justify the experience by seeing a dazzling Silverlight presentation, in the flesh.
Unfortunately, “dazzled” I was not.
However overall, the experience did satisfy.
10 Things I Learned
#1) You can customize LINQ’s generated SQL.
Of course, I knew they had to allow this sort of flexibility, but I didn’t know how they would. No worries though. Microsoft makes it really easy to do so. Since the objects that represent database entities derive from the DataContext class, you simply need to call the ExecuteQuery function and pass in your raw SQL like so:
using System;
using System.Linq;
using System.Collections.Generic;
namespace SampleCodeILiftedIMeanBorrowed
{
public partial class NorthwindDataContext
{
public IEnumberable <product> GetProductsByCategory(int categoryID)
{
return ExecuteQuery<product>(@”select * from products where categoryid={0}”, categoryID);
}
}
}
And, BAM! custom SQL, without the headache. And, you even get to genericize the return type.
SWEEEETTTT.
Scott Guthrie posted a fantastic LINQ tutorial (I ripped that example off his site) going into this technique (and others) in great detail. In one of his tutorials, he mentions the LINQ to SQL Debug Visualizer, which certainly comes in handy.
Those Microsoft guys…they thing of everything!
The entire LINQ programming model: extension methods, Lamda expressions and SQL-like keywords, brings a certain elegance to programming that we developers don’t get to see to very often. It makes programming in C# an almost sinful delight. C# really needed something like this for writing data processing code. Cuz MAN, did that SUCK before.
#2) Extension Methods are fun!
And, dangerous as hell, too.
Having the ability to add arbitrary methods to the System.String class makes me feel empowered like no other programmer has felt empowered before… while simultaneously, making me…
…want to drop a brick in my pants. A big one.
Suffice it to say, I haven’t used them yet. But, I’ll make sure to wear diapers when I do.
#3) I don’t want to edit WCF config files by hand.
Yet another MS XML config file format that I don’t want to learn. Who makes these things up?
Anyway, Glen Gordon mentioned a tool to help edit WCF config files, but didn’t mention where to get it. Perhaps one comes built into to VS.NET 2008. I’ll have to check on that.
Apparently, others feel that WCF needs a bit of help in the tools department.
#4) IIS 7.0 can host named pipes, TCP sockets, etc. for WCF services.
Wow. Didn’t know that. And, if you change your WCF configuration, IIS will automatically restart your service.
Man, this stuff is cool.
#5) WCF supports data contract versioning.
I took a bio-break during part of this presentation, so I missed the finer details, but it appears that through Attributes and function overrides, you can specify serialization order, default values for missing members and custom serialization logic to create forward-compatible data contracts and gracefully handle older clients.
Microsoft provides a detailed description of best practices for WCF and data versioning here.
#6) The debugger in VS.NET 2008 absolutely rocks.
Man, did the debugger in 2005 look this good? Due to the discouraging reports of performance and instability, I skipped VS 2005, sticking with VS.NET 2003 and moving to Java for most of my projects. I don’t think I’ll skip 2008, though. Debugging in Eclipse gets the job done, but Visual Studio has always stood in a class of its own when it comes to visual debugging.
#7) Silverlight 1.1 still has no official release date.
Dang it! I had hoped someone would let something slip. Even just a hatch-ling of a rumored release date. But, no…nothing of the sort.
…or maybe I just missed it. I looked down at the exact wrong moment while Glen Gordon quickly flipped through slides and said something to the effect of, “You guys don’t need to see that”. If I missed a slide giving 1.1 release details, I’m going to hang myself.
#8) Microsoft provides a debug version of the Silverlight.js.
I assume this gets shipped with the Silverlight SDK, but I haven’t looked. I thought I remembered reading something about it during the Silverlight beta. In any case, I’ll definitely take a look because I grow weary of running the regular Silverlight.js through a formatter just to refresh myself on their browser detection logic.
#9) For Silverlight applications with Managed Code, you should configure IIS to send back DLLs.
When you create applications with VS.NET 2008 it will more than likely deploy the DLLs to a directly called ClientBin underneath whatever directory contains the HTML file for your application. You should configure the ClientBin directory to return DLLs to the client so Silverlight can download them.
I don’t mention this in my tutorials since I do them all by hand and deploy them locally or on an Apache server, but for you IIS guys, this remains key to getting your applications working correctly.
#10) I could give an MSDN Event presentation.
Sure, I’m not as funny as Rory. Nor do I have Glen’s gift for clever yet clear explanation. But hey,…the demos I saw weren’t any better than mine! As a matter of fact, my (stolen) bouncing squares sample blows Glen Gordon’s cheesy spinning button Silverlight demo out of the water any day!
Just a joke. I know these guys put lots of hours and work into their presentations. Racing to beat the clock while showing Expression Blend and typing in code in front of a full house ain’t quite the same as writing quick Silverlight tutorials while sitting in the comfort of your own home…
…drinking a tall glass of…H2O (it’s a school night)
…in the nude… (don’t worry, I’m sitting on a towel)
…listening to an incredibly cheesy anime soundtrack (oh Chobits, how I love thee)
Was that TMI? I think that was TMI. Sorry. Moving on…
Honorable mention) Oh, crap…Halo 3 AGAIN??!
It must be an obsession. Or perhaps a rite of passage: to use Silverlight, you must view the Halo 3 trailer using Silverlight (in IE, of course
).
During the Silverlight presentation, they ALMOST treated us to a silver screen version of the Halo 3 trailer (I say “almost” because they couldn’t get the sound working). I admit, seeing the Halo 3 trailer on the big screen is cool…or at least WOULD have been cool…if we all hadn’t seen it 8000 times already.
The presenters
Allow me a quick second to give the presenters a plug:
Jim Wooley gave the first presentation on LINQ. He obviously knew his stuff and he just recently published a book on the topic. As of right now, you can pre-order on Amazon by clicking on the image link below:
Unfortunately, he didn’t get to present everything because he ran out of time (a disease that plagued every presentation). In my opinion, he spent a little too much time typing in code. I know presenters want to make things look realistic and believable, but you don’t need to convince me that you can make the compiler choke. I believe you.
Using VS.NET’s code snippets can save valuable time; time better spent explaining how LINQ will work in conjunction with the ADO.NET Entity Framework (which I really hoped he would go into. I’ll have to check out that new video on Channel 9).
Glen Gordon did the WCF presentation and parts of the Silverlight presentation. I really can’t say enough good things about Mr. Gordon. He speaks clearly, gives thorough explanations (when time permits) and admits when he doesn’t know something (but will happily look it up for you later). A vibrant and lively presenter, he makes sitting in a chair for hours and straining your neck to see (because you got in late and had to sit in the front row) an almost pleasant experience.
And, he made good use of pre-typed code snippets.. THHAAAT’S what I’m talking about. My MAN!
Lastly, Shawn Wildermuth gave us a more in-depth look at Silverlight 1.0. He obviously has worked closely with Microsoft on Silverlight; he appeared very much “in the know” about Silverlight’s roadmap and potential feature set. Apparently he runs a consulting company and tours the country teaching intense 3-day Silverlight courses. Very cool. Seeing his JS code in action made me want to do some Silverlight 1.0 programming, just for fun.
Conclusion
Wow, I wrote a lot more than I thought I would. I considered this MSDN event a success, but not quite as good as the last one. Also, in between presentations, I heard people complaining that they couldn’t follow all the demos because the presenters tried to squeeze too much information into too little time. Again, while it didn’t bother me (except for in the first presentation), I can certainly understand why some people would feel this way.
Oh, and if you hoped to hear about a Microsoft software crash during the demo, then keep hoping because not even VS.NET 2008 crashed. And, they used the Beta 2 version. However, Firefox did crash trying to run the Silverlight Airlines demo. One could argue that the Silverlight plug-in caused it, but hey, Firefox crashes on me while at idle (and yet still devouring memory), so it’s all good.
Leave a Donation
If you found this article helpful, please leave a donation for Dave, so he can help you again. As always, thank you for your support!




I’m glad you appreciated the presentations and thank you for the book plug. I too wish we had more time as there was too much content to cover in the time provided and we had to field a number of questions which took the presentation down a slightly different route than the script laid out. I still hope to post the XML demo that I was unable to present due to the time. Keep an eye on the blog for more on this.
LINQ to Entities is a complete talk unto itself. Since it is shipping post VS 2008, we didn’t focus on it at this time. I believe they talk about it a bit in this month’s MSDN event covering Astoria. Maybe that will give you a bit more of what you want.