Surface - What on Earth?

Looking at Microsoft Surface I thought WOW, that looks great, INeedThat. Soon after the WOW moment my attention turned to the website itself; it looked fantastic. I thought that Microsoft, who generally "eat their own dog food" would be using SilverLight to achieve this amazing site. I thought wrong... it's Flash.

I think that there is a real opportunity missed here; I can imagine all sorts of reasons why this is not SilverLight. But, man alive, I'd be hopping mad right now if I were involved in the marketing for SilverLight. I'd be on the phone right now asking how we can help the Surface team move in the right direction and convert the site.

Another oddity on the site, something that I have never seen in the wild before: client side VBScript on a public website! I must admit I'm a little shocked, there must be more support for VBScript in the wild than I ever imagined.

For the geeks in the audience I strongly suggest you visit the Surface site, enjoy the product as it does look great, but also view the source; it is another jaw dropping experience...

WPF Commands

Commands in WPF rock, they provide a very nice abstraction from the implementation and invocation of what you would consider a command in an application. I have been learning about WPF over the last few weeks and I have found many subjects in that technology that I really like; but commands were not something that I groked immediately.

The reason being I read about them first in Chris Andersons book Essential Windows Presentation Foundation (an excellent book), at the time I read it I liked the idea and moved on – until I read about them in Chris Sells and Ian Griffiths book Programming Windows Presentation Foundation, here I was introduced to the fact that WPF provides a whole bunch of commands. This was the point I missed in Chris A’s book, as he presents the topic by getting you to build a command, slowly taking you one step at a time – but he never does the big reveal, he seemed to save that for Chris S!

What I’m going to do here is show the simple XAML required to use a command in a couple places, like a menu and a button and then how to wire those up to a piece of code. For all the gory details on commands in WPF I’ll refer you to Chris and Chris. However, what I think is lacking is a simple example of how these ideas come together in a simple example (more...)

Book Shelf 2007

I'm frequently asked what resources I use, what books I read, websites I visit and podcasts I listen to. Recently I posted about my podcast listening habits so I thought I'd follow that up with my current reading list:

Some of the books there are very old and some I have not read yet, they're just on my list. So I'll start at the top and give a quick run down:
  • C# Design Patterns - This one is OK, but not great. All the examples are written in C# but clearly by a Java developer. I would not recommend anyone spend their own cash on this book, you'd probably get just a good information on wikipedia
  • Software Estimation, Demystifying the Black Art - McConnell is a god, every developer should own this book
  • Performance Testing .Net Web Applications - I have had this book sometime and I have never got through it; not sure if it's because I'm not as interested in the subject as I should be or that it's just not that well written. I would not recommend this book
  • The .Net Developer's Guide to Windows Security - Keith Brown really knows his stuff, this book is excellent and highly recommended (it's also freely available on-line at zero cost)
  • .Net Web Services - Don't waste your cash, shame as a good book on this topic is sorely needed
  • Software Project Survival Guide - Even though I'm a software guy and not a project guy I loved this book; it's McConnell 'nuff said
  • Windows Forms Programming in C# - Everything Chris Sells writes is golden. I mean it, golden. Petzold needs to take a few pointers from this guy
  • The C# Programming Language - This is a reference work and adds very little to the documentation, in my view
  • Essential ASP.Net 2.0 - I have not yet read this but loved his first book on ASP.Net, to the extent that this will probably be the only book I buy on ASP.Net 2.0
  • Programming Windows Presentation Foundation - Another the Chris Sells stable, I'm currently reading this and I has been great so far (1/4 of the way through). The only negative point I would make is that the samples in the book are out of date as this was based on WinFX beta 1; that said the concepts are all valid and very well presented
  • Essential Windows Presentation Foundation - Excellent, any WPF developer needs this book. For his first outing Chris Anderson has done a wonderful job. If this book is used in conjunction with the Sells and Griffiths book you're in a really good place
  • Windows Forms 2.0 Programming - Chris Sells once more, 'nuff said, this is excellent
  • .Net Internationalization - Just started reading this yesterday and have found it to be excellent so far (nearly finished chapter 3); flicking ahead, this book looks like it's going to be a classic
  • Framework Design Guidelines - There really is very little I can say about this book other than it absolutely, positively, with out a shadow of a doubt ROCKS! You should not be coding without it

Some notable absences: Petzolds books on Windows Forms (1.0) and WPF; I have read both and been disappointed to say the least by the latter and bored rigid by the former; I would be very unlikely to read any more of his work, I think the king is dead, long live Chris Sells.

A book that is current in progress (but was in the car when I took the picture) was Programming WCF Services by Juval Lowy, this book absolutely rocks! I still have a couple of chapters to go but still highly recommend it. I'm in the need of a second book on the topic that has more samples or code - I find myself with Juvals book needing to write code to fully grok what he means, that said it's excellent and must have for any Web Service developers today.

Also missing is McConnells work Code Complete. I have read both editions cover to cover and they are excellent and it goes without saying highly recommended. The reason they are not present is that they are sat on my shelf at home.

Finally the last book I would like to mention is Don Box's book called Essential .Net, Volume 1: The Common Language Runtime; this book is based on the 1.0 version of the .Net Framework and is an excellent piece of writing and technical information - I think I have enjoyed reading Don more that any other writer on a technical subject, superb and a must for any serious .Net developer.

Up and Coming

I'm not one for apologies so you'll not get one for the sparse posing since my return from holiday; things have been and continue to be busy at work and home - but that's not indended as an excuse. That said I intend to be posting a little more frequently in the coming weeks and months. I have a couple of posts on WPF in mind as well as a bigger piece on SOA; I also want to pickup on the WCF articles I started earlier in the year (one on MSMQ and WCF is partly written).

Feet on the Ground

I'm thinking of starting a new series of articles, the "Feet on the Ground" series, where I want to provide a real world view on the more nebulous topics being discussed on the web today around technology and architecture; examples include SOA and Web 2.0.

The main driver for these articles will be to help both developers and non-developers alike understand what these technologies, or buzz words, mean in the real world in relation to definitions and applications, basically I want to put topic in to the crucible and pull out only the refined pertinent information.

I will start with SOA and then maybe move on to Web 2.0, if the interest is there for this type of material. If you wish to see something like this then please let me know (comment on this post or contact me directly); also if you have any ideas for articles in this series then please also let me know I would love to know what you think.

MIX 07 News

For those of us that cannot be at Mix07 Scott Hanselman is there for us and working hard. Now the big announcements have now been made he fill us in on what the announcements are and where to find more information. Check out Scotts blog post here.