Search Site

Live Search

Screencast: WPF+SL2 Silverlight Clients

My Demo's Happen Here entry (entries closed last month) was on Visual Studio 2008, how it can rock your socks by creating Twitter clients in WPF and Silverlight.

Or you can stream the original video in WMV from Silverlight.Live.Com. You can download the solution (73kB) containing the three projects, which requires the Silverlight 2 Beta 2 SDK.

For interests sake, the screencast was recorded using Microsoft's Community Clips Recorder and edited with Windows Movie Maker - both free (well, providing you have Windows). Community Clips Recorder is fairly basic when you compare it against Camtasia, as it has no editing, zooming, or highlighting capabilities. However depending on the situation Camtasia is overly complex and the price difference is something to be considered.

 

Silverlight 2 Beta 2 "wants"

Update: Okay, so SL2B2 is coming out next week apparently, and it addresses at least some of the control issues! Maybe I'll get some of my wants sooner rather than later.

No, this isn't a leaked announcement of SL2B2, but things I want (need?) into Silverlight before v3. I've been playing with SL2B1 lately, and while I'd love to say it totally rocks and I'll be using it everywhere from now on…but I just can't bring myself to that level of fanboyism.

  • Native WrapPanel, yes I know of the WrapPanel on CodeProject, but its not the same.
  • Tile/TileBrush/Ability to tile images. I'm sure I'm not the only one who wants to use a tile background in parts of my app which can't overlay HTML.
  • "BitmapEffects". While these have sort of been depreciated in WPF 3.5 in favour of PixelShaders, Silverlight doesn't have the ability to do Inner/Outer Glow, Drop Shadows, etc.
  • More controls - Think of this point as <em><em'ier><EM'iest!'>! I attempted some Silverlight 1 stuff, but it was a nightmare building anything "rich" because all controls had to be built by hand. Don't get me wrong, SL2B1 has a lot more controls (and very common/useful ones at that), but there are still a fair few missing from WPF.
  • Webcam support; Flash can do it, but I personally think the amount of media stuff that Silverlight can do would make it even more useful. Webcam support in Silverlight, along with additional controls like TreeView…you could replace whatever instant messenger you currently use with a completely web based/silverlight without losing any of the rich experience!

And on a more minor note (from me)…

  • VS2008SP1 breaks Blend 2.5/Silverlight support? Argh!
  • Perhaps less restrictive port ranges for Sockets, currently only 4502->4532 & 80 are supported. According to Robert Folkesson "the site of origin restriction will go away in future release", maybe the port restrictions will too.
  • can has Silverlight for WinMo now pleeeeease?

To me, Silverlight 1 was interesting in the aiblity to deliver WMV, but failed to really get my interesting. Silverlight 1.1/2 is a lot more powerful by bringing .NET into things as well as inbuilt controls (and yes, I know a host of other things), but it still doesn't seem all there.

I can now see the obvious reason for why it was rebranded from the seemingly "good" codename of "WPF/E" (where the E stood for everywhere) - it's not WPF, its sort of a subset, but not really.

Hopefully somebody is listening..

</Rant>

 

Remix Melbourne 2008

remix_logo1 With Remix over, I thought I'd sum up my thoughts on the event. Last year's Remix was my first Microsoft event, but now I have a few more under my belt. This year I hung around Stephen Price, whose Quokka cartoons were featured all over the Remix blog. Stephen's a very cool bloke, even if he gets lost too easily.

 

Keynote

While Mark Pesce's keynote speech was fantastic, I'm not sure how much relevance there was to most of Remix. The content of Remix's sessions were always going to be about about XAML (Silverlight/WPF), IE8/ASP.NET, and Expression Studio - that is technically focused, rather than the social implications. The Live Platform session (the third session) certainly did expand on "hyper-connectivity"  (social) and the technological side of things, but the rest of the Remix "conversation" was perhaps a bit too focused on the technical or product side of things. That aside, I will repeat, it was a fantastic presentation. Get yourself on Twitter now!

If you weren't at Remix, watch the video above (text version)

Session 1 - What's New in Windows Presentation Foundation 3.5 and beyond

Speaker: Joseph Cooney

I quite like WPF, but I haven't really seen the need to move to .NET 3.5….until Joseph's presentation.

.NET 3.5 cool things are:

  • New (I think?) Addins space is in a secure isolate (separate app domains), and are able to have different security levels, such as (AddInSecurtyLevel.)Internet or FullTrust.
    For security purposes, Addins do not see a "parent" GUI object - they cannot "walk up the VisualTree".
  • Under .NET 3.5 SP1, ClickOnce and XBAPs supported in Firefox
  • Now possible to "brand"/customise the setup program (generated by the VisualStudio deploy wizard)

IMG_2870

The WPF cool things are:

  • Interactive 2D on 3D is now "native", rather than a third party/unsupported library
  • WPF can make use of some DirectX stuff natively, rather than having to Interop/P/Invoke
  • Better debugging for WPF Databinding (this stuff is gold - will be making use of it for MahTweets!)
  • Formatting in DataTemplates/DataBinding (ie, <TextBlock Text="{Binding textField, StringFormat= - \{1\}}" /> will prepend " - " to the string) Nothing "wow", but so much more logical to do that on the presentation side of things, rather than needing to modify the business objects so that you can present the data correctly.
  • Recycling Virtualisation. Emphasis because this is particularly cool. In .NET 3.0, UI controls such as a ListBox would be virtualised, generating the ListBoxItems for the items that are visible at the time (+5 items above or below). When the ListBox is scrolled, and a new bunch of ListBoxItems is visible, the old ones are destroyed.
    Recycling Virtualisation in .NET 3.5 doesn't destroy the "old' ListBoxItems, but reuses them. This means memory usage while scrolling stays about the same and doesn't continuously grow the more you scroll!
  • Out of band releases for new controls, much better than having to wait for .NET vNext
  • ShaderEffects sort of replace BitmapEffects (both still exist, but no reason to use BitmapEffects now) implemented in hardware so performance is much much better, and scales properly. You can create your own ShaderEffects using HSHL/PS

Ugly things:

  • .NET 3.5 is 200MB in size, compared to 50B for 3.0, and ~20meg for v1/1.1/2.0. 3.5 does include both x64 and x86 binaries, which partially explains the size. In VS2008/.NET3.5 SP1, there will be a ".NET Client Only Framework" (compile option in VS2008 SP1) that is aiming for ~25MB download, but wont include all the .NET libraries (such as System.Web), but only the ones that are most commonly used in client applications.

Joseph's slides and demos are up on his blog already!

Session 2 - Introducing Microsoft Expression Studio 2

Speaker: Tim Aidlin

This was a fairly run-of-the-mill "I have a new application, let me show you it" presentation, covering Expression Studio 2 (except Expression Encoder 2) as well as Deep Zoom Composer. Unfortunately, for any attendees of Remix 07 or Mix On Campus, this sort of stuff (albeit for xStudio1) was pretty much what the events were all about last time, and it felt like the audience knew a bit more (about their favourite specific application) than Tim did.

While the list of new features to xMedia2 are neat (RAW image handling, batch renaming, metadata browsing, voice annotations, gallery generation), I still don't really know what its purpose is in the Expression Studio suite. If it was a free app I could probably find a use for it, but for photo/image management Live Gallery is "good enough", and I manage all my music in Media Player…maybe its great for video management?

Contrasting with statements from Lee Brimelow from last year (that "everything you can do in Design, you can do in Blend, so I don't see the point of xDesign"), Tim showed off xDesign2 and some of the reasons why you'd use it over xBlend. Yes, you can probably do everything in xBlend, just like everything you can do in Photoshop can be done in Paint. Being a developer, I think I'll still be sticking to Blend, but I could see how the more artistic parts of XAML would be easier in xDesign.

Despite the improvements to xWeb2, as a developer and somebody who has been generated CSS/(X)HTML for years, I will not get any value out of xWeb2. VS2008 does all the stuff I need to do, or Notepad++ steps in when I need to go kung fu on my CSS. PHP IntelliSense/support has made it in, but this should have been a feature in xWeb2.

Session 3 - Windows Live Platform: Take the best of Windows Live and make it yours

Speakers: Angus Logan, Bronwen Zande, John O'Brien

I didn't really know what to expect from this session, the Live Platform session sounded like it would be pretty boring, but I wasn't overly interested in the other session which was upstairs, so the Live Platform session it was! I was pleasantly surprised, as this was a very cool session, possibly my favourite for the day! My laziness paid off!

The key things were how you can use Microsoft's Live Platform to create incredibly interactive websites by making use of the Live services such as Virtual Earth, Live Messenger (/Hotmail) contacts/presence, Spaces, Storage (FolderShare/SkyDrive), Notifications (via email, SMS for North America, or via WLM through the alerts service).

For a few projects I have in mind, the Live ID login system looks appealing, although I'm wondering if a service like OpenID is more 'acceptable' (by end users, since Microsoft is so evil and all, apparently). I'd be very interested in the Live Platform Team's view on OpenID vs LiveID, or if they can coexist.

IMG_2937

Angus left Twhirl running while giving his presentation, so I managed to get a few tweets popping up on the screen!

Session 4 - Building an Immersive, Integrated Media Experience in Silverlight

This session showed off the new ABC Silverlight Store, which while cool, is all Silverlight v1 stuff. It just seemed to lack the "wow", going over very similar things that were covered at Remix 07, without the edge the original presentations on Silverlight v1 had because it wasn't new. I walked out (I needed a break/fresh air, not because I was bored) before it finished, so the last 15 minutes may have been awesome, its hard to tell.

The Silverlight Store also had a matching desktop client…written in Silverlight? I think (as a demonstration of the power of Silverlight and WPF), it would have been mucho cooler to do that in WPF. The technical reasons for not doing so are more than understandable - WPF weighs in at 20meg, and Silverlight at about 4meg. Both clients being Silverlight means just one framework download/install, which is much more friendly for the target audience.

The presentation was done using DeepZoom, zooming into each slide or diagram to show more detail, such as exploding a file overview into the actual code behind that file. That bit was cool.

Session 5 - Skipped

I skipped session five, not because of the content available, but because I ran into Long Zheng, and we got to chatting. Long has a new Zune ("Long Zhune"). He's a cool guy, with or without the Zune!

Session 6 - Using Microsoft Silverlight for Creating Rich Mobile User Experiences

Speakers: Shane Morris, Michael Kordahi and David Lemphers. Originally meant to be presented by Leslie Nassar

I've been looking at creating a mobile version of MahTweets, using .NET CF. The three problems I have with .NET CF are limited controls available, it's all WinForms crap, and only available on Windows Mobile phones. Silverlight, however, will be on Windows Mobile phones and Nokia's S60 and S40 OS' phones, uses XAML solving both WinForms problem, and amount of controls available!

A good list of S60 phones can be found at the Nokia Gaming Blog - I think the cool thing is that it includes the popular E65, and all (I think) of the powerful N series phones! It is foreseeable that other phones (or browsers) will eventually be able to play Silverlight as well!

Shane talked about how Mobile is already big, but is already accelerating faster than PC/laptop markets, and the ways designs will have to change not just for the limited capability or screen real estate, but the way the mobile user "snacks" on content.

IMG_2961

Michael demo'd Silverlight on a HTC WinMo phone, but unfortunately its "pre-pre-pre-beta", so we aren't able to play with anything yet. Apparently some of the other Remix events around the world pulled the Silverlight mobile content! The goal of the Silverlight mobile project is to use the exact same Silverlight tools, and allow all existing Silverlight stuff to just work - you wont have to compile to "Silverlight Mobile", ala .NET and .NET CF.

Imagine Cup

During Session 5, I had Long talk me through what his teams project was all about. It is very cool, but rather than fumbling around to describe what it is, he's already blogged about the team SOAK entry.

IMG_2990

Congratulations again to Long, David Burela, Edward Hooper, and Dimaz Pramudya! Good luck in France guys.

Overall

It was fantastic to see that some of the feedback from last year made the event change this year, such as including free wifi and 'recharge' stations. Unfortunately, the wifi/net connection weren't too stable up until ~3pm, and other suggestions such as including pens for the feedback forms didn't make it through, so Stephen and I pinched one of the vendor's pens.

I can't remember if I wrote down "better food", but this year had a lot less salmon and cold wedges! There were even TimTams! ('cause, you know, this it totally the most important part of the day).

This year the event was split across Melbourne and Sydney, and cut down to one day (each). This year's venue (Melbourne Town Hall) was both better and worse than last year. More room to move between sessions and chairs to sit on, but higher ceilings (which created echo's and "lost the vibe"), consistently bad lighting and uncomfortable chairs during the sessions all worked against the Town Hall. A few others agreed on the venue being 'so-so', and Ed Hooper suggested that the Melbourne Convention Centre, which is where Heroes Happened was held, would have been a better choice - which I agree with.

Remix is still in an infant state, its still learning about itself, but it is developing, experimenting and evolving. While not everything was perfect, I still will be attending next year because despite all my complaints it was still a great (albeit exhausting) day. Next year, however I think I'll just take my camera and a notepad, rather than laptop + camera, which is fairly weighty. I'll also sit a bit closer so that some more of my photos turn out. Argh!

Just like last year, Nick Hodge has a summary post of activity on the blogosphere about Remix.

 

Win a ticket to Remix 08, Silverlight Skateboard or Zune!

microsoft_silverlight_c

Shane Morris has just posted an exciting looking competition to make your own Silverlight Music Video to "Step Back" by Sydney/NY musician Matt Broadfoot.

First prize:

  • A Silverlight skateboard!!!
  • A ticket to Remix 08 Australia Event in either Melbourne or Sydney

Second prize:

  • A generation 1 Microsoft Zune® Scotty had lying around – which will be lovely once upgraded to the latest software :-)
  • A ticket to Remix 08 Australia Event in either Melbourne or Sydney

Third prize:

  • A Microsoft Wireless Presenter Mouse
  • A ticket to Remix 08 Australia Event in either Melbourne or Sydney

There is a very limited number of those Silverlight Skateboards in the world, would be very cool to win one.

Competition closes at 10am (Sydney time), Monday, May 12, 2008. Only a couple of weeks, so get cracking!
Terms and conditions

 

Silverlight 2.0 Beta 1 rocks

silverlight_logo.jpgI've tried to get excited about Silverlight, particularly when I found Silverlight stickers laying around at Mix on Campus and took one for my laptop.

Silverlight 1.0 sucked (this is in my opinion) because it was Javascript - ew ew ew. It was essentially an interesting graphic engine with some pretty good video (/streaming) tech. The killer here was Javascript - if I'm going to use a Microsoft technology, I damn well want to use C#, or another .NET language I'm already using.

Silverlight 1.1 was better in that it used .NET, but it sucked because if you wanted to do anything, you had to build all the controls (such as buttons, or listboxes, etc) yourself. NOT FUN AT ALL. While yes, Silverlight 1.1 was renamed 2.0, I'm referring to the 1.1 Alpha September Refresh.

Silverlight 2.0 Beta 1, now ships with most of the standard "WPF" controls (or controls very close to them anyway), meaning it requires very little effort to go from a WPF application to Silverlight 2 application - that's cool (and check them out on the samples page). And it can communicate with SOAP(Limited? v1.1 BP I believe)/XML services rather well, I've got a WSDL thing going on - that's cool. Oh, LINQ too? Local storage? What about Deep Zoom from Photosynth (when can we get that for WPF?!) which is capable of handling (from various sources) Petabytes (1024 Terrabytes) of data?  Oh yeah, Silverlight 2 is really starting to live up to the codename "WPF/E"!

I was toying with a WPF application yesterday, that I wanted to have online, and sure enough, I could copy the majority of the codebehind and UI, so very cool!

Silverlight 2 is much more exciting, a nice example of a few of the new technologies included in it can be found at the Hard Rock Memorabilia app.

 
Blog powered by Wordpress, theme designed by me (Paul Jenkins)