after playing around with some facebook toolkits, i wanted to ensure that facebook could enable silverlight applications within their context.  you see and already live in harmony in popfly where you can create oh, i don't know, whack-a-mole with your facebook friend profiles? (sidenote: popfly was just updated again...read more here.)

i figured i'd whip up a quick and dirty proof using the python cube example (thus also testing to see if silverlight streaming in a facebook app would work).

lo and behold, no problems:

using my newfound friend , you can see a quick screencast of me adding it in facebook.  yeah, more cowbell...er, i mean, facebook!  you can check it out here.

i know i posted earlier with a pointer to the preview sdk over in sneathville, but i walked through the docs this morning and just wanted to re-iterate the need to look at the breaking changes document included in the preview sdk.  why? because when i look at the numerous samples i see that some are likely to be affected.  wouldn't you want your sample to run when the release candidate is put in the wild?  i would.

breaking changes...ugh...they suck.  but bear in mind this is beta and we knew there could be some.  in looking through the docs, i wanted to highlight some that i felt were more common.  the docs do a good job of discussing the change, and showing before/after code.

anyhow, here's my list:

removing 'javascript:' in event handlers

note this applies to if you are coding your even handlers in your xaml like this:

<Canvas x:Name="myButton" MouseLeftButtonUp="javascript:foo" />

you'd want to change that not to include the javascript: prefixer.  personally, i'm of the belief you shouldn't embed your event handlers in your xaml necessarily.  i heard (and saw) a very good discussions on reasons why it might not be a good idea especially if you have designers generating xaml for you.  each generation of xaml from a tool like Expression Design won't 'merge' event handler wire-ups.  what this means is that if you have xaml with event handlers like this and your designer checks in a new xaml file, your app might break because they are using a design tool that may not have functions to enable event handler wire-up in xaml.  i'm babbling here, but note the change if you are.

removing "Sys."

probably going to affect everyone.  instead of Sys.Silverlight.foofunction() you'll need to remove the Sys. prefixer here.  quite simply, the namespace "Sys." was removed in the RC.

using the downloader object

one of my favorite little objects in silverlight.  in the beta bits, there was a third param in the creation that enabled you to choose whether the downloader would perform async or not.  that param is now removed...all downloads are async.  the sdk doc describes a method you can do to trick out the beta bits, but note that the third param is no longer there.

downloader.open("get", file, true) 
//becomes 
downloader.open("get", file)

visibility:hidden is now visibility:collapsed

um, it couldn't be explained any simpler.  hidden and collapsed meant the same thing, so we picked one and kept it consistent...hidden is no longer...use collapsed.

elements in Resources node must be named

good practice anyway that should have been followed, but if you are creating resource storyboards, etc. then you need to name them using the x:Name attribute.  this applies to anything in <Canvas.Resources>

AddEventListener returns a token for RemoveEventListener

basically if you were using removeEventListener before, you'd specify the object and the event handler function.  now, you have to pass a pointer to the token.  so when you add an event listener, you'll get a token as an object return.  you'll then use *that* in the remove command instead of the function name.  something like this:

var enterToken = myObj.addEventListener(“MouseEnter”, myEnterHandler);
myObj.removeEventListener(“MouseEnter”, enterToken);

version property in plug-in creation is obsolete

instead, use isVersionSupported instead.  this is what the new silverlight.js file looks for (note: the new silverlight.js file is also located in the preview SDK).

so there are my key highlights.  there are more, and you really should download the preview sdk and read the docs.  prepare yourself.  prepare your samples (myself included, i need to find the time to go back, but i'd imagine your samples are much more important).  get ready for RC baby!

i recently posted about working with and using the facebook toolkit that microsoft apparently partnered with to create.  i just noticed that nikhil has created another facebook toolkit for .net, which he calls .  i'm not sure if nikhil knew about the existing toolkit, but he did do some interesting things that i'll have to take a look at that will also enable writing facebook applications (i.e., *in* facebook).

this will enable you to create FBML applications more easily through the use of ASP.NET controls and .NET wrappers of the REST calls he made...pretty cool, check it out.

so up in the valley (the one of silicon, that is), they have very interesting and different ways of getting communities in the tech world together.  one of them they've dubbed the .  i swear everytime i hear that said or even type it myself i can't stop thinking of saturday night live's tv funhouse:

but i digress (again).  anyhow, what is supperhappydevhouse?  well, if you read the site it is described as:

DevHouse is not a marketing event. It's a non-exclusive event intended for passionate and creative technical people that want to have some fun, learn new things, and meet new people. In this way, we're trying to resurrect the spirit of the Homebrew Computer Club. We also draw inspiration from the demoscene as one of the only intentional getting-things-done computer events in the world.

so how do i interpret this?  bunch of geeks, someone's house, lots of laptops, ideas floating around, people helping each other, hack-a-thon.  think of it as a barcamp bbq perhaps.  so in the spirit of this, a few in the other valley (the one of the sun, that is) have organized the .

so what is it?  didn't you just read above?  bring some grub that might taste good on a BBQ (one will be provided on site -- not sure if BBQ concierge is included though, so be prepared to cook it), bring some geek code, robots, whatever.  oh yeah, it will probably be like 138F outside, so if you want to stay cool outside, bring some swim gear (please, no speedos) as there is a pool.

so what could you expect?  your guess is as good as mine... i anticipate some conversations going like:

"dude, you should totally write a web app in ruby on rails to program your system in your pool!"
"nah, you'd need to open a web service endpoint on the pump valve so it would know when to go."
"yeah, you're right, but if we had ajax, then it would work."
"true, but why use ajax when you could do it all in flex?"
"or excel!"
"true dat, true dat."

or maybe something different.  it sounds interesting, it sounds fun...if anything come out and get to know some folks.  the information is all at the wiki site -- be sure to add yourself as coming.  there is a lightening round scheduled as well to show some stuff to everyone.  here's some of the details:

What:Phoenix DevHouse
Phoenix Dev House is not a marketing event. It's a non-exclusive event intended for passionate and creative technical people that want to have some fun, learn new things, and meet new people. In this way, we're trying to resurrect the spirit of the Homebrew Computer Club. We also draw inspiration from the demoscene as one of the only intentional getting-things-done computer events in the world. Pool included. Bring your swimming gear if you want to keep cool. BBQ on site. Please bring anything you want to put on the BBQ for consumption. Working on sponsors for beer, drinks and appetizers. If you know someone interested let me know. No ethernet access. Free Wi-Fi access provided.
When:Saturday, August 4, 2007 2:00 PM to Sunday, August 5, 2007 1:00 AM
Where:DevHouse #1
21469 East Lords Way
Queen Creek, Arizona 85242   United States

sure, it's in queen creek, but if you haven't been to the 'crik in a while, you don't know what you are missing -- we have safeway's and stuff out here now.  here's a map of where it will be.

as seen on facebook...

"John [Lam] is VERY pleased with the performance of dynamic sites in Ruby." (13 JUL 2007)

see you at OSCON next week :-)