| Comments

Yesterday a minor update to the Silverlight 2 runtime was released.  You may see terms of “GDR 1” floating around.  That’s pretty much an internal term at Microsoft referred to as “general distribution release” – yeah, I know we have a lot of random terms.  Think of it just as an incremental update.  If you are curious for Silverlight’s entire release history, you can view that here.

So what’s in it?  Well, nothing earth shattering if you were expecting feature updates.  There were some needed fixes based on customer feedback that we included in this update (which is version 2.0.40115.0).  Basically I would bucket it into a simple list for you:

  • Various accessibility fixes relating to UIAutomation
  • Fixes for certain anti-virus vendors scanning algorithms
  • Much needed fix for OSX platform when users modify their font locations (i.e., people with font management tools usually)
  • Bug in IsolatedStorage quota increasing when the user’s display language is set to one that Silverlight has not been localized to

That’s about it…no new controls, nothing suddenly going to make you amazed and shocked.  But it was a needed release to fix these issues. 

So what should you do?  Depends. 

If you are a consumer…

You really shouldn’t need to do anything unless you are specifically experiencing one of the issues above.  Web developers using Silverlight and needing their user’s to have this update will update their site and let you know.  There isn’t a huge need to rush out as an end-user and download the update.  Besides, if you have it configured to automatically update, then in due time you’ll get the update through that mechanism and won’t have to do anything.  If you absolutely want to be on top of things, then feel free to grab the latest updated runtime by visiting the download link.

If you are a developer…

If you are directly affected by the changes above then you should update your application.  There are really two things you need to do:

For the latter note this is a simple change.  Update your “MinRuntimeVersion” attribute in your hosting page/content to ensure that end users have the latest runtime version for your application.  Again, you should only really need/want to do this proactively if you (or your users) are directly affected by the updates in this release!  Here’s how you’d do it.

NOTE: Even though you update the developer runtime the Visual Studio project templates are not updated to set the default runtime version to the updated version so each new Silverlight project using those templates will still reference minRuntimeVersion=”2.0.31005.0” – if you want to change that you can modify the template.

UPDATE: How to modify the default value of the template

I’ve received some errors myself after changing this, so while it sounded like a good idea :-), I can’t recommend altering this reg value to the updated version – if I find out why, I’ll post here.

I got some questions about exactly how you would get the default web templates to change the generated test pages to emit the updated version number.  Since these are pages in a web project and not the Silverlight project, it isn’t easily found.  In fact, that value gets pulled from a registry setting.  The setting is at (removing the Wow6432Node if you are not on 64-bit Windows):

   1: [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Silverlight\v2.0\ReferenceAssemblies]
   2: "SLRuntimeInstallVersion"="2.0.40115.0"

and you need to change the value to match what you want that to be.  Again, this is not a required step at all.

As a reminder, messing with your registry can be dangerous if you have no idea what you are doing.  Backup your reg keys, don’t blame me if something goes wrong :-).

If you are using the ASP.NET Silverlight control you’d modify the MinimumVersion and AutoUpgrade attributes:

   1: <asp:Silverlight ID="Xaml1" AutoUpgrade="true" runat="server" 
   2:                 Source="~/ClientBin/SilverlightApplication3.xap" 
   3:                 MinimumVersion="2.0.40115.0" Width="100%" Height="100%" />

If you are using the <object> tag instantiation you’d modify the minRuntimeVersion and autoUpgrade attributes in the <object> tag for your Silverlight application:

   1: <param name="minRuntimeVersion" value="2.0.40115.0" />
   2: <param name="autoUpgrade" value="true" />

If you are using Silverlight.js to create the object you’d modify the version attribute when passing it in to the properties parameter of the createObject function (sample):

   1: Silverlight.createObject(
   2:             "ClientBin/SilverlightApplication1.xap",  // source
   3:             silverlightControlHost,  // parent element
   4:             "slPlugin",  // id for generated object element
   5:             {
   6:                 width: "100%", height: "100%", background: "white", 
   7:                 version:"2.0.40115.0"
   8:             },
   9:             { onError: onSLError, onLoad: onSLLoad },
  10:             "param1=value1,param2=value2", 
  11:             "context"    // context helper for onLoad handler.
  12:         );

That’s it!  Hope this helps.  The team is diligently working on Silverlight 3!

| Comments
test

weird



ijustine Bio

| Comments

The big news in the Silverlight developer world today is the release of Prism v2 (also called the Composite Application Guidance).  So what is this?

Prism guidance is a set of tools, samples, references and written guidance to help you more easily build modular applications.  Generally the “modular” application will feature several screens, flexible user interaction and role-based behavior.  Composite applications using these patterns are meant to be loosely coupled and contain independently evolving pieces that can work together.  So in the Prism 2 release you are provided:

  • Composite Application Library
  • Reference Implementation (Stock Trader application)
  • 9 Quick starts
  • 26 How-to’s
  • Documentation and written guidance on the UI patterns and client architectures you may face

There has been much talk about the Model-View-ViewModel (MVVM) pattern for Windows Presentation Foundation (WPF)and Silverlight development.  The Prism release adapts this model (refers to this as the presentation model to match what some other pattern documentation in the greater technology world uses) in the reference implementation of the Stock Trader application.

NOTE: The Stock Trader application is a reference implementation of the composite application guidance.  It isn’t meant to actually server real stock trading, but was inspired by those similar scenarios.

Prism 2 is an evolution from a July 2008 release that was primarily for WPF applications.  This new release brings updates and those concepts to Silverlight, including an implementation of commanding in Silverlight as well as demonstration of the use of input validation using these concepts.

For a walk through of some of the concepts and a brief discussion from the Patterns and Practices program management team, watch the latest Continuum show about Prism with Blaine Wastell.  This is a great development evolution for line-of-business application developers.  Check it out!

| Comments

Okay, I think this is pretty crappy.  Say what you want about Microsoft and you hate the company fine, but outright ignoring user expectations and preferences is wrong.

Scott Cate had found something weird happening on his experience with using browsers and the address bar search behavior.  Most modern browsers have a feature that if you type something into the address bar (not the search bar that they all also have), that it will execute a search using your configured provider and display the results.  Works great, convenient for the user and allows the user to provide options of how they want to search.  If you don’t like Live, fine, use Google.  Hate them both? Great, configure for Yahoo!.

But check out what Scott found as his Cox connection was stealing search traffic.  It displayed an incredibly lame search results page.  Here’s the facts:

  • It only happened in IE
  • It only happens from the IE address bar search
  • Cox reports this to be “enhanced error page” but there was no error page (search.live.com is a valid website)
  • Oh, and the “enhanced” is crap – their results suck
  • It does not happen with any other search provider configured (i.e., the same user action if configured for Google works as expected).

Lame.  Bad business.  Whatever.  In some Twittering with CoxTech1 (follow the thread), there seems to be a total lack of accountability other than “opt out” by providing some new DNS servers (yeah, that does not pass the mother-in-law test of usability btw).  It’s an interesting conversation to read.

I recently discovered that OpenDNS was doing the same thing.  Argh.  WTF people!?  Honor my settings, not yours.  If you truly cannot resolve a DNS request, that’s different, then help me.  But don’t override my preferences as a user!  I’ve found a few ways to fix this.

IE – Add a modified search provider

Since Cox and others are looking for the action that indicates it is coming from the address bar, remove that.  I’ve created a little page for fixing the IE/Live issue which does not affect at all the ability to use Live searching or Live suggestions searching.  You can find that button here.  Click the button and it will install the “Live Search – modified” search provider which overcomes this lameness.

Firefox fixing – keyword.url

Here’s how to fix it in Firefox:

  • Open Firefox and type about:config – it will ask you the obligatory “are you sure” – I’m guessing if you are reading this, you’re sure.
  • Filter for keyword.url 
  • Change that to whatever you want.  For Live it would be in the simplest form: http://search.live.com/results.aspx?q= or for Google: http://www.google.com.my/search?q=.

Now if you don’t mind, then don’t change anything.  Note: you can always revert back to the default if you modify either of these like above. 

Why is this bad?  I guess that’s the eye of the beholder.  Yes, I work for Microsoft and I think it is lame as an employee and shareholder.  But as loyal as I am to MSFT, I’m still a believer in honoring the customer and not stealing business.  Search is big business…advertisers pay for spots, etc.  Redirection of valid search results is stealing those advertisers’ wishes in my opinion.

But above all – these companies are not honoring me, as the user/customer, or my settings…that’s bad service.  If I could find that web site that generated the “shame on” signs I would have put a giant on here: shame on you Cox and others!

| Comments

Did I mention I’m going to MIX?  Will I see you there?  I could imagine that some have tight travel budgets, training budgets shrunk, yada, yada.  I’m telling you…if you are a Microsoft developer in the web and WPF space, you need to be at MIX09.  In an effort to help there are a bunch of ways to reduce some costs…here’s some:

I figured, why can't I have some fun as well?  I asked on Twitter for some suggestions and god a few good ideas.  Here’s my ideas: play a game or draw some pictures.

Option 1 – design a Line Rider map for MIX

One of my favorite Silverlight game implementations that requires some artistic skills is Line Rider.  So here’s the skinny:

Create a Line Rider map for MIX.  The map must include elements of the MIX09 art work (logo or current art) as well as some Las Vegas bling.  You could do a Las Vegas strip scene with some famous landmarks, making Bosch (the Line Rider character) cruise around the New York, New York rollercoaster, up the Paris tower, etc., etc.  Get creative.  Here’s some inspiration: Jagged Peak Adventure.

Post a link to a video of your track as a comment on this blog post prepending the subject with [Line Rider].  I’ll pick the winner Monday, 23 Feb 2009.  This gives you a while to do it, but at the same time plan accordingly for a trip to Vegas if you win :-).  This free pass is ONLY for registration so you still have to get yourself to Las Vegas plus any lodging you’d require.

Option 2 – Visualize Some Data with Silverlight

One of the MIX lab projects is Descry.  This is a project in data visualization.  It isn’t a toolkit that you can automatically apply to any data, but a lab project to take an approach on developing infographics which represent different ways to look at data.  So your task would be to get inspiration from Descry and create a data visualization in Silverlight using public data of some sort.  This could be something depressing like the unemployment rates over time in correlation to Presidential administrations or housing market values across your region.  Or it could be something even more interesting like perhaps the visualization of a Porshce design since the automaker’s inception, something with stock data (not a stock chart), etc.  Whatever.  You define it.  But use real information, nothing made up and name the source of your information!

Post a link to your Silverlight project as a comment on this blog post prepending the subject with [Descry].  I’ll also pick the winner of this one on Monday, 23 Feb 2009 by end of day. 

Option 3 – Create a new preloader

Inspired by similar thoughts that Page wrote recently which I agree on, I’m adding another option.  Create a new default preloader for Silverlight apps.  Use some wicked vectors, create an interesting animation.  Get inspired by other designers.  The goal would be to make it generic enough for anyone to use, but also creative.  That’s only a guide though…get crazy on this one.

Post a link to your running preloader as a comment on this blog post prepending the subject with [Preloader].

For both all of these please be sure to use a REAL email address in the comment form – it isn’t made public but will get to me…I need a way to contact you.  If you have questions, leave them here or ping me on Twitter as well!

Have fun and good luck!