Thursday, 25 November 2010

Windows Azure Table Storage stupid mistakes

Don't program when you're tired ...

I've been working through the Azure labs and as usual I don't stick exactly to the script (how're you supposed to learn anything if you don't challenge the boundaries? ;) ) So after 2 late hours I couldn't figure out why:
Created tables, but the more common


I just noticed now that in my "ThingContext" here:
        public IQueryable<ThingOneThingOneEntities
                return this.CreateQuery<ThingOne>("ThingOnes");
the property name of the entity set was different to the EntitySetName I declared.

Setting them the same made everything happy again.

In other words ... magic strings are evil!

Tuesday, 23 November 2010

Windows phone 7 impressions : 2 weeks on

So it's 2 weeks on since I finally got my grubby mits on my Omnia 7, and overall I'm pretty happy with it. It's solid without being cumbersome and the UI is really slick.
The AMOLED screen is a marvel of crispness.

Having said that the phone, as any v1 product, has issues. The most jarring being without doubt the combination of tombstoning and capacitive face buttons. Being unceremoniously dumped out of "the harvest " and having to wait a minute again to resuming is something that would prevent me recommending the phone.

Overall though, I'm pretty excited about what should be in the pipeline for wp7 when I see top class apps like ninemsn and bye bye brains.

That and the fact I managed to type this entire post on my phone without issue is a testimony to both the keyboard and the browser.

Oh and the Omnia 7 camera is pretty good, I just don't get the reasoning of having  the default video format unplayable on the Xbox 360.

From a dev perspective the tools are really excellent, with a bit commitment I should have something presentable soon.

Tuesday, 2 November 2010

Silverlight ... HTML5 ... *sigh*


Steve Ballmer and Bob Muglias comments on HTML5 & Silverlight are nothing new. Well, except it being by the CEO, the relevant VP and at PDC. I guess that can look worrying if you want to it to.

I've actually found the fallout quite positive. In truth their comments were completely expected, if Microsoft was trying to "take over teh world" by installing silverlight on every device I'd say they were foolish and naive. It failed for Java, it failed for Flash, why would Silverlight be any different? Silverlight fulfills a different role to html, that explaination was the only bit missing from the keynote.

That's what's been great about the aftermath: The role and future of Silverlight has never been better expressed in so many ways and in such detail. If these perspectives had been made clear during or before PDC it would have been a none issue. Here's some of my favourites:

Bob Muglia's response

Great detailed post from Mike Taulty

MVPs Jeremy Likeness & Laurent Bugnion also weighed in nicely 'from the coal face' on the subject:
Rather go look at the portable library project ( to go see exactly what makes Silverlight so awesome.

Tuesday, 7 September 2010

Think of Silverlight as more “Thin Client” than “Rich Web”

There's a lot of justify your platform going on at the moment. I see Mike Taulty has weighed in on the subject.

The thing is that the 'HTML5 lobby group' aka Apple and Google, have a lot to gain by denigrating Silverlight and Flash. iOS doesn't support it and Google's core strength has been by commoditizing the web with its thousands of JavaScript programmers. HTML5 is all well and good, but in the rush to save the universe people are getting a bit blind. Add these two behemoths to the voices of the thousands of "script kiddies" that consider a couple of lines of copy and pasted PHP and JavaScript programming, and you'd think we're reached software Nirvana.

The truth is HTML is still HTML and Flash and Silverlight are not just about streaming video.

Even using a better browser like Chrome or Firefox, how many times have you been frustrated waiting for a page to load? Have you gotten irritated, or worse – had to apologize to a customer, while trying to find what you were doing in a mass of tabs or accidently closed the wrong tab and lost their state? What about sitting waiting for something to happen while JavaScript has a meltdown and there's no way of knowing? That's just from a user perspective. From a developers view, JavaScript is a complete PitA, and trying to do LoB or Verticals levels of complexity is a killer, never mind the testing time.

Then there's the whole question of running disconnected. Page storage is all well and good but what happens when *shudder* you have to move to another page? What about device integration?

The truth is Silverlight (and Flash) presents real value to application developers but is a bit difficult to quantify if you haven't felt the pain of trying to develop large HTML apps.

But that's just me.

Monday, 6 September 2010

Dear Microsoft, you were SPOT on. Not.

I guess it's the same old tail. Microsoft, a good idea, squandered. Right idea, wrong era.

...Picked up and owned by Apple.
The iWatch Is Real: It&#8217;s the New iPod Nano [PIC]

SPOT was Microsoft's attempt at smart watches, announced back in 2003, and after 5-6 years of spinning it's wheels it was canned. Barely 2 years later and Apple are back with a real how-to.

Music, Phones, touch PC's, Watches etc etc. Apple gets it right first time and executes in a focused manner. There's a lesson to be learned there.....

Thursday, 19 August 2010

Why ‘web’ doesn’t ‘win’

If you haven't heard, apparently HTML5 is going to kill native apps. Awesome. Please tell my competitors that. Convince them in fact. I'll stick with my "obsolete" native apps, weather the hype and pick up their customers when they all decide to jump ship.

There's a great series of articles up on Wired at the moment, well worth the read for anyone pondering the future of the internet

Tuesday, 17 August 2010

Silverlight Deployment dispatcher

Note to self. I encountered this problem when trying to access WCF Data Services from a Silverlight App, specifically when running out of browser. Trying to set a collection that's bound to a UI thread throws a cross thread exception, you're supposed to use the UI Thread dispatcher.

A lot of examples suggest you use the Application layout root dispatcher, but Shawn Wildermuth (as is so often the case, thanks Shawn!) has the right answer. You need to use the Dispatcher in the Deployment class as such.

        () => results.Text = "Pooled Dispatcher Worked");

Works like a charm.

Windows Phone 7 Launch Games

Awesome. Apps? What Apps?

Every time I see great demo's like that, my aspirations for world domination collapse ...

Monday, 16 August 2010

Snip of the week

Without a doubt the most interesting bit of news last week was Oracle suing Google over Java.

The best comments coming form Miguel Icaza of the Mono Project. Most notably:

Unlike the Java patent grant, the Microsoft Community Promise for both C#, the core class libraries and the VM only require that you have a full implementation. Supersetting is allowed.
Additionally, Microsoft has placed the .NET Micro Edition entirely under the Microsoft Public License which comes with an even more generous patent grant, and covers a superset of the code covered by ECMA/ISO 335.
We have open source implementations of both, and even more luckily, the ECMA/ISO VM specification allows for different profiles, to allow for ultra-small or server-sized versions of the VM to be created. Ideal for mobile platforms.
Google could settle current damages with Oracle, and switch to the better designed, more pleasant to use, and more open .NET platform.

 I really like the Mono project and hope this does them some good, especially with the success of MonoTouch and the upcoming release of MonoDroid. With cross platform skills becoming more of a necessity than a nicety, being able to present a unified C# story is a great prospect.
Hello Blogspot, long time no see ....

It's good to be back. After trying spaces for what seems like a painful eternity I'm happy to be back. the old stuff is still there, well at least until I figure out how to port them across.