H'asta la Vista

Well I gave it my best shot but unfortunately there were too many bits missing for me to be able to run with it as the platform for running the Guerrilla WinFX class on Nov 7th. I've repaved on to Win2003 now and we'll run on that.

The three things that were the crunch for me were:

  • No IIS
  • No MSMQ
  • No ability to project through a projector (or at least none that I could get to work)

So its a wait for beta 2 and re-evaluate then

Httpcfg.exe Found!

In a previous post I was bemoaning the fact that httpcfg.exe does not ship with Vista or the WinFX SDK. This then sent me on a quest to find a copy.

After searching the web a bit I discovered it was on the Windows Server 2003 CD - ah don't have one of those to hand. Back to the drawing board

Ahh good news - you can build it from source as it comes with the Platform SDK. Serveral hours later and one Platform SDK installed, can I find the source? No. Back to the drawing board.

More searching revealed it was part of the XP SP2 Support Tools - now thats more like it. So I downloaded them and they refused to install on Vista (not XP they claimed). So I set the compatibility to XP for the executable and it still didn't work. Back to the drawing board.

Finally I rummaged through some old Yukon tech preview CDs I had and came across a Win2003 evaluation disk. On here was the support tools MSI which thankfully installed without checking it was installing on Windows 2003.

So now I am running as non-admin self-hosting services with HTTP endpoints quite happily.

Vista, non-admin and httpcfg.exe

More from the Vista battlefront.

OK so I'm looking to develop with least privilege (Dominick would be proud of me). So I am running on Vista under a user account (i.e. non-admin). As the WinFX curriculum lead for DevelopMentor I kind of need to be able to do things like write WCF (Indigo) code. So, knowing that non admins can't register namespaces with http.sys I realised that I had to run httpcfg.exe to register the namespace I wanted and make it available to the account I am running as as non-admin. Now Dominick has a really neat tool for generating the arcance syntax that httpcfg uses so I downloaded that and got my command line ready ...

'httpcfg' is not recognized as an internal or external
command, operable program or batch file.

hmm ...

So it turns out that httpcfg.exe - the tool you need to do self hosting for http endpoints in WCF while not running as admin is not part of Vista, WinFX or WinFX SDK. And you need to self host if you want to run any protocol other than HTTP until beta 2. And svcutil.exe can't  bind to a non-http endpoint before beta 2. So all together, if you want to run as non-admin under Vista, you really need httpcfg.exe at the moment.

Come one! Can we please get httpcfg.exe distributed with the WinFX SDK at least.

Running with Scissors

So Microsoft call it dogfooding. I guess I had to take the plunge on a number of fronts. I've installed Vista on my laptop - yes, not in a VPC. Not only that I have now abandonned by .NET 1.1 dev environment (theres a major repave on the way if I get a 1.1 consulting gig ;-) ). I decided, as we are going to run (assuming I don;t have a completely hideous experience) the first run of Guerrilla WinFX on Vista, that I would repave my machine on to the same config as the course will run on.

So I installed Vista non my Dell Precision M60 (NVIDIA FX go700) and it went slowly but smoothly. Unfortunately it turns out there is not LDDM driver for my video card so I don;t have the Aero Glass shell. However, I'm not doing this for the wizzy graphics (although they would have been nice) rather to make sure all my samples and labs work in the config I've specified for the course machines. 

Here is my install experience:

Vista: very slow but OK until the supplemental drivers (I think thats where they infill hte missing Vista drivers with XP ones). It froze after installing my network card - running it again found nothing else to install although I do have a couple of component s it doesn;t know what to do with.

WinFX runtime - no problems - installed clean

VS 2005 beta 2 Team system (PDC disks). Would not install off the DVD, started asking me to insert the DVD - "its in there you fool!!!". So I copied it to my external HD and the rest of the install was no problem until it came to the compact framework bits and some driver was missing. I don't care about the CF at the moment so not an issue.

WinFX SDK and VS extensions no problem. I looked for the Workflow projects and found they weren;t there - theres a separate install on the PDC DVDs.

Office - no problems. However I'm having some issues getting authentication to work against one SMTP server. The server is owned by Ian Griffiths so I could blame him instead ;-).

So I then install World of Warcraft - yes I do spend some of my time running about as a Gnome who can summon demons - well sue me. The install was fine but I didn;t want to wait for the painful online patching process so I downloaded the full patch. I had to copy the patch file into the WoW install directory and run the patching software as admin and it all worked.

I should mention that not only have a switched onto a beta OS but I've started running as non-admin (am I mad?). Running as non-admin as so far proven OK - but I've alot of things still to try. The one isue I had so far (that wasn't obvious) was that the WoW online patching software requires admin access. So you can run WoW as non-admin, you just can't get any updates - which i guess OK as you;re patching something in the program files directory.

I started off not really liking Vista due to some of the pain - but I have to keep reminding myself that its beta software - which is kind of cool that I have to remond myself - its not staring me in the face the whole time. I'm surprised its so stable really - I've defragged my HD with it which I thought was very brave.

Anyway more on my Vista experience to come.

PDC Run Down

Well the PDC has ended and so I guess its time to reflect on stuff that has been going on this week. I guess the big news for me that I can talk about is that I'm co-authoring DevelopMentor's Guerrilla WinFX course with Jon Flanders, Dominick Baier, Pierre Nallet and Brock Allen. The first run will be on Microsoft's campus on the 7th November.

The big announcement for me was the Windows Workflow Foundation (WWF). This is an integral part of WinFX and means you'll never have to write a state machine again and can write declarative flows through processing that are managed by the workflow engine. Jon has co-authored a book on WWF.

The other technology that has caused big waves in the C# community in particular is Language Integrated Query (LINQ). This has required a bunch of extensions to the C# language  which will debut in version 3.0. LINQ as a framework works over in memory structures that implement IEnumerable<T> however its also extensible and Microsoft have provided two extensions XLinq for XML querying and DLinq for consuming database data. I love the basic Linq infrastructure and XLinq looks pretty neat. However, DLinq concerns me, automated creation of SQL has a habit of producing less than optimal SQL. Also its too easy to end up with alot of data being ripped off the database and joined on the client (this is what happens with hetrogenous joins).

Other than that, Office 12 looks pretty awesome as does the Aero Glass shell in Vista. IIS7 has made some very impressive advances in terms of allowing non-admins to administer a web site and hish modularization of previously monolithic functionality (the neat thing is you can drop features you're not using from memory for  a website so reducing the attack surface of that site.

The Mean Fiddler

As part of my investigations into Indigo I was checking out how session management was implemented (see InstanceMode). However, as much as I really like tcpTrace as a tracing tool - trying to wade though the mire of SOAP headers was just too painful as tcpTrace doesn't have any awareness of SOAP. So asking around, Kev pointed me to Fiddler. Apparently Brock passed on this info to Kev (so kudos to Brock). The tool is awesome and a great addition to Indigo spelunking tools.