Friday, March 28, 2008

In my view... U-Prove is the equivalent in the privacy world of RSA in the security space. It does things we wouldn’t have otherwise thought possible.
— Kim Cameron

On 6 March 2008 Microsoft acquired Credentica, a Montreal-based company with some remarkable cryptography technology called U-Prove. The technology allows a user to disclose the absolute minimum information required in any given situation. U-Prove has been developed by Stefan Brands over the past two decades. In addition to acquiring the U-Prove technology and patent portfolio, Stefen Brands, and his colleagues Christian Paquin and Greg Thompson have joined Microsoft's Identity and Access Group. The U-Prove technology will be integrated in Microsoft's user-centric CardSpace identity metasystem and Windows Communication Foundation.

Stefan Brands, who ignored several previous offers, is excited about the Microsoft acquisition.

In turn, Microsoft's identity architect, Kim Cameron, is notably delighted with the acquisition.

Our goal is that Minimal Disclosure Tokens will become base features of identity platforms and products, leading to the safest possible Internet.  I don’t think the point here is ultimately to make a dollar.  It’s about building a system of identity that can withstand the ravages that the Internet will unleash. That will be worth billions.
— Kim Cameron

Kim has several blog posts related to the acquisition, which I link to and quote from here:

Microsoft to adopt Stefan Brands’ Technology (6 March 2008)

In my view... U-Prove is the equivalent in the privacy world of RSA in the security space. It does things we wouldn’t have otherwise thought possible.  At one time “public key” was considered an oxymoron - but the properties of RSA were so compelling they completely changed our thinking about keys.

The same, I think, is true of the zero knowledge proofs and “blinded signatures” Stefan has perfected. When you first hear about their capabilities, you say, “Well, that’s impossible.” But if you look into the math, it's not. It actually works.

If you are inclined to look into the math, Stephan Brands's book, Rethinking Public Key Infrastructures and Digital Certificates; Building in Privacy (MIT Press, 2000, ISBN 0-262-02491-8) is available in PDF form. Like most dense and chewy material, I do better reading my mathematics better in a dead tree format.

Know your need (6 March 2008). Need to know, know your need, need for security and privacy now.

Reactions to Credentica acquisition (9 March 2008). A reaction rodeo round-up.

Ralf Bendrath on the Credentica acquisition (9 March 2008)

Ralf Bendrath is a person who thinks about privacy deeply...

"Microsoft has acquired... Credentica. While that probably means nothing to most of you out there, it is one of the most important and promising developments in the digital identity world."

Microsoft says, “U-Prove it” (10 March 2008). Quotes Joe Wilcox at length, addressing some of Ralf Bendrath's comments.

Brendon Lynch, Microsoft Director of Privacy Strategy, helps explain what it all means.

In the great world beyond Redmond, Burton Group Identity Blog observes that Microsoft acquires Credentica, and there has been considerable press coverage by Washington Post, Network World, PC World, and eWeek's Microsoft Watch ("This is a damn, exciting acquisition." Hey, Joe, what is that comma doing there?)

I am working on getting my head around zero-knowledge proofs and minimal disclosure tokens. It is clear that I've got some deep reading ahead. Exciting times.

Friday, March 28, 2008 8:57:42 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

If you are ever attending a BOF session and the moderator is pitching a product or delivering a presentation, call him or her on it...

Hunter in Roanoke, Virginia, has a few blog posts about Birds-of-a-Feather (BOF) sessions at the TechEd 2008 conferences. I love the humorously title of his post "Birds of a Vendor?" where he asks a great question:

A quick look through the Birds of a Feather voting area (for the IT Pro Conference) shows a lot of sessions that appear to be sponsored by vendors. I wonder if they will turn into a sustained marketing pitch.

Absolutely not!

I posted a reply in the comments. Here's one part that I want to share with everyone attending BOF:

I absolutely agree with you, and we have heard loud and clear from past conferences, that BOFs are not appropriate for marketing products or services. Nor are they presentations or lectures. We communicate that to all of our moderators. Okay, sometimes those old presentation and marketing habits are hard to break, and that’s where you, the good old community, come in. If you are ever attending a BOF session and the moderator is pitching a product or delivering a presentation, call him or her on it. Be polite, but be firm. You can say that all of you came to discuss the subject together, and you’d like to hear what other people in the room think about the subject. [More...]

And a minor technical correction: vendors don't sponsor the BOF sessions they moderate. They volunteer just like the rest of the moderators and hosts.

Proposals for Birds-of-a-Feather sessions are accepted through Wednesday, April 2, and voting continues through Monday, April 7, 2008. Use these links to propose a BOF session for TechEd Developer 2008 or TechEd IT Professional 2008.

Friday, March 28, 2008 4:51:50 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, March 26, 2008

If you've been following my whirlwind tour of C# on Channel 9, with episode 4 posted I've now covered the features that I consider to be the major ones — the ones that have the biggest impact on the way we write code. There are other features that were also introduced in C# 2.0, and it is only fair to point out what I left out.

The definitive reference for 2.0 features is the article What's New in the C# 2.0 Language and Compiler, in the Visual C# Getting Started, in the MSDN Library. The topics I opted to not cover are:

Okay, your curiosity should have gotten the better of you by now. Go look up covariance and contravariance in delegates. Then you'll be able to write better code and impress your friends with sesquipedalian verbiage.

Wednesday, March 26, 2008 4:48:58 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

My fourth screencast on modern C# language features is posted on Microsoft's Channel 9 — Whirlwind 4: What's new is C# 2 - Accessors, Static Classes, Nullable Types (9:40). This installment wraps up the major C# 2.0 features, so next time we'll be jumping into the C# 3.0 goodness.

In addition to a few resources on today's topics, I've also provided some code showing a sample of using accessor visibility and a static class. And for the careful listener, I  have some small corrections to the screencast.

Resources

Asymmetric Accessor Accessibility, C# Programming Guide, MSDN Library

Access Modifiers, C# Programming Guide, MSDN Library

Static Classes and Static Class Members, C# Programming Guide, MSDN Library

static, C# Language Reference, MSDN Library

Nullable Types, C# Programming Guide, MSDN Library

?? Operator, C# Language Reference, MSDN Library

Nullable<T> Generic Structure, .NET Framework Class Library, MSDN Library

C# Whidbey Featurette #3: Static classes, blog post by Eric Gunnerson, C# program manager. Eric provides some justification for the static class in C# 2.0.

Get a Charge From Statics with Seven Essential Programming Tips, K. Scott Allen, MSDN Magazine, June 2005.

Nullable types in C#, blog post by Eric Gunnerson, C# program manager.

Create Elegant Code With Anonymous Methods, Iterators, And Partial Classes, Juval Löwy, MSDN Magazine, Visual Studio 2005 Guided Tour issue, 2006 (Vol. 21, No. 3)

Code sample

Here is a sample that illustrates use of accessor visibility and static classes. 

using System;
using System.Collections.Generic;

namespace CSharpWhirlwind4
{
 
public class Animal
  {
   
private string name;
   
public string Name
    {
     
get { return name; }
     
private set { name = value; }  // restrict accessor visibility
    }

   
// private constructor
    private Animal( string name ) { Name = name; }

   
// nested static class, manages Animal instances
    public static class ClassFactory
    {
     
private static Dictionary<string, Animal> animals
        =
new Dictionary<string, Animal>();

     
public static Animal Create( string name )
      {
       
if ( !animals.ContainsKey( name ) )
          animals[ name ] =
new Animal( name );
       
return animals[ name ];
      }
    }
  }

 
// ...
}

The Animal class has a Name property which is marked with public visibility. Within the Name property, the set accessor is declared with private visibility, so that only members of the Animal class can set the Name property.

The Animal constructor is also declared with private visibility, so Animal cannot be instantiated except by members of the Animal class. The constructor uses the private set accessor on the Name property.

Inside of the Animal class, there is a nested class named ClassFactory which is responsible for managing Animal instances. The developer's intention is that Animal.ClassFactory should only contain static members, and therefore never be instantiated. That is indicated by declaring the class to be static.

imageTake a look at the resulting assembly in ildasm. The ClassFactory class (.class) is marked as abstract   and sealed. As an abstract class, it cannot be instantiated. And because it is sealed, it cannot be inherited by another class. Also note that the static ClassFactory has a default class constructor (.cctor), which is in fact permitted on static classes since that is a static member.

Since ClassFactory is a nested class in the Animal class, it is a member of the Animal class, and so has access to Animal's private constructor.

In this example, the ClassFactory ensures that no more than one instance of an Animal of a given name is created, as illustrated here.

Animal w1 = Animal.ClassFactory.Create( "wombat" );
Animal w2 = Animal.ClassFactory.Create( "wombat" );
Debug.Assert( w1 == w2 );   // two references to the same object

Errata

The devil is always in the details.

At 1:31, in a bout of overly excessive exuberance, on accessor visibility I said  you can change the visibility of "one, the other, or both" accessors.  Every word of that is true... except for the "or both" part.

At the end of the section on static classes (4:17) I misspoke when I said the static class "exists only because it has private members." Pretend you really heard me say it "exists only because it has static members."

Previous episodes

Wednesday, March 26, 2008 3:12:59 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, March 24, 2008

Last year we put together a team of folks from Corillian, Arcot, Wachovia, and the Microsoft CardSpace team and jointly created a proof-of-concept demo for a user logging into an online banking application using Microsoft CardSpace. I delivered the demo in the Microsoft booth at the RSA 2007 Conference for a whole week, and we had a lot of traffic since the technology was featured in Bill Gates's keynote address at the start of the conference.

Thanks to CardSpace team member Nigel Watling, you can view the demo on Microsoft's Channel 9. We designed the demo so we could use it to tell many different stories. This is one of them.

Monday, March 24, 2008 2:31:57 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

I am looking forward to reading Bob Uva's new technical blog, http://bobdotnet.wordpress.com. Bob is a friend and colleague at CheckFree, and he's particularly keen on sharing his impressions of WCF.

Monday, March 24, 2008 11:14:40 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, March 23, 2008

image My whirlwind tour of C# features continues with Whirlwind 3: What's new in C# 2 - Partial types, anonymous methods on Microsoft's Channel 9.

Partial types are quick and easy: split class, struct, and interface definitions across multiple files. I don't cover them in the screencast, but in addition to partial types there are also partial methods, see the resources for details.

Anonymous methods are more involved: pass a block of code inline anywhere a delegate is expected. It's a good idea to understand this concept, since lambda expressions in C# 3.0 build on anonymous methods. You'll see that in a future whirlwind episode.

Resources

Partial Classes and Methods, C# Programming Guide, MSDN Library

partial (Type), C# Reference, MSDN Library

partial (Method), C# Reference, MSDN Library

Anonymous Methods, C# Programming Guide, MSDN Library

Delegates, C# Programming Guide, MSDN Library

delegate, C# Reference, MSDN Library

Create Elegant Code With Anonymous Methods, Iterators, And Partial Classes, Juval Löwy, MSDN Magazine, Visual Studio 2005 Guided Tour issue, 2006 (Vol. 21, No. 3)

Introduction to C# Anonymous Methods, Patrick Smacchia, TheServerSide.NET

Fun with Anonymous Methods, blog post by Brad Adams. The mischievous kind of fun.

Closures and Continuations, blog post by Don Box.

Previous episodes

Sunday, March 23, 2008 9:45:02 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Friday, March 21, 2008

Don Box and Charles Torre interviewed She-Who-Watches-Microsoft in All About Mary Jo on Channel 9. The informal and slightly irreverent video was filmed backstage at the Lang.NET 2008 conference.

If you're not familiar with her prodigious body of work, Mary Jo Foley has been writing All About Microsoft for ZDNet since September 2006. And prior to that gig she wrote Microsoft Watch for eWeek for eleven years.

In the interview, Don's unrelenting pursuit of the truth and subtle sleuthing uncovers that Mary Jo has written a new book, Microsoft 2.0, due out later this spring. It purports to predict what Microsoft AB (After Bill) will look like.

Note to Don about your new career interests: you really do seem better suited for the sensitive architect role than investigative journalism. I am not saying don't follow your dream, but in the meantime keep your day job.

Friday, March 21, 2008 6:54:07 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

PDC 2008 I keep getting asked this question, so I bet others are asking as well.

Yes, the dates for PDC08 have been announced: 27 – 30 October 2008 in Los Angeles, California. Save the date, and clear the time with your boss, spouse, entourage coordinator, indoor Ultimate Frisbee league, and anyone else who normally has a lock on your coordinates.

No, no other details have been announced yet. I think that Microsoft focused on  TechEd 2008 at the moment.

But you can subscribe to the PDC event RSS feed so that updates are delivered straight to you.

Friday, March 21, 2008 10:37:49 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, March 19, 2008

The talks from the 2008 Lang.NET Symposium (28 – 30 January 2008) have been published for your viewing pleasure. The Talks page lets you choose between viewing in the browser using Silverlight, or a viewing .wmv file. If you choose the Silverlight option, hover your mouse near the bottom of the video for playback controls.

I sing the praises of Jimmy Schementi who put them up earlier without realizing the demand for them, and incurred the wrath of his ISP for bogarting the bandwidth. Now the talks are back, and some initial link boo-boos appear to be all better now.

Ted Neward already posted his copious highlights of the symposium (day one, day two, and day three), as well as list of his favorite videos. Ted spoke at Lang.NET on Scala.

Wednesday, March 19, 2008 9:48:55 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

Whirlwind 2: What's new in C# 2 - Iterators My next whirlwind C# tour screencast is up. Whirlwind 2: What's new in C# 2 - Iterators is now on Channel 9 for your viewing pleasure. In just nine minutes you can learn what iterators are and what problem they address. Get down. Get funky.

Resources

Iterators, C# Programming Guide, MSDN Library

yield, C# Reference, MSDN Library

Create Elegant Code With Anonymous Methods, Iterators, And Partial Classes, Juval Löwy, MSDN Magazine, Visual Studio 2005 Guided Tour issue, 2006 (Vol. 21, No. 3)

Fun with Iterators and state machines, Under The Hood - Matt Pietrek (blog). Focus on the cool compiler and runtime magic that makes iterators possible. Based on prereleased Whidbey bits, but you get the idea.

Iterators with C#2, Patrick Smacchia, TheServerSide.net.

Using C# 2.0 iterators to simplify writing asynchronous code part 1 and part 2, Michael Entin's notebook (blog). Stretch your mind: using iterators to implement the .NET asynch pattern.

Previous episodes

Whirlwind 1: What's new in C# 2 - Generics (notes)

Wednesday, March 19, 2008 5:00:00 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

image Erik and Monica Mork are rocking and rolling on their new Silverlight podcast, SparklingClient.com. The challenge, of course, is to relate a rich graphical user experience (UX), and developer and design experiences, in an audio podcast. Erik and Monica are Portland area developers, and enthusiastic about their topic.

Erik went to MIX08 for the Silverlight 2 Beta 1 release. Download the bits, and the tool, and get started. Then let Sparkling Client be your guide.

Wednesday, March 19, 2008 3:51:06 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, March 18, 2008

Get your hands on slides, code samples, and whatnots from the Boise Code Camp 2008 sessions. My session just points back to posts on this blog: no surprises there. That is all.

Tuesday, March 18, 2008 4:01:38 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

The Portland Adobe Developer User Group is hosting Mike Culver, Amazon Web Services Evangelist, on Thursday, 20 March 2008 at 6:00 PM, speaking on "What's Possible in a Post-Web 2.0 World?" at PCC Sylvania, Library Room 112. Networking begins at 5:30 PM.

Innovation continues at a mind-bending pace, and this presentation will showcase some thought-provoking new ideas built on Web Services. You will also learn how others, empowered by technology advances—known as “Web Scale Computing”—created businesses that weren’t practical until recently... (More...)

Amazon has done phenomenal things with Amazon Web Services (AWS), so this ought to be great.

See the Upcoming Meetings for the Portland Adobe Developer User Group for additional details.

Tuesday, March 18, 2008 2:26:07 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, March 17, 2008

Whirlwind - C# GenericsMy whirlwind screencast series about C# 2.0 and 3.0 language features premiers today on Microsoft's Channel 9. Wahoo!

This is a whirlwind tour of the major language features that have been introduced in C# since the language was first released. The idea is to cover a lot of ground quickly, so that you can get the broad perspective and know what features you want to spend more time learning about. The objective is to be a mile wide and an inch deep.

In this first episode I look at a major feature introduced in C# 2.0: Generics. Watch it on Channel 9:

Whirlwind 1: What's new in C# 2 - Generics

Thanks to my gracious host and producer, Bruce Kyle, Microsoft ISV Advisor. Catch Bruce and his team on the US ISV Developer Evangelism blog.

Resources

Here are a couple of resources for digging deeper into C# generics.

Generics, C# Programming Guide, MSDN Library.

An Introduction to C# Generics, Juval Löwy, Visual Studio 2005 Technical Articles, MSDN Library.

Anders Hejlsberg - What's so great about generics? Channel 9 video. An elevator speech by the fellow who's described himself as chief randomizer on the C# team.

DotNetRock Show #34: Juval Löwy (Again). "Carl and Mark talk to Juval about, among other things, the new version of C# (2.0). Of the new features, Juval's favorite is generics."

Generic Programming Under .NET, and CLR Generics Versus C++ Templates, Stanley B. Lippman, MSDN Magazine, April and June 2005. Pair of articles compare and contrast generics and C++ templates, respectively, by a noted C++ authority.

The Design and Implementation of Generics for the .NET Common Language Runtime, Andrew Kennedy and Don Syme, Microsoft Research, 2001. If you like digging really deep, this is the original research paper on how to introduce generics into the CLR.

If you have a great C# generics resource that I didn't mention, leave a comment about it.

Monday, March 17, 2008 1:55:35 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, March 13, 2008

Last month Mary Jo Foley wrote that Microsoft is working on a new language named D as part of Oslo. Before we leap to conclusions about what D might stand for, let us recall that the C language was so named because it was derived from B which was a stripped down version of BCPL. Such is the stuff of software engineers' so-called humor. So much for musing.

Indeed, D is a declarative modeling language. According to Mary Jo, Microsoft's Chief Modeling Officer (nice title) Don Box spoke about D at the 2008 Lang.Net Symposium at the end of January. D, says Don, is about "putting more and more of your application into data and putting less in code." That is central to Oslo, the next technology wave from Microsoft, which has as its goal "making a new class of model-driven and service-enabled applications mainstream."

A few days after Mary Jo's article, InfoWorld ran an article covering Bill Gates speaking at the 2008 Office System Developers Conference on Microsoft's declarative modeling language effort, but Bill didn't mention D by name. Okay, D may very well be a project codename, so let's not get too invested in the name. And even if it is the current name of the language, what are the chances that marketing will be able let an opportunity like that go by unspoiled?

Between these two articles, Don and Bill have some pithy, interesting things to say about declarative languages and their importance in modeling complex systems.

Thursday, March 13, 2008 9:04:41 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, March 11, 2008

Slides are now available from the talk I gave with Jason Mauer, The (Re-)emergence of Declarative Programming, at Software Association of Oregon Development SIG on February 21, 2008.

The session explored declarative programming and its history, then examined recent interest in declarative styles of programming, particularly on Microsoft platforms, and what forces are driving the resurgence of declarative programming.

Join the SAO Social Network site (if you're not already a member), and go to the DevSIG group to access the slides.

Tuesday, March 11, 2008 1:41:05 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

Proposals have been coming in for Birds-of-a-Feather sessions at TechEd Developer 2008. Take a look at the ones we've received so far, and vote for your favorites.

And now is the time to submit a BOF proposal of your own. As I've said, this is a great way to get involved in the professional development community and connect with people who share your passion about some aspect of technology, community, or careers. I hear that moderating a BOF session also looks good on resumes.

Do it today so other people can vote for your session!

Tuesday, March 11, 2008 1:38:20 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 

In order to claim my blog on Technorati, I need to post an obligatory link to Technorati Profile.

Okay, okay, now everybody move along. There's nothing else to see here.

Tuesday, March 11, 2008 1:37:12 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Monday, March 10, 2008

Well it's eight o'clock in Boise, Idaho.
I'll find my limo driver. Mister, take us to the show.
— What's Your Name, Lynyrd Skynyrd

Boise, Idaho Flying in to Boise means getting to see the beautiful surrounding mountains from the air. Boise is situated in a valley basin with mountains all around it. With the winter snow on them they are simply stunning. And the view from the ground isn't bad either.

I got in Friday in time for the presenter party with food, drink, familiar faces, and an agile exercise of replacing the schedule in the attendee packs. Scott Hanselman was in the house, fresh in from MIX08, with his laptop out on the bar evangelizing to the bartender. It was a nice, warm welcome to town.

Boise Code Camp had all appearances of a great success. Scuttlebutt has it that the final attendance at the door was around 375. Hokey smokes, Bullwinkle! Boise has just raised the bar for code camps in the northwest. You guys rock.

My talk, The New Programming Model — C# 3.0 and .NET 3.5, was well received. I had 300 slides and a ten minute demo in 60 minutes, and not a single bullet point anywhere. Okay, some slides only had one or three words on them. I got some great feedback on the talk, thanks campers!

I am not going to post my slides since the format leans so heavily on the delivery. And even compressed that is a pretty hefty download. Instead, I am announcing here that I'll be working with a friend at Microsoft to record the session as a series of short videos for your nerd viewing pleasure. We plan to get the first ones in the can this week, and we may need another week or two on production and working out hosting. Watch the blog for details.

In the meantime, here are some great starting points for digging deeper into C# 2.0 and 3.0 features.

Inspiration for the presentation format came from Dick Hardt's keynote address at OSCON 2005 on Identity 2.0; and he, in turn, was inspired by the lectures of law prof  Lawrence Lessig.

I enjoyed the other sessions that I went to at camp. I am only disappointed that the laws of physics prevented me from being in two sessions at the same time. Mark Miller of Devexpress got crazy passionate about creating great UX for two solid hours, but I had to duck out after the first one to go give my talk.

The afters party was a nice affair, and we toured the fabled and swank Code Trip bus. So that's how rock stars tour! I'll be meeting up with the Code Trip crew again when they hit Portland on April 10 for the PADNUG MIX-A-LOT, and then as they make wind up their tour in Seattle for the Microsoft MVP Summit.

A great big note of appreciation goes to this year's camp director, David Starr, and to his personal support team and lovely wife, Eleanor Starr. Thanks also to Chris Brandsma, chief session wrangler, and Richard Hundhausen for fine hospitality. Congratulations to everyone on a superlative code camp!

Monday, March 10, 2008 11:43:26 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Thursday, March 06, 2008

imageI was downloading something from Microsoft today, when I was asked if I want to see the Beta version of the new Microsoft Download Center. Using Silverlight. Oooh, shiny. Take me there now.

imageBetter UX is just part of the new Download Center, but that improvements here are long overdue. I like the dynamic bits to browse downloads and callouts for individual downloads. A whole lot easier on the eye and rich information to drill down through. After all, when you want to download some software, how much hide-and-seek navigation ("Nope, this isn't the one I want.") and synthesizing information in your head ("Oh, you mean this goes with that?") is the average Jane willing to tolerate? This I know: after she gets used to this site, her tolerance for clumsy and clunky will go way down.

imageThe downloads by category pages are also far better organized. This shot shows slick Silverlight action revealing details of item and a Download button that takes you to the download page. I would like to be spoiled like this in more applications.

So far, so good.

Check it out. If you've got some feedback for the team, let them know.

Had enough, or don't like it? Locate the Exit beta link in the upper right corner.

Thursday, March 06, 2008 2:59:44 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Wednesday, March 05, 2008

If you're going to TechEd Developer 2008, June 3–6, then the time is now to propose a Birds-of-a-Feather session for the conference.

Get involved

I volunteer with INETA as co-chair of the Birds-of-a-Feather track at TechEd Developers 2008, and I encourage you to get involved and give back to the professional community by leading a Birds-of-a-Feather session. "Birds of a what?" I hear you ask.

Okay, imagine you're at a conference with, say, about 10,000 of your closest geek buddies. And you know that somewhere among the teaming multitudes there must be two or three dozen people who share your passion about that special topic that is near and dear to your heart. How do you find each other, connect, and exchange ideas? You hold a Birds-of-a-Feather session, that's how.

A Birds-of-a-Feather (BOF) session is an open discussion, not a presentation or lecture. No slides or demos allowed. Let's just sit down and talk. And after many hours of conference breakout sessions with talking heads in darkened rooms, it is truly refreshing to turn the lights on and talk together as peers.

BOF sessions are community driven. The topics are proposed by you, selected by you, moderated by you, and attended by you — you the conference attendees, you the professional community. BOFs are about what you want to discuss, separate from the conference agenda and sponsors.

This is your chance to facilitate a discussion with others at the conference who share your passion about your topic. You don't need to be a recognized expert or rock star, just have an understanding and keen interest in the topic, and be willing to moderate a session. Moderating a BOF is also a great way to get your name out in the community.

Critical acclaim

Over the past several years, INETA, Culminis (our sister organization on the IT Professional side of the house), and the entire community have stepped forward to make the BOF sessions a valuable and vital part of TechEd. And Microsoft has matched our enthusiasm with their commitment. BoF sessions now run concurrent with the conference breakout sessions throughout the day. Microsoft hosts an All-BOF evening catered with food and drink and plenty of BOF sessions. And BOF sessions have been integrated in the conference materials and online scheduling system. Last year, hundreds of people participated in the BOFs. Together we have achieved great things.

Jon Flanders of Pluralsight rates Birds-of-a-Feather sessions among the three best things at TechEd last year.

Get involved now!

These essential conversations cannot happen without you proposing and leading BOFs that are important to you.

Please propose a Birds-of-a-Feather session for TechEd Developers 2008. We are seeking your BoF proposals by March 19, 2008.

Yes, there are two TechEd North America 2008 conferences

If you haven't heard, Microsoft is dividing the immensely popular TechEd into two separate conferences — TechEd Developers , June 3–6, 2008, and TechEd IT Professionals, June 10–13, 2008 — in Orlando, Florida. Here are some links to help you find your way to the BOFs in each conference

TechEd Developer, June 3–6, 2008 — Conference home | TechEd Community Page | BOF Proposals | BOF Community Sponsor is INETA

TechEd IT Professional, June 10–13, 2008Conference home | TechEd Community Page | BOF Proposals | BOF Community Sponsor is Culminis

Wednesday, March 05, 2008 5:46:43 AM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Tuesday, March 04, 2008

I've got my tickets in hand and I am heading to beautiful Idaho this Saturday, 8 March 2008, for Boise Code Camp 2008. I attended last year's edition, and it was a first-class event all the way. This year there will be 63 sessions (including mine) and 46 presenters, along with lunch and dinner packed in a day. And like code camps everywhere, it is always free. If you are anywhere near the area, it is not too late to register to attend.

My session, a Lawrence Lessig-style romp through everything new in C#, is at 3:30 PM.

The New Programming Model — C# 3.0 and .NET 3.5

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 on .NET 1.1 — or use newer versions but don't know about or use many of the new features. C# 3.0 and .NET 3.5 have been released, so let's look at what's changed. In this lightning-fast session we'll cover virtually every new feature of C# and the CLR added since 2003. That way you can make smart decisions about which technologies to pursue without getting lost or feeling overwhelmed. Fasten your seatbelts, we're going for a ride!

The day concludes with a party with the Code Trip crew. I met Jason last night for microbrews and he was filling my head with all the cool stuff they've got going on with the trip and the bus. They're picking up the bus in Las Vegas tomorrow, winging through Salt Lake City, and will be in Boise on Saturday. I want a stem to stern tour of this magic bus.

Tuesday, March 04, 2008 7:15:28 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, March 02, 2008

Welcome to my new blog, Visual Stuart .NET. My old blog was getting rather, well, old, and some of the material was rather dated. I determined it was worth more to you, gentle reader, to pull the plug on the past, than spend time preserving a few modest gems.

Knowledge does not keep any better than fish.
— Alfred North Whitehead, 1929

Besides, there is a whole new word to explore. Last week was the world wide launch of Microsoft's project Orcas, comprised of .NET 3.5, Visual Studio 2008, C# 3.0, and Windows Server 2008. There's more to come, such as the .NET 3.5 SP 1 with ASP.NET MVC and the ADO.NET Entity Framework, and SQL Server 2008 expected in August 2008.

So let's get started in the tradition of all beginnings since Brian Kernighan and Dennis Ritchie.

using System;

namespace VisualStuart
{
  
class Program
  {
    
static void Main( string[] args )
    {
      
Console.WriteLine( "Hello, world!" );
    }
  }
}

 

Deep cleansing breath in. Hold. And exhale. Excellent. Let's begin.

Sunday, March 02, 2008 9:05:25 PM (Pacific Standard Time, UTC-08:00)  #    Disclaimer  |  Comments [0]  |