Thursday, 29 November 2007

MIX08 = "Go Live" License for Silverlight 2.0?

Scott Guthrie has just announced that common sense has finally prevailed and that Silverlight 1.1 will be renamed Silverlight 2.0, and that a beta with a 'Go Live' license will be available 1Q 2007.

I thought it was very disingenious of the Microsoft Ireland who gave a talk on Silverlight on the Silver Screen a couple of months back, to indicate that Silverlight 1.1 would go RTM 'very soon', when all the indications at the UK's MIX07 event had been that we were about a year away from it being RTM.

Reading between the lines, I'd be very surprised if Silverlight 2.0 didn't officially go beta, with its associated 'Go Live' license, to coincide with the MIX08 event in Las Vegas as the start of March, hopefully with RTM around June or July next year.

Monday, 26 November 2007

DDD6 at Microsoft Campus, Reading

On Saturday, I attended the sixth Developer! Developer! Developer! day on the Microsoft Campus at Reading.

Ordinarily, I'd have posted a rave review late Saturday night/early Sunday morning, but in truth I've found it harder to write about the event this time around, as I'm wondering if the bi-annual event has become subject to 'the law of diminishing returns'.

It's a few years on from the first DDD and we're now in a new world with many disparate 'community' user groups, all doing their own thing in addition to DDD, and I can't help thinking that maybe too many of the core people - those who are left anyway - are being stretched a little too thin?

On the plus side: taking a day out from a way-too-hectic study/work schedule travelling down to Reading on the train for a bargain price of £13 (with food, drink and even buses to the station provided by the event sponsors free of charge) was worth it. So far, so good!

The main strengths of that original event remain: it's community-lead; it's free; it gives a good opportunity to network; and it takes place at a time when work can't (or shouldn't) preclude attendance. So why aren't I rushing to recommend the next planned event to co-workers, the way I was after DDD1 and DD2?

The big advantage of the first DDD event, as opposed to the more traditional MSDN-styled 'free' one-day events from Microsoft staff that had preceded it, albeit on days that necessitated losing a day's pay, was that none of the talks or presentations resorted to 'marketing future products' and featuring 'canned demos' designed to 'sell' the product at the expense of hiding sometimes quite catastrophic flaws. DDD1 sessions I attended offered some genuinely useful 'at the coalface' information, usually delivered by extremely knowledgeable and passionate experts. When looking at new technologies one needs to know about the pitfalls and problems, not have them swept under the carpet, and I thought it was impressive that Microsoft provided the facilities for community members to give that information to attendees on their premises.

Admittedly, at times, it seemed a little odd that Microsoft should be supporting talks on 'Open Source' products that competed with Microsoft products, but to their credit they seemed to realise that being more open with a community that earnt most of its money working with Microsoft technologies could only be a good thing.

Looking at the list of those whose talks I attended at the first couple of DDD events, and those who talked at the sixth it's noticeable that most of the speakers I'd really rated didn't seem to be in attendance this time around, with Guy Smith-Ferrier perhaps being the exception to the rule. Was it mere coincidence that his session, even though it was on a product - "Astoria" - that is some way away from becoming 'real world', was light years ahead of any other I attended that day? Guy's talk was educational AND entertaining, and although a speaker can get away with being just one of these things, he/she does need to have some real depth of knowledge in the subject they're talking about. Alas, too many speakers failed to be entertaining and educational and knowledgeable. Anybody can download source code from Codeplex and incorrectly cut and paste parts of it into a project that won't then work as intended for 60 minutes! Guy's Grok Talk, which was bravely given in Pecha Kucha format (named by two Japanese folks who 'invented' the format of talks limited to 20 slides, with each timed to auto-display for just 20 seconds at a time before moving on to the next) was also the best of the Grok talks. This was no mean feat as, unlike the more formal, hour-long sessions I attended, the Grok talks were all pretty good.

So... this time around I'm not going to blog one-by-one about the presentations I attended and the technical contents of each. I've learnt the hard way that publicly critiquing presentations wins you no friends and can win you a lot of enemies (despite assurances from presenters that they just want 'genuine feedback'), even if it's restricted to feedback forms or email that only the individual directly involved can see!

Part of me did wonder if I was just being a little too 'half glass empty' - something I'm admittedly prone to, although I prefer the term 'gloomy optimist' - about the event, but the evidence of overheard comments on the bus back to the station, and feedback from former work colleagues in the breaks seems to indicate that my overall feelings were pretty typical. Admittedly, a few years spent in technical marketing and then two years delivering technical courses full-time, albeit more than 10 years ago now, means I DO tend to be more critical about presentations and talks than most. And after all there are quite a few blogs full of the usual enthusiastic, if somewhat bland and even at times rather incestuous, praise. But these blogs all seem to come from the same crowd one sees at every user group event and geek dinner - how typical are they of the 'average developer', at whom presumably the event is aimed?

It was interesting this time around to see several former work colleagues at DDD6 who aren't part of the core of people one tends to keep seeing at user group and Microsoft events. One of those former colleagues left at lunchtime, expressing disappointment in the two sessions he'd given up his Saturday to attend, although the early departure may have been his intention from the start - unfortunately I didn't get a chance to ask. A couple of others agreed that the quality of the talks they'd attended had been disappointing or not lived up to the short, advertised description, leading me to think my experience was not that untypical.

This all seemed in marked contrast to the heady praise everyone I spoke to after DDD 1 had about the event. This is feedback from what I call the 'average' developer - ie someone who doesn't typically have a blog or live on Twitter - someone who's too busy at the coal face or - God forbid! - having a life to get directly involved in 'community'. But aren't they exactly the sort of people who need to be engaged by both 'the community' and Microsoft?

So, while it was good to catch up with a bunch of folks I hadn't seen for a while, and to get the big picture on some of the stuff headed our way next year (or the year after), for me this felt too much like one of the bad old MSDN events of old - too much superficial technical content; too many poorly rehearsed, or even poorly understood, demo's that weren't very exciting to behold; and too many sessions which I felt just told the 'Microsoft Marketing' story as opposed to the one I need to better understand the technology and its applicability in solutions I might need to develop in my job.

I wanted to leave DDD6 feeling the same way I did leaving DDD1 and DDD2, but that didn't really happen. Instead I left somewhat frustrated at what I felt was too often a wasted opportunity. And wasted owing to far too much complacency on the part of those responsible for giving most of the sessions. I guess I need to find a subject I feel I can talk authoritively about at the next event!

Monday, 19 November 2007

Visual Studio 2008 Team Suite is now RTM

Apparently Visual Studio 2008 Team Suite RTM (Release to Manufacturing) is now available for download on MSDN.

I've only just taken out a new 3 year volume license agreement on MSDN and am waiting for Microsoft to activate it, but hopefully can start working with the new release of the software I seem to spend 90% of my working life in by the end of the week.

I suspect download speeds will be a nightmare given the number of subscribers who've been waiting for this.

Sunday, 18 November 2007

Weekly Link Dump (Part 1)

So much for planned daily updates! Weekly updates seems much more do-able with the current workload (even when I'm not working on a specific contract)! Some of the links below are a few months old but saving them here means I can clean down my ridiculously long bookmark list! Alas, these constitute just half my current backlog so there'll be another post in a day or two with the ones that didn't make this blog entry!

Anyway... the biggest news of the week has to be that Visual Studio 2008 is going to go RTM (release to manufacturing) early next week. MSDN Subscribers will be able to download the 'shipping' product, but the rest will have to wait until Februrary 2008 for retail versions!

On a personal note, looking forward to Developer! Developer! Developer! Day 6 at Reading next Saturday - the first time I'll be travelling down by train.

Recently Discovered Useful Links

Apps: Wallpaper Generator - Generate custom wallpaper for your desk-top using your own photo snaps. A neat little WPF application from Joris Kalz.

Apps: WittyTwitter - a useful Vista/XP desktop client application for those of us using Twitter (see right hand side-bar for my most recent Twitter 'tweat's).

ASP.NET: Clean up your use of ViewState - A plea for a tidier and more consistent approach to using ViewState, with an interesting debate in the Comments section of this blog entry from Bernal Schooley.

ASP.NET: ASP.NET and Hierarchical Data - Gunnar Peipman looks into new hierarchical data support in ASP.NET 2.0, focusing on the IHierarchyData and IHierarchyEnumerable interfaces.

ASP.NET: HTTP Error 406 with .Net Framework 3.0 - warning about possible HTTP 406 errors when using the User Agent string with ASP.NET 3.0 from Carlo Cardella.

ASP.NET: Are your VS2005 web applications having an identity crisis? - if you move a webinfo project file to a new location you'll probably find your nice neat ASP.NET web application has reverted to being a more primitive ASP.NET web site. It's all explained here.

ASP.NET: Building your first Server Control (Tutorial) - a good introduction to writing your first ASP.NET server control from Bipin Joshi.

ASP.NET: The ASP.NET MVC Framework Announcement - Scott Guthrie starts to explain the distant 'replacement' MVC framework for ASP.NET. The endless gushing of the MVC pattern fan boys on different blogs has completely turned me off the endless 'let's throw everything away for the latest fad' approach that makes being a Microsoft developer so time-consuming these days. Am I throwing out the baby with the bathwater by ignoring the MVC pattern framework for now, or are Microsoft the ones doing that by over-promoting it? Here's an overview of what it's all about.

ASP.NET: The ASP.NET MVC Framework - More Details (Part 1) - Scott Guthrie dives a bit deeper into specifics of the forthcoming MVC framework.

ASP.NET: ASP.NET Futures: Introduction to the XAML and Media Controls - an interesting post on the upcoming ASP.NET Futures release, but the arguments over Microsoft's poor AJAX support and 'throw the baby out with the bath water' obsession of the MVC fanboys in the comments below it are perhaps more interesting.

ASP.NET: ASP.NET Futures: Use the MVC Framework to Write Web Apps without ViewState or Postbacks - Jeffrey Palermo gives his spin on the recent MVC Framework announcement, in an article written for Code Magazine.

LINQ: Use LINQ with WPF: Styles and DataTemplates in Code - good code samples from Calvin Hsia for those working on the bleeding edge. Make sure you read the comments before rushing in to code!

Misc: Community Antipattern: Gloryhound - the blogosphere seems full of 'glory hounds', and hopefully I'm way too low key (and old) to be one myself. If you're not sure what a glory hound is then read this entertaining article from Scott Bellware to find out.

Office 2007: Guidelines for Creating PowerPoint 2007 Templates - Office 2007 is a whole new world. If you're confused by templates, themes and custom slide layouts in the latest version of Microsoft Office there are some handly links in this blog entry from the Inside Office blog team.

Silverlight: DoJo GFX and Silverlight Test - In my view there are way too many JavaScript libraries out there, but if you're using DoJo then Adam Kinney has been testing it for integration with Silverlight and experienced some encouraging results.

Silverlight: Silverlight 1.1 (Alpha) Developer's Reference Poster - It's pretty, but not entirely sure how useful this rather marketing-oriented 'reference poster' will actually prove to be! Oh well if you have a big colour printer I guess it will look pretty on your wall.

UX: User Experience in the Enterprise - David Isbitski presents a video of his talk from MIX07 as the first in a video series on User Experience in the Enterprise.

VS2003: Uninstall cleanup tool for .NET Framework 1.0/1.1, VS.NET 2002/2003 - A bit late in the day perhaps, but this cleanup uninstall tool for pre- VS2005 versions of the framework and Visual Studio itself may sort out a broken Add/Remove Programs control panel dialogue if you're suffering from a bad uninstall.

Windows Live: Windows Live Tools for Visual Studio 2008 - A Windows Live toolkit for Visual Studio 2008 developers, but you'll also need to install Microsoft ASP.NET AJAX (no worries!) and their ASP.NET Futures beta/alpha/CTP/whatever they're calling it these days (lots of worries!).

Windows Server 2008: Step-by-Step Guides - Windows Server 2008 will soon be upon us. Get a head start by downloading these Step-by-Step guides from Microsoft.

WinForms: Splash Screen Control - Lloyd Franklin has the code and words to enable you to easily add a splash screen to any of your WinForms applications.

WPF: Building WPF Applications with the Page Navigation Framework - "It's just like ASP.NET, but with state" says Phil Winstanley. Judge for yourself after reading through his screenshot tutorial.

.NET 3.5: How to avoid OS Reboot Prompt when Installing .NET 3.5 on Windows Vista - Aaroon Stebner has advice and an explanation of why installing .NET 3.5 on Windows Vista can get very messy very quickly.

.NET 3.5: Possible .NET 3.5 Install Failure if MSXML registration is broken - Aaroon Stebner again has advice on how to diagnose and fix a .NET 3.5 framework installation failure caused by a poor MSXML registration.

Friday, 9 November 2007

I'm booked for MIX08

The Venetial Resort Hotel Casino and a ticket for Microsoft's MIX08 conference in Las Vegas are now booked. Hotel is booked for the week 3rd March to 8th March, with the conference just taking up 2.5 days at the end of that week. I've never been to Las Vegas so looking forward to a couple of days R&R beforehand. I missed MIX07 last year because I'd booked Microsoft's PDC conference in L.A. for later that year but then they went and cancelled it, so this year I'm not taking any chances. The UK version of the MIX conference which I attended a few weeks ago here in London was a pale shadow of the US version of these things and it's better to go direct to the source, especially as they're usually timed to coincide with major new releases from Microsoft.

Will book flights when I get back to the UK (late on Sunday) - not sure at this stage whether I'll also be able to fit in a trip to Los Angeles as well.

Friday, 2 November 2007

Information Overload!

Sod's Law says that just 2 days after blogging about and hoping for a Silverlight training course they add one! It's only four hours long (although with the speed at which Mike Harsh talks it's probably equivalent to 8 hours from anybody else), only covers Silverlight 1.0 (which is fine as 1.1 is an ALPHA, not even a beta yet) and is fairly basic (which is good in that Mike assumes you know absolutely nothing), but it's a good start.

I'm suffering serious information overload with a pile of unread new books and the links below all being important, and all appearing just over the last couple of days. Trying to keep track of all the 'required' Microsoft technologies is a complete nightmare for anybody holding down a full-time job AND wanting to have any kind of life as well. I think it's much tougher starting out in the industry now than it was when I started, or even as recently as 5-10 years ago.

Recently Discovered Useful Links

ADO.NET: The Entity Data Model Designer Video A videotaped early look at the Entity Data Model Designer that's currently in CTP from the ADO.NET Team blog.

Architecture: Patterns and Practices 'Reference Implementation' of the Web Client Bundles - Microsoft's Patterns and Practices have been working on Web Client best practices for some time and now there's a reference implementation available. Brad Abrams has all the details.

Architecture: Performance Testing Guidelines for Web Applications - it's a horribly dry read, but an important new document from Microsoft's Patterns and Practices group. J.D. Meiers has the list of contents and the appropriate download link.

ASP.NET: ASP.NET Futures - Scott Guthrie's been dropping hints about what will be in a bundle called 'ASP.NET Futures', shipping after Visual Studio 2008 has released. Chris Koenig announces his upcoming series on what exactly will be in that bundle.

ASP.NET: TIP: Hard Drive Speed and Visual Studio Performance - Scott Guthrie has some good advice on where best to spend your money on new hardware when you want the best possible ASP.NET performance.

ASP.NET: Tip: How to grab bulk data from a GridView on Postback - all it takes is a few simple lines of code. Kevin Isom talks you through those few lines.

ASP.NET: Cachine in 10 minutes - essentials about the options available for caching under ASP.NET in an easily digestible article by Todd.

ASP.NET: Expresso - a .NET Regular Expression Development Tool You Should Not Be Without - I hate writing regular expressions, so any tool which helps is 'a good thing'. Joseph Guadagno has all the info on his blog.

ASP.NET: How to Write a Web Service that returns a DataSet - a nice code walkthrough from Naga Satish.

ASP.NET: Two ASP.NET Features that are usually missed or misunderstood - Ryan Ternier talks about the tilde character and use of the ALT-SHIFT keys in Visual Studio.

ASP.NET AJAX: Are you making these 3 common ASP.NET AJAX mistakes? - Dave Ward asks the awkward questions on his Encosia (it's another word for quality) blog. The UpdatePanel has a lot to answer for if you don't understand what it's doing (quelle suprise!)

ASP.NET AJAX: In Depth Performance - Omar Al Zabit walks us through analysis of an ASP.NET AJAX performance issue.

ASP.NET AJAX: Delayed Content Loading using the ASP.NET AJAX Timer and UpdatePanel - A tutorial for loading sections of a page after the main page has loaded using ASP.NET AJAX controls, written by Joshua Stengel.

ASP.NET AJAX: Under the Hood Secrets - Tips and tricks for ASP.NET AJAX developes but, as author Omar Al Xabir says, 'not for the faint-hearted'!

ASP.NET AJAX: Everything has its place: Tread lightly with UpdatePanels - Well you can't say I didn't warn you (former work colleagues please take note!). Peter Laudati explains why the UpdatePanel may be a quickfix too far for many developers.

Expression: Expression Blend and Design training. - Microsoft have been on the road giving 2 days free training on Expression Blend and Expression Design. Now they've made all the code and the self-paced training kit availabe for free. Very generous, and the material is excellent and pretty idiot-proof. You will however need a color printer and a good broadband connection as the download material is over 1GB in size.

IIS 7: Modules for IIS 7 and ASP.NET - Mike Volodarsky has written quite a few modules for IIS 7 and ASP.NET. Here he provides links for them, and solicits requests for new modules that might be of use.

IIS 7: How to set up remote logging between workgroup computers - A frequently asked question gets answered by Steve Schofield walks you through the process step-by-step.

LINQ: LINQ to SQL: Some of the best blogs - a useful set of links from Wriju Ghosh.

.NET: .NET '4' - I don't know whether to laugh, cry or just shout 'I need a life goddamit'. Allan has some links you should probably try and find the time to follow through.

Powershell: Automated Web Site Deployment using Windows Powershell - title says it all really. Omar Al Zabir (he's responsible for a LOT of today's links, split across different sites!) has all the details.

SandcastleSandcastle October CTP - Sheesh! Just when you've finished spending several hours installing the September CTP of Microsoft's auto-documentation product, they go and release another one. Please it's been month after month of CTPs. Just give us an RTM version already!

Silverlight: Silverlight doesn't require any JavaScript - OK, so hands up who thought you had to write JavaScript to at least load the Silverlight plug-in. Jon Galloway explains why this assumption that JavaScript is needed is a misconception.

Silverlight: Optimise your Silverlight Install experience - UX guidelines for Silverlight installation are now available for download from Microsoft. Laurence Moroney has the download link and thinks it's essential reading for anyone having to deploy a Silverlight application.

Silverlight: Treeview and Animated Panel Wrap Controls for Silverlight - details and source code from Pete Brown.

SQL Server: Audit Trail Generator - A discussion of audit trail techniques and a script to automate audit trail generation on a SQL Server databse from Cedric Baelemans.

SQL Server: My take on why SQL Server 2008 is interesting - Eric Nelson has a couple of slides with the highlights of the forthcoming SQL Server 8, just to give developers a quick heads up.

Visual Studio 2008: Get up to speed on Visual Studio 2008 - Videotaped versions of Scott Guthrie's current presentation deck on what's new in Visual Studio 2008, as given internally to Microsoft employees, but seemingly identical to the presentation given at MIX07 UK.

Windows Live: Professional Windows Live - Windows Live APIs are starting to shape up very nicely and now there's a Wrox Press book available. Angus Logan has the details.

Windows Server 2008: Microsoft Development Centre for Windows Server 2008 - The MSDN Development Centre has just been launched - Check it out!

Windows Server 2008: Training Kit for Windows Server 2008 (Beta 3) - the new operating system will soon be upon us, and Microsoft have made available 'Beta 3' of their developer training kit, which includes hands-on labs and presentations on IIS 7, WCF, CardSpace, Powershell and a whole lot more!

WPF: Future of WPF Guidance - there are lots of changes coming with regard to WPF, CAB and Acropolis. Michael Puleio has pulled together the relevant links.

WPF: WPF Control Development: 3 ways to build an ImageButton - WPF is complicated and can get real confusing really quickly. Knom looks at three different ways for the control developer to develop the same 'simple' control, and then picks 'the best'.

Tuesday, 30 October 2007

Training with

Some months ago I took out a subscription to, a site which offers literally hundreds of training courses, primarily based around design tools from Adobe.

Traditionally the site has centred on training the 'luvvies' with their Apple Macs, which I guess is why so few Microsoft .NET developers I know seem to be aware of it.

I stumbled across the site, which has apparently been going for years, only when a forum discussion highlighted the fact that it was offering the first (and, at the time, the only) training material for Microsoft's Expression Blend. This product (formerly code-named 'Sparkle') is Microsoft's designer-oriented tool for generating XAML files that can then be exported for use in WPF applications written by a developer using Visual Studio 2008. Expression Blend, which is now included in Microsoft's MSDN developer subscription package, offers a particularly neat way of training yourself up in understanding the underlying XAML without having to go the painful way of coding it all from scratch.

Rather cleverly actually offered the Expression Blend training for free, using it as an opportunity to advertise the fact that they had (literally) hundreds of other courses too - all included for a relatively low monthly price that works out at not much more than a tenner a month! At that price it's a complete steal!

With a plethora of excellent in-depth training material for Adobe Photoshop, taking out a premium subscription (which gives you access to download code used in the training material, as well as the streamed video training itself) wasn't too difficult a choice to make, particularly since the video streaming is flawless, fast and just works every time. If only all sites were like this!

Unfortunately, work commitments mean I've had little opportunity to use the site since I first took out my subscription, but I'm using it with a vengeance now, not least because it has some really excellent new material that is more focussed on the .NET developer working with AJAX.

Thanks to a timely Skype conversation tip-off from my friend Mat Guthrie I'm aware that there's some excellent 'best practices' training available for FREE from Yahoo, which should certainly be a necessary pre-req before rushing to code with libraries like Prototype and or Silverlight, but they are very much of the 'listen and learn' variety, whereas I'm definitely from the school of thought that says it's far better to 'learn by doing'.

What I'd nearly missed, in the deluge of Adobe and Dreamweaver-oriented material at, is the fact they have XHMTL, CSS, JavaScript, AJAX, and even some Microsoft-specific training in there too, all included in the one low, subscription price.

The site's CSS for Designers course (7.5 hours) from Andy Clarke and Molly E. Holzschlag has given me lots of ideas for the upcoming redesign of my new company web site. For a more formal approach to the technical aspects of CSS the site's course on CSS Web Site Design by Eric Meyer is the best material I've seen on the subject (and that includes way-too-many books I've purchased written by the same presenter).

The company also have training courses on all the Office 2007 products (including Visio), such that the only problem I have, even with taking a significant period of 'time out' from taking on new client work, is finding the hours in the day to use all the material they make available for frankly what is not so much a bargain price as a complete steal!

With the need for .NET developers to be much more proficient and up-to-speed on AJAX and Silverlight it's time for many of us to take a JavaScript refresher, and the site's JavaScript Essentials (2007) (7 hours) by Dori Smith is an excellent 'Back to basics' course if, like me, it's several years since you really did some JavaScript programming.

So, if you haven't checked out yet, now would be a good time to do so. All that's missing is the Silverlight training, and I suspect even that's probably on its way as I get emails detailing two or three new courses each and ever week!

Yesterday's Useful Links

I have so many links that I don't want to lose to post (information overload) so I'm going to have to dedicate a single post to them tomorrow - I don't have the time right now to post them because lunch is nearly over. Check back tomorrow for the usual daily link listing!

Friday, 26 October 2007

Visual Studio 2008 Beta 2 VPC Expires November 1st!!!!

I am way behind on my blogging (too much 'learning' to do!) but thought this was important enough to post quickly about....

It seems the Virtual PC editions of Visual Studio 2008 Beta 2 expire prematurely on November 1st. You can find the details here. Bottom line: They're working on getting new VPC images ready so we can all go through the pain of downloading more than 10GB data all over again (presumably mere days before the surely-long-overdue-by-now Release Candidate becomes available).

This sort of problem seems to be almost mandatory with Microsoft software. I remember the time it bit me most was with a new release of Office. I had an important presentation to give a client on a Monday morning and had foolishly used the new features in a beta release of Office which had gone on sale but which hadn't been made available to MSDN subscribers. The advertised expiry date of the beta arrived 2 months early, and several days before the RTM'ed software was actually made available for download on MSDN.

Luckily PC World are open on Sundays and the software HAD gone on sale. But it was an expensive lesson to learn about how MSDN subscribers get treated and Microsoft's quality control on expiry dates!

At least this time people have been told BEFORE they lose all their hard-written data (at least if they monitor the blogs!)

UPDATE Sunday, 28th October 2007: You can use an existing Windows 2003 Server license key to update the evaluation version and avoid losing all your data. Unfortunately the update process takes a couple of hours because you have to effectively partially reinstall the base OS. The details of this 'workaround' can be found here.

Recently Discovered Useful Links

ASP.NET: Get Rid of Regular buttons, Use Link buttons - Ryan Ternier makes a convincing argument for abandoning use of the regular ASP.NET button and using Link buttons (with some nice CSS) instead!

ASP.NET: Long Delay on First Request to an ASP.NET 2.0 Application - Seems there's a nasty bug in the ASP.NET 2.0 code. There's no HotFix yet, but The Striped Cat has all the details in the meantime.

ASP.NET: Understanding what PageRegisterRequiresPostBack Does - a good technical article on why this is needed and what it does. Essential reading if you're struggling to understand proper and correct use of ViewState.

ASP.NET: Scott Guthrie's latest links for ASP.NET, Visual Studio, AJAX, Silverlight and IIS 7 - Saves me having to type in another half-dozen essential links. Guthrie's the General Manager for all things ASP.NET so if you're not checking his blog on a daily basis you should be! Lots of good stuff in his latest link listing.

Data Access: Getting Started with the ADO.NET Entity Framework - if you're as confused as I am by the differences between the upcoming ADO.NET Entity Framework (so is it 'LINQ-to-Entities' or is it 'The ADO.NET Entity Framework') and LINQ itself these new 'Getting started' samples may help. Then again they may not!

Expression: Sign up for the Microsoft Expression newsletter - You can do so here, although since the confirmation screen says this will start in September 2007 then either this link has been around a long time or it took them longer than expected to launch!

.NET Utilities: Creating Zip Archives in .NET (without an external library like SharpZipLib) - It seems not everyone's happy with the (L)GPL license that comes with SharpZipLib. Jon Galloway looks at the options.

Powershell: Windows Powershell Cookbook - I haven't dug into Powershell yet, but when I do there are a ton of books covering it out there. This is a review of the O'Reilly 'Cookbook' which seems to think this is the book to get.

Security: Digital Identity for .NET Applications - A Technology Overview - David Chappell has updated his August 2007 MSDN article with information for .NET developers who have to work with identity (that'll be all of us then!)

Security: XSS Detect - public beta of a new Static Analysis plug-in tool for Visual Studio 2005 - Barry Dorans talks about the public beta and has the links for Microsoft's new Cross Site Scripting Detection tool.

Silverlight: Web Analytics for Silverlight - there's a ton of stuff on Silverlight on so many blogs, and I haven't dug into it yet, but this struck me as a link I'd want to refer to at some point in the future if I wanted to avoid some pain.

VS2008: title="link to Video demonstrating new CSS features in Visual Studio 2008">CSS Support in Visual Studio 2008 - Channel 9 video (16 minutes) giving nice overview of the new CSS functionality in Visual Studio 2008 from Daniel Moth.

VSTS 'Rosario': Visual Studio Team System Code Name 'Rosario' August CTP - Visual Studio 'Orcas' (aka 2008) isn't out of beta yet and already there's public CTP's of the NEXT version??!! Enough already! When do we get to sleep (or am I missing something important here)?

Windows Server 2008: Are you ready for Windows Server 2008? - If not, the Microsoft on ISVs site has links to a free pdf book and some elearning courses.

XBox: XBox 360 HD-DVD Drive Movie-Specific Known Issues - not really work-related but I read so many complaints about problems with different movies on the XBox 360 HD-DVD add-on that discovering this blog was a bit of a God-send. Be sure to follow the referenced link that gives an overview of problem diagnosis.

Thursday, 25 October 2007

Sandcastle September 2007 CTP Installation

Sandcastle is a great product for automatically generating documentation from .NET source code XML comments. Unfortunately, and somewhat ironically given that it's a product aimed at improving the quality of developer documentation, the documentation and instructions for using and installing this free offering are somewhat confusing and unclear.

As a result it seems many developers are ignoring it ("Life's too short"), a situation not helped by the fact that although Microsoft are using Sandcastle internally to produce MSDN-like documentation, it's been in CTP (Community Technology Preview) status rather than RTM (Release to Manufacturing ie ready for prime time) status
for what seems an eternity now (certainly more than a year!) It also lacks a nice user-friendly GUI (graphical user interface) out of the box, although thankfully several 'open source' options are available.

Sandcastle installation screenshot

Having used Sandcastle I really rate it, and it's useful not just for automating developer documentation but also assisting with code reviews. So here's the missing guide on how to install it, and most importantly the pre-reqs it needs and the order they should be installed in, so that you can quickly get up-and-running with writing code that generates appropriate documentation automatically

  1. Download and install the HTML Help 1.4 SDK. Annoyingly when you actually run the downloaded install program it identifies itself as version 1.3 but you can just ignore this Microsoft glitch.

  2. Download and install the Visual Studio 2005 SDK v4.0 (February 2007). This is needed to install HTML Help version 2.0. It also installs an early version of Sandcastle that we will replace. Some blogs talk about the need to uninstall this early version of Sandcastle before proceeding using the Add/Remove Programs feature of the Windows Control Panel, but I could find no such entry to be removed and had no problems installing the newer version of Sandcastle after this step had been completed.

  3. Download and install the Sandcastle September 2007 CTP itself. Remember that this only has a command line interface so isn't ideal for those of us that hate hacking our way around with the DOS command prompt.

  4. Download and install Sandcastle Help File Builder. Two downloads from this link are needed - the main installation itself and the Presentation File fixes which have to be applied on top of Sandcastle itself (instructions are given in the associated readme file that is downloaded with the files. Things get messy very quickly and you may choose to bypass this step but if you follow the instructions you will have help files that are better formatted than those you get by default because of poor coding in Sandcastle itself).

  5. Before running Sandcastle Help File Builder select Build Reflection Data from the Start menu using Start.Programs.Sandcastle Help File Builder. This is required before first use because the September CTP of Sandcastle does not contain any reflection data for the .NET framework. This step can take 30 minutes or more to run!

And (finally!) that's it. You need to allow at least half an hour for the Visual Studio 2005 SDK to install itself (and that MUST be done BEFORE you attempt installation of Sandcastle itself) and another half hour for the reflection data build script to run, but otherwise it's a pretty speedy process.

Sandcastle Help File Builder screenshot

Once you've installed everything you need to actually make sure you add the appropriate XML tags to your code. These are fully documented in the MSDN library entry for XML Comment Tags. The interface to actually generate the HTML help files from these comments is pretty straightforward, but the following quick walk through will hopefully get you started:

  1. Make sure your Visual Studio project has been enabled for Sandcastle. Select the project in Solution Explorer, right click to choose Properties and then select the Build tab on the resulting display. Make sure the XML Documentation File checkbox is ticked and that the name of the resulting XML file is specified in the section labelled Output.

  2. Start Sandcastle Help File Builder and choose New Project from Visual Studio Project. Select the solution file you wish to document and the assemblies which will form the output for the project will appear in the Assemblies to Document window. Alternatively you can select New Project within Sandcastle Help File Builder and then just add the individual assemblies you want to document.

  3. Individual namespaces can be selected or de-selected by clicking the Namespaces button on the main Sandcastle Help File Builder screen and then checking or unchecking the appropriate namespace.

  4. References to external dlls used by the project or assemblies must be added using the Build button of the property marked Dependencies. If you are using Enterprise Library you will need to add the appropriate dlls using the File Dependency button and browsing to the appropriate dlls. Note that the displayed Dependency dialogue has a GAC button which can be used to select any dlls that are resident in the GAC (Global Assembly Cache).

  5. Set other project properties as appropriate. For example, make sure you set the correct Framework Version, HtmlHelp1x if you want a .chm file, set the Help Title and HtmlHelpName appropriately and also the Language and the CSharp property to CSharp to exclude usage samples in languages other than C#

I'll be putting together a Step-by-step PDF document showing the whole installation process with screenshots some time over the next few days, but in the meantime I hope the above helps get you started with Sandcastle. It really IS worth spending the time on installing it.

Yesterday's Useful Links

CSS: BluePrintCSS 101 - Article on an interesting looking framework for CSS development.

C# 3.0: Deep Dive on Extension Methods - title says it all really: covers one of the new features in C# 3.0 in some depth (discovered via the C# Developer Centre, which I really should keep more of an eye on!)

LINQ/IIS7: Using LINQ with Microsoft.Web.Administration - simple code to easily work with IIS 7 using Microsoft LINQ.

.NET Utilities: UberUtils part 3: Strings - nice looking library of string utilities. Be sure to also follow the links on that blog to Parts 1 and 2 which both cover Cryptography.

Process: One year of SCRUM - Lessons Learnt - first in what looks like it will be an interesting series on lessons learnt after using SCRUM methodology for the best part of a year.

Silverlight: Silverlight Addict - yet another new Silverlight-oriented web site. Is there really that much work going on in this area (I reckon 1.1 - which is where things start to get interesting - is the best part of a year away, but I guess 1.0 is a great way to start getting into WPF) or is Silverlight just yet another 'flavour of the month' with the Web 2.0 luvvies?

Silverlight: How to Check if Silverlight is installed - hard to find info just in case you ARE writing Silverlight apps.

VISTA: Windows Vista Experience Guidelines - now that Vista really is being used in the mainstream a timely reminder that there are some guidelines out there that we developers should be following in the new (oh look! blue screens of death are back!) world of Vista.

Wednesday, 24 October 2007

Are you sitting comfortably?....

.. I am - thanks to the purchase of a new Aeron office chair.

The Aeron really is the Rolls Royce of office chairs - the sort of chair that if you need to ask what the price is you probably can't afford it!

Old overpriced, poorly made chair vs shiny new, but equally over-priced Aeron chair

A few years ago I decided to treat myself to an ergonomically designed chair, and went to an expensive specialist ergonomically designed office store behind Oxford Street to get advice. After an hour long indoctrination exercise, booked by appointment, I'd chosen my chair - a Plus 562 from a Swedish company called Hoganasmobler (with some funny accents over some of the characters!).

From memory, it cost not far off £1000 - presumably the cost of having a one hour 'consulting' session before purchasing, and to help cover the high rental charges of a large (but empty of customers) store in an upmarket area of town.

Alas by the time the wretched thing was delivered I couldn't remember how best to set it up, other than remembering that my upper legs needed to naturally sit parallel to the ground when my feet were flat firmly on the ground.

The flimsy leaflet that came with the chair wasn't much help in working out how to best set it up, and the chair was extremely uncomfortable to sit in - so much so that when I received a VAT inspection visit the inspector spent barely 5 seconds in it before jumping out and complaining 'I can't sit in that'. Heh, maybe my experiences with the chair have not all been bad, after all ;-))

Earlier this year I was suffering back pain which meant that in my down time
at home the last place I wanted to be was in my office doing stuff on the PC. I assumed this was a problem with my chair at work, but when I went to work in Ireland the problems miraculously went away - until, typically, the Sunday afternoons when I returned to the UK and spent the Sunday morning in my home office typing up emails and printing out invoices. Clearly it was the specially designed ergonomic chair that was the problem!

To add insult to injury the fabric on the main seat and both arms (I don't even use the arms!) quickly wore away, exposing nasty yellowy foam - I'd expected more from an office chair costing many hundreds of pounds. I guess the salesperson just saw me coming!

With several weeks of studying/working from home ahead I decided I needed to do something about my office furniture and previous experience with an Aeron chair at Ford Motor Company, together with recommendations from colleagues pointed to this being what was required.

Luckily in London, or at least within the M25, there is a service called Fast Aeron that will deliver the chair at a designated time and date within 48 hours, and set the chair up for you as well as instructing you in how to adjust and use it. Alas the main reason for using them (weekend deliveries) went sour (they accept the appointment, but then phone you to say they can't do those dates), but other than that the experience was very positive - as it should be given the exorbitant asking price. Don't get me wrong it's a great chair, but the cost of producing the chair bear no relation to the asking price. When you've got a niche, reputable product I guess you can get away with charging the earth.

So far I'm loving the chair, although time will tell how long the fabric on this one will last - the guarantee period is only 3 years so I'm nervous as to whether this will go the same way as its predecessor with regard to normal wear and tear. But, touch wood, using it's a pleasure compared to the painful chair I used to have to sit in.

Yesterday's Useful Links

Concurrency and the Impact on Reusable Libraries (aka 'The Lock Cookbook') by Joe Duffy (found via Mike Taulty's blog).

MIX UK Conference Sessions - videos from the technical conference in London which I attended a few weeks ago.

Project Codename 'Astoria' - Microsoft takes a REST - information on Microsoft's upcoming product to expose data as a data service that can be consumed by web clients (a web data access layer to your database!)

New LINQ to SQL labs from InnerWorkings - training labs (relatively cheap to purchase) from InnerWorkings on the new LINQ to SQL functionality coming with .NET 3.5 and Visual Studio 2008.

Tuesday, 23 October 2007

The Importance of Customer Service

Customer Service has been on my mind a lot lately. Not least because I've really been suffering from atrocious customer service over the last couple of days trying to get three basic things sorted out

  • An upgrade to Community Server installed

  • A Microsoft Certification exam booked

  • A watch strap repaired

In all three cases I've wasted far too much time trying to spend money with organisations that seem to have no concept of what customer service means.

Let's start with the first item on my list. Since I am currently taking a few weeks out to get to grips with some new Microsoft technologies (in parallel with updating my Microsoft .NET certifications) it seemed a good time to get my official company web site at up to date, at least in the blogging area which is important because it appears on the main home page of the web site.

I think the fact that you're reading this post on a newly created free blog rather than the company web site tells you how quickly things unravelled when I attempted to update the site.

Community Server, the software on which the site is based, is a complex piece of code, and for some reason the blogging component wouldn't accept anything other than very short entries for new blog posts, giving a meaningless "There has been an unexpected problem. Please contact the site owner" screen whenever I tried to post (I AM the owner, dammit!)

Behind the scenes, via special 'Admin' functionality, all problems are supposed to be written to an error log which I can view using a 'Dashboard' web front-end that the software provides. The problem is the error log doesn't show any problems for the specific times I have tried to post new information and had the code fail on me.

Since the software was updated to a new-look 2007 version (along with three updates they've issued since first launched - uho!) and I'd paid up-front for 12 months of upgrades I figured I'd just upgrade the software to the 2007 version, re-customise it and start from scratch, rather than spend hours trying to find out why the wretched software was suddenly proving to be unreliable, where it had been fine before. Time-consuming but easy, or so I naively thought.

The software is written and sold by Telligent and they have an automated email system to quote for an upgrade. Since it's now 18 months since I purchased the software plus upgrades license I found I had to buy an upgrade license. But their online system doesn't show the 18 month old version I currently have so can't sell me an upgrade. It tells me it can email me the cost of an upgrade. More than a week later I'm still waiting for that email!

With no response from the email system I tried emailing the company direct. You can guess what happened! No response. End result: a very dissatisfied customer who has decided to spend no more money with the company, despite the time-consuming pain it will put him through designing a new company web site from scratch. Way to go Telligent!

My chasing up of Microsoft certification has opened up a whole new can of worms, which is the nightmare that is the second bullet-point on my list. The Microsoft certification exams are expensive at over £100 a throw when VAT is added into the mix, but there is currently a promotion on called Second Pass, which runs through to the end of January next year, and enables you to retake an exam free of charge if you fail.

I've never failed an exam yet, but this seemed an inducement to take time out and get on and take the exams, offering free insurance if I pre-registered for this 'Second Pass' offer before booking any exams.

There are various 'self-paced' training kits for these certification exams but I chose Microsoft Press over the other companies because they included a 15% exam discount voucher, included in the form of a scratch card, which is valid until 2011 and significantly reduces the cost of the training kit when compared with rival publishers.

On Friday I tried to book my first exam online and hit two problems.

  1. You can only use one promotion so the reward for purchasing a Microsoft Training Kit is that you can't re-take an exam free of charge. In effect if you choose the re-take option you are paying an increased 15% charge for the exam itself if you were stupid enough to buy the Microsoft Press training kit

  2. When I decided I'd rather save cash than take out the insurance cost of a free re-take I found I couldn't use my voucher because 'it is invalid or has already been used'. This is a voucher number I'd unscratched mere seconds before attempting to book the exam

Prometric who run the Microsoft training centres responded promptly to my queries on this. Microsoft impose the 'only one promotion' rules not them, they write evasively. They are also the people I need to contact about why my voucher number is not usable. Completely ignoring the fact that I'm booking an exam in the UK they advise that I can call a 'toll free number' which of course is only available in the USA. So I have a choice - ignore the 15% discount Microsoft falsely advertised, or run up international phone charges trying to get somebody in Microsoft to explain why a newly purchased book has a voucher that can't be used. Any bets as to whether the costs of calls to clueless individuals on help lines will end up costing more than the 15% discount promised? I've tried approaching those who work in certification via their blogs but needless to say comments are just ignored and I've had no response, even though I've had the satisfaction of posting to warn others that offers are not what they seem!

I won't bore you with the watch details, except to say that three trips into Oxford Street (apparently Seiko can't be telephoned at weekends or over two hour lunch breaks to find out likely costs) eventually culminated in the news that a strap repair for a watch that originally cost £400 will cost close to £150. Needless to say I now walk around without a watch on my arm, and when I do get around to buying a cheap alternative it won't be from H.Samuel jewellers and it won't bear the Seiko name.