Thursday, May 28, 2009

Expression Blend

With the coming trend towards UX in general and my interest in Silverlight I have taken to following a number of up and coming designers. One 'Ariel' that I know has had her blog going for a while but hasn't posted a front end on her site finally got around to it. very cool :)

http://www.facingblend.com/index.html

Saturday, May 23, 2009

Silverlight Simon/WPF Simon on codeplex

I posted the solution for Silverlight Simon and WPF simon up on codeplex:

http://simon.codeplex.com/

this is a great solution for showing the conversion from WPF and Silverlight, using precompiler specifiers and other small differences between Silverlight and WPF elements.

Thursday, May 21, 2009

Flex Flash Smack Down and maybe some Silverlight

Last night was the Seattle Designer Developer Interaction Group (user group) meeting. its a user group focused on UX and the designer developer experience. We meet in downtown bellevue. Last night Yoeun Pen was our guest speaker and a did a great presentation on Flex/Flash. Granted we were bolted out of the board room by the local construction cure and we had to play ninja and come up with a venue on the fly but some a miracle (ie, talked to hotel that we have our room booked with normally) we got to use a better room near by (about 100feet). We had a great turn out and a great dicussion on the tools for designers vs the Flex IDE. I was pleased to learn that the designer developer story is better then some of the other technologies we looked at but not as clean as WPF/Silverlight.

Yoeun Pen covered a number of things including:
  • What is Flex?
  • MXML (flash version of Xaml)
  • Flash/Flex 4?
  • Flex SDK
  • Flex Builder
  • Flash vs Flex
  • Components
  • Embedding assets
  • Skinning

and he did a great job contrasting Flash and flex and compairing that with Silverlight/WPF. You can download the powerpoint at:

http://www.HackingSilverlight.net/Downloads/FlexFlash.zip

Yoeun's blog is at:

http://www.nationleprechaun.com/

Hope to see everyone at the next SD2IG about the latest topic related to UX.

Monday, May 18, 2009

Silverlight 2 Installs Greatered the all others combined...

Can't get over the quote '... Silverlight 2, the platform is installed on more machines around the world than the web browsers Firefox, Safari and Chrome — combined. Damn. Them fightin’ words.' from:

http://www.techcrunch.com/2009/05/18/microsoft-says-silverlight-installed-more-than-firefox-safari-and-chrome-combined/

Routed Events in Silverlight

Andrew the local uber genius at IM, likes to take on simple tasks... some of his recent accomplisments including, writing aber 3d physic's engine for surface, writing a UX gesture engine for fun and hey while he is at lets add Routed Events for Silverlight... So anyway Andrew posted his current little project on Codeplex for everyone and I'm certainly going to use it as the latest cool hack. :) So I'm going to include it in the HSL library but only the SL related bits. If you go out to Andrews codeplex project you can see that it is simple to use and extends Silverlight that much more. Its pretty click and lets you define and event, subscribe to events and they even get raised.

check it out at:

http://sl3routedevents.codeplex.com/

Sunday, May 17, 2009

Xaml WCF Binding Type

Just kidding... as of late I am not aware of such a think however, it could be done. I was pooring over the great project in outer darkness I'm working on and Karim sitting near by was talking about using Xaml as Clr Object markup and Xaml Reader. In joking about it came up to use Xaml as and WCF binding type. Eventually we got to a more serouse topic about the limitations of WCF support in Silverlight event Silverlight 3. In any case John Papa's book on data driven services with Silverlight 2 is probably the best resource on the topic as of late and John did quick post recently on Silverlight 3 and bindings supporting in Silverlight 3 which includes binary support which would be made in some 'Xaml' hack :)

http://johnpapa.net/silverlight/wcf-binary-bindings-in-silverlight-3/

Monday, May 11, 2009

MSDN Events Unleashed: Best of MIX

Doing a presentation on what is new in Silverlight 3 at the MSDN Unleashed event in July:

http://msevents.microsoft.com/cui/EventDetail.aspx?culture=en-US&EventID=1032414266

in your in the greater seattle area it will be alot of fun and we get to learn some new Silverlight 3 goodness. Hope to see you there.

Friday, May 8, 2009

Silverlight 3 to Silverlight 2

here is a cool post on going from SL3 to SL2 on the same dev box.

http://blogs.msdn.com/amyd/archive/2009/03/18/switching-from-silverlight-3-tools-to-silverlight-2-tools.aspx

Stay At Home Server in Silverlight

The book as been out for a while, but its just wrong on some many levels. I certainly keep one in my office... now you can enjoy it online and read it to your kids at bed time too... and its in Silverlight no less.

http://www.stayathomeserver.com/MommySite/default.aspx

WPF Blendables controls

a new drop of the WPF blendables control was released. not strickly silverlight but still cool.

http://blendables.com/blogs/blendables/archive/2009/05/07/new-blendables-versions-now-available.aspx

Friday, May 1, 2009

WPF Simon

here are links to download WPF Simon (the WPF version of Silverlight Simon)

http://www.hackingsilverlight.net/Downloads/WpfSimonInstaller.msi
or just the zip

http://www.hackingsilverlight.net/Downloads/WPFSimon.zip

Converting Silverlight Apps to WPF

Using Ariel's Simon design I built this game called Silverlight Simon. Jobi suggested making it a WPF app and then a surface version. I got it working and will do a post on it later but strictly speaking here this is how I overcame some of the issues going from a Silverlight user control to WPF.

The first thing I found out when I moved my code into Xaml was a number of things that WPF doesn't do that you can do in Silverlight.

1. there is NO VSM... at all.
2. there is no autoplay on media element.
3. no 2.5D (ie, all the plane projection stuff)
4. and all my animation calls to story boards didn't work.

When I first ported the code over I knew the VSM and 2.5d was not going to work so I started with ripping that out. the first thing that then poped up was all my animations calls. For example say I have a click event and I'm doing something like [animationname].Begin();

well that doesn't work as all my animations are 'resources' I played with this for a while and with some Dr. WPF medicine I found that I basically had to change all my animation issues to something like this:


Storyboard foobar = TopSimonGrid.FindResource("PrefsBtnPressedKey") as Storyboard;
foobar.Begin();

from their I got my animations working. I then removed my auto play on the media element and it would compile. but as soon as an event tried to fire a sound I got another error. I ended up having to add
LoadedBehavior="Manual"

that way my sound method started working. At this point you could play the game if you could get past the fact that all the styles that used the VSM looked like crap. I know there was this codeplex project called WPF Toolkit ( http://www.codeplex.com/wpf ) which included a prototype VSM (Visual State Manager). I pulled it down and tried it out. The only hard part was figuring out the right name space to get my vsm: working. as it turns out it is where you would expect if it was part of WPF kind of:

xmlns:vsm="clr-namespace:System.Windows;assembly=WPFToolkit"

With this mojo going on everything worked but my flip fx control. I couldn't find that any one get industrous enough to build the 2.5d stuff for WPF so I took the old animations from the SL2 fx control but put them in the vsm flip animations generic xaml so that it would use that instead of the 2.5d. I then had to change the content presentor to have the transforms needed and then poof like magic Silverlight simon worked like a champ.

For something extra I ripped out the WPF window chrome so Simon sits on the desktop and I found that my drop shadow on Simon was know on my desktop.

for those that are interested ripping out the chrome which is way easier then it used to be I had to add this to the window tag:

WindowStyle="None" ResizeMode="NoResize" AllowsTransparency="True" Background="Transparent"

from there you can pretty much do what you want.

ok ok ok, here is a little update. for Simon the above works fine... but for my uber tile project a few more issues came up... starting with dependency property registration sanity check....

So it is not so much a difference other then that the code that shouldn't work does in Silverlight 3 but blows up properly in WPF. take a look at this code:

public readonly DependencyProperty BackLink2TitleProperty = DependencyProperty.Register("BackLink2Title", typeof(string), typeof(MediaPlayer), new PropertyMetadata(new PropertyChangedCallback(OnBackLink2TitlePropertyChanged)));

in the named registration value you can't have two of these with the same value. Silverlight will currently over look that little indiscretion. WPF... not so much :)