Friday, 30 November 2007

Next Public Release of Silverlight is March

From reading Tim Sneath's blog. It seems that we won't be getting a new public release of Silverlight until March (Mix08).

On one hand this is great news, as we know what we can expect in March, we can get excited about Mix (convince my wife that i want to go), we will also get a non commerical go live license and it is a beta (so it will be pretty good).

The bad news, is that it seems that we won't be getting any more refreshes between now and then.

I am a little disappointed, as it was indicated at MixUK, that we would get a refresh by the end of this year, that gives us some of those features. I dounderstand that it is quite a big featureset change, and this stuff takes time. I guess I am just excited, and I want my presents now :)

Ah well. roll on March.

Mr Guthrie, is there any chance that we might get an earlier refresh???? Please, pretty please?

Finally for those cynics about Silverlight (the we have no controls brigade), this release is going to rock and you will be eating your own words.

Well done Microsoft, the transparency of release schedules is brilliant, and it really allows us to developers to plan for the future. Please keep it up.


Thursday, 29 November 2007

Silverlight 2.0

This is some big news via Microsoft Web Biggy Chieffy

Silverlight 1.1 becomes Silverlight 2.0 (yay, very sensible).

The big news in my opinion is that a beta will appear Quarter 1, 2008 including a Go Live license. This means we can start releasing Silverlight 2.0 enabled sites. Superb news.

Here is a subset of the features becoming available (copied from Scott Guthries blog):

WPF UI Framework: The current Silverlight Alpha release only includes basic controls support and a managed API for UI drawing. The next public Silverlight preview will add support for the higher level features of the WPF UI framework. These include: the extensible control framework model, layout manager support, two-way data-binding support, and control template and skinning support. The WPF UI Framework features in Silverlight will be a compatible subset of the WPF UI Framework features in last week's .NET Framework 3.5 release.

Rich Controls: Silverlight will deliver a rich set of controls that make building Rich Internet Applications much easier. The next Silverlight preview release will add support for core form controls (textbox, checkbox, radiobutton, etc), built-in layout management controls (StackPanel, Grid, etc), common functionality controls (TabControl, Slider, ScrollViewer, ProgressBar, etc) and data manipulation controls (DataGrid, etc).

Rich Networking Support: Silverlight will deliver rich networking support. The next Silverlight preview release will add support for REST, POX, RSS, and WS* communication. It will also add support for cross domain network access (so that Silverlight clients can access resources and data from any trusted source on the web).

Rich Base Class Library Support: Silverlight will include a rich .NET base class library of functionality (collections, IO, generics, threading, globalization, XML, local storage, etc). The next Silverlight preview release will also add built-in support for LINQ to XML and richer HTML DOM API integration."

Web Development Helper

Thanks to tim heuer for pointing me to the Web Development Helper Tool, please see my previous post.

I think in a world of AJAX, you need to be running an http sniffing utility. I have previously used Fiddler, but it isn't much use when you are working with https.

This tool is absolutely superb, and easily allows you to debug script, capture traffic, look at viewstate, the dom..........

What a great tool

HTTP Error 413 Request Entity too Large

We ran into this issue via AJAX.

To be honest this is on a legacy page, where we haven't created a new version of the page. So it a little data intensive.

This was a page where we used the telerik ajax framework rather than the Microsoft ASP.NET Ajax framework (which we try and use in most situations).

The problem with Telerik, if an issue happens the AjaxManager doesn't report the issue, and just goes into a little animation loop.

Using IEWatch we discovered that this situation occured only when we had had client certificates enabled with a certain size of data.

In the end our temporary resolve is to increase the upload limit:

cscript adsutil.vbs set w3svc/1/uploadreadaheadsize 204800

However you do need to be careful when doing this, and set approriate limits. The real resolve is to convert this legacy page so this issue doesn't occur, but this is a good temporary fix

IE Watch

This is a great little tool, it's a little like fiddler, but much better.

IE Watch is a toolbar option within IE, which allows you to view all requests, replay requests, and works properly with HTTPS. Fiddler doesn't seem to do so well with https in my humble opinion.

I used this on a 30 day eval (retails about $170), and it saved me alot of time.

My only complaint it is a little expensive, and I am willing to bet there are free alternatives, which are just as good.

I think these days, when dealing with AJAX requests, http packet sniffers are necessary. So I think I will investigate a free alternative.

Tuesday, 27 November 2007

DDD6 - Silverlight Samples

I have just posted up my samples for the Intro to Silverlight 1.1 and for the Silverlight Twitter Application.

As I have said in my previous posts, on the day I did not present the way I know I can, however I believe that the samples you have to download are good examples of what you can do with Silverlight.

Feel free to take these samples, expand upon them and build your own applications.

Over the coming weeks, I will be blogging about some of the stuff in the these samples, and some of the cool things you can do.

Monday, 26 November 2007

DDD - Stop showing me Silverlight, build something

Following on from my previous posts and

This is my evaluation of what went wrong with this session:

  • Rattled, and lost confidence (see previous post)
  • Sitting down (i should never sit down)
  • Tired and Lacked enthusiams (see previous post)
  • Never practised this session enough
  • Got lost in this session
  • Too much code (confused the audience, and me), can't see wood for trees
  • I got bored (if I am bored, you guys have no chance)
  • Live Coding, and Reference apps were disconnected.
  • Flow was wrong
  • Not clear what bit of code i was working on

The real problems with this session, was due to the way i had structured this presentation, and how complicated, and ambitious I was.

Without comfort in the tools (for presenting purpose), and with a very different flow, everybody including me got rather lost.

I was boring, and unenthusiastic (due to the events leading upto this presentation).

I have some serious work to do on this, but I am pretty sure this will never happen again.

In future posts, I will discuss how i plan to rectify this in the future.

DDD - Intro to Silverlight

This a list of my points (and some of Guy Smith-Ferriers, John's and Richies points), of what went wrong at this session. I will add to this list when I get feedback.

  • I was very tired meaning that I was not enthusiastic as I could be.
  • Due to the events on the Friday, I had lost my confidence.
  • Vista on my laptop would not work with the projector, which rattled me, and I had to switch to XP.
  • Starting 5 minutes late, rattled me (due to projector issues).
  • My Laptop wasn't setup to do the demos in XP.
  • Vista is much faster than XP, meaning that my samples were being slow, and this rattled me.
  • I usually psyche myself for a presentation beforehand, which i never got a chance to do
  • I mistakenly agreed for the lights to be switched off, which disconnected my from the audience.
  • I frequently switched between the demo, and the code, not giving folks a chance to absorb the code, and the impact of the demo
  • It wasn't clear which bit of code I was referring to
  • Still a little rushed, may'be packing too much in
  • I turned my back to the audience a couple of times
  • I got a little lost in my first demo (due to being rattled), and it took me time to get back on track
  • I was very nervous
  • It was my first ever one hour session, and there is a difference between this and 20 minute sessions
  • I never really let my style, and enthusiasm come across, due to the above events

The positives

  • I kept to time pretty well, and got across what i wanted to samplewise
  • I had a backup copy of XP
  • I felt my knowledge of Silverlight really came across
  • I think people will come away from this session, and be able to get started with Silverlight

All in all, I was very disappointed with myself, and I know that I can present so much better than I did. However I do have a good list of points that I can really work on to improve my presentations.

The bad news this was my better session, as the following session was a real disaster. I will follow up on what went wrong with this session later.

I still have to post up the samples, which will be later on

DDD Apology

I believe DDD was a great success, and hats of to Guy, Zi, Phil, Craig etc, for organising a great day.

Unfortunately, I must apologise for my sessions. I am highly disappointed in myself, as I know I can present around 1000 times better than i did.

If you attended any of my 2 sessions, I will post up my samples later on today. On a positive note, my samples are good.

I will be critically evaluating, what went wrong for me on the day, and how I will be resolving this in the future for later sessions.

I have learned a lot of lessons, and these sessions were my first ever one hour sessions, and this was my first time presenting at a conference. I do not offer this as an excuse, but just as a contributing factor. The blame lies purely with myself and my lack of experience is just a factor.

For those of you who attended my sessions, i thank you for turning up, and putting up with me. In the future i will resolve these issues (to be posted later), and I know that in my future sessions, I will be giving much better presentations.

Again thanks for coming to my session, and thanks to the guys at DDD (especially Guy Smith-Ferrier, who is an outstanding bloke, a real inspiration, and a real champion for developing UK speakers).

Let the critical evaluation begin........

Sunday, 18 November 2007

First draft of DDD sessions finished.

Well, it has been a very long few weeks (especially the past few days).

However, my first version of both presentations I am doing are now ready, yay.

The rest of this week, is just tidyup work, finalising some slides (i only have around 5 per session), finalising the structure, and going through it.

However, it is time to relax.

I have to say, I am particularly pleased with the "Silverlight Twitter" session.

Wednesday, 14 November 2007

The you choose nugget in Coventry

So I did a nugget in Coventry on Monday night for NxtGenUG. Thanks to Rich for letting me do this nugget.

I think this was my most challenging nugget to date. I had agreed to let the audience choose the nugget they wish to hear the most about any of the new C#3.0 language features and how they work at an IL level.

Not only did I have to prepare 6 nuggets, and only present one, but the presentation skills speaker was on after me. I was more nervous about this nugget, than DDD.

At the end of the night, I was really happy with the way i presented, and the speaker guy was absolutely amazing, and I have learned so much from him, and I am sure DDD will go so much better for it. He was really complimentry, and in the end I am happy and confident about speaking. Unfortunately I wasn't so happy with the subject in the end. I think it was a mistake to let the audience choose the nugget, however it was a great challenge to do so. I guess if you voted for another nugget, you wouldn't be happy that i presented a different one.

I also think the subject was to deep to be doing as a nugget for a user group evening. I think in future, I will keep this as an entire session, which allows me to tackle it (with questions), at a reasonable pace.

However saying that, I was suprised that the feedback (so far) is really good considering.


"great nugget - under a lot of pressure brave man - well done."

"Good stuff on the wrong night. I'm not sure I like to be asked which nugget I want - just feed me the nugget please."

"Enthused, indiviual brave and wears's a loud beach shirt to boot, now that's a guy you want at your next party talking about computers."

"Chris did extremely well to do a nugget off the fly, and managed to give a succinct and clear overview of lambda expressions in a very short space of time. Well done."

"The presentation chris provided was extremely good and interesting to see what is actually going on behind the scenes."

"Well prepared and presented."

"Sorry, just caught the last few minutes of the nugget, but liked what I saw - well done!"

"Very enthusiastic but a bit rushed; Nice shirt!"

" thought the point was being demonstrated (i.e. CLR has not changed) was covered quite well, but the 'show the IL or #1 then for #2' didn't really work so well. It would have been a little better if there were a way to see the IL side-by-side. I accept that the IL is the same, but it wasn't really possible to confirm that with your own eyes as #1 was removed from sight to show #2."

Some really great comments, very constructive, and will really help me improve my sessions. I have only been speaking for 2 months now, so this is really helping me find my style, groove, and preparations.

Thanks again to all the guys in Coventry for being brilliant.

Thursday, 8 November 2007

Silverlight and WCF Services

This is a pretty good article on how to expose a WCF service to AJAX. AJAX accessing uses JSON to interact with web services. In order to achieve that you need to make the service as Scriptable.

Although this article is describing interacting AJAX and WCF, the same technique applies for exposing WCF services to Silverlight. Please note for silverlight you must have the service running under the same domain (as cross domain communication isn't supported at this time).

Tuesday, 6 November 2007

Automatic Properties Nugget Feedback Birmingham

I've got some early feedback in from Dave at NxtGenUG Birmingham.

2 x 9's
3 x 8's
1 x 6


"OUtstanding nugget again! Smooth, well presented."
"Good subject for a nugget"
"I don't think there was much discussion on IL. The automatic property was introduced quite decently. The presenter should have delved into some more details especially regarding its implications, in writing better code.. (smell free!).."

I don't expect too much feedback from this nugget as there was only around 15 people at the event. This was the feedback as of Friday.

All in all, I am very pleased with the feedback. I think I am finding my style and way for speaking, and getting more comfortable about it.

A Silverlight Image Map

I've been preparing one of my sessions for DDD, and trying to bring new and fresh samples for the talk. One of my aims is that even if you have seen a Silverlight session before, you will come away with some new and useful knowledge.

In my talk I will obviously cover the Image tag in XAML, which led me to creating a crude little image map as demonstrated by the XAML below:

<!-- An Image Map -->
<Canvas Visibility="Visible"
Canvas.Left="20" Canvas.Top="200">
<Image x:Name="myImage"
<Rectangle x:Name="leftEye"
Canvas.Left="42" Canvas.Top="48"
Height="12" Width="10"
Stroke="Black" StrokeThickness="2" Fill="Red" Opacity="0"
<Rectangle x:Name="rightEye"
Canvas.Left="57" Canvas.Top="48"
Height="12" Width="10"
Stroke="Black" StrokeThickness="2" Fill="Red" Opacity="0"

The key to how this works is, the rectangles being the click points. I.e. Its an image with 2 rectangles overlaying the image. By setting the opacity to 0, it makes the rectangles act as a hotspot even though its not visible.

Please note that I have used a fill, as the default fill is transparent, and therefore the center of the rectangle is not hittable, so it needs to be a solidcolorbrush.

Anyways I will demo this for DDD, and I will probably make it a little snazzier than it is just now.

Thursday, 1 November 2007

Automatic Properties in Birmingham

I was in Birmingham last night doing a nugget on Automatic Properties. I tried to demystify what is going on with Automatic Properties and looking at it from an IL perspective. We compared it to fields, and regular properties, and what is approriate in what situation.

I think it went pretty well (only feedback will tell), people didn't seem to be too scared by the IL. I was especially pleased that i seemed to do a lot better with timings, and I came in undertime (which is good), and gives me a warm fuzzy feeling for DDD.

My Silverlight laughing cavalier XAML thingy went down pretty well, so I think he will be making an appearance at DDD, and then I will make him available to download.

I will obviously post my feedback when it comes in (Good or Bad)

Thanks again to Dave and everyone at NxtGenUG Birmingham for having me speak.

Silverlight 1.1 has expired

My Silverlight 1.1 has expired, and there seems to be no refresh in sight.

Help me obi-wan guthrie, you're my only hope.

Seriously, we need a new refresh please?


I just reinstalled the refresh again, and my 1.1 is working again. Very bizzare as the error i got was definately about the version of Silverlight installed is no longer valid.

Well we will just wait and see

18th / 19th of March in the UK

On MSDN Flash, Daniel Moth has indicated something big is happening on the 18th and 19th of March.

I am assuming it is some sort of marketing launch for Visual Studio 2008, since the US marketing launch is February.

I guess I need to block out those dates