| Comments

Expression Studio 4 box shotToday (7-Jun-2010) at Internet Week in New York, Microsoft announced the general availability of Expression Studio 4 which includes upgraded versions of Expression Blend (including Sketchflow), Encoder, Web (including SuperPreview) and Design.

You can find out the details of each product and download a trial at http://www.microsoft.com/expression right now.

With this release comes a free Upgrade for licensed version 3 (Studio or Web) users!  All you need to do is install the trial version of v4 on top of your licensed version of Expression Studio 3 or Expression Web 3 and the installer will find your license and upgrade it to the full v4 product with no expiration.  This applies to customers who received their software through retail channels or electronic software download direct.  For customers who have broader license agreements (i.e., MSDN, WebsiteSpark, BizSpark) you should install the product using the software provided from your program site.

Here’s a quick break-down list of what’s new in this release:

Expression Blend 4 New Features include:

  • VS2010 compatibility
  • Windows Phone support
  • Deeper Adobe Photoshop import (layer effects)
  • New behaviors & conditional behaviors
  • Enhanced sample data support
  • Listbox path layout for designing with data
  • Pixel Shader effects (including animations)
  • Easier styling and customization
  • Model View View-Model support
  • Mockup controls for SketchFlow

Expression Web 4 New Features include

  • SEO Reporting from inside of the application
  • New extensibility model enables creating add-ins with HTML, JS, and CSS
  • New SuperPreview online service beta for browser compatibility testing now supports Macintosh Safari

Expression Encoder 4 Pro New features include

  • Live Smooth Streaming (VC-1 & H.264)
  • New H.264 encoder from MainConcept
  • Enhanced Screen Capture
  • DRM (PlayReady) for Live Content

This is an awesome release for XAML, web and media developers creating interactive solutions. 

NOTE: If you are developing in Silverlight for Windows Phone 7 and need/want to use Blend for this, do not install the released version of Expression Studio 4. You must continue to use the Blend 4 Beta and Add-in Preview for Windows Phone. This Beta will be refreshed with each Phone SDK pre-release and will be unified with released Blend 4 in a service pack which will release when the Windows Phone SDK releases.

There will be a bunch of information coming out about these features and tutorials by the Expression team along with videos, etc.  I would keep an eye on Adam Kinney’s site for details on some of this information.  As the Expression Evangelist, Adam is a ‘must subscribe’ resource that you should have in your toolbox!  So go check out an overview of Expression Studio 4 and get the trial!

Hope this helps!


| Comments

The feedback from the Silverlight 4 application themes released and the latest in process have been overwhelmingly toward the positive.  We appreciate the feedback and hopefully you appreciate the transparency in the process.  As a developer I want my fellow brethren to appreciate good design and use it whenever possible … even as a default if you don’t have designers on board.

In the initial release we had some issues getting the RIA Services ones out at the same time but we’ve got those finished now for Silverlight 4 Business Application Template. 

Download the refreshed Silverlight 4 themes (inlcuding RIA Services templates) here.

NOTE: If the page still says version 1.0, then refresh a while or wait a bit.  Seems our servers have been having a bit of caching issues lately.

At the link above you’ll find 3 files to download:

  • README_FIRST.txt – please read this :-) but basically I’m writing the same thing here.
  • SL4Themes-templates.zip – this includes a folder for Expression Blend and Visual Studio templates.  The VS folder also has a sub-folder for the RIA Services templates.
  • SL4Themes-rawassets.zip – this is another (optional) zip that includes the resource dictionaries for each template on their own without any Silverlight project.

We had an issue with the VSIX format (VSIX is the community installer format for Visual Studio to make deployment of things like templates a bit easier) and the RIA Services templates, so for now it is a manual copy process (see the README_FIRST file for location).  Thanks to Corrina, Tsitsi and Deepesh for their help in refreshing these templates!

ETA on the new template will be a few weeks.  I’ll post updates of the progress likely on my Twitter feed.

Hope this helps!


| Comments

Today we released a service update for Silverlight 4.  This is a minor release that addresses some items found immediately after release that have now completed our test passes with those who reported them.  Most of the items found won’t affect all users, but media developers will want to get this update for their applications and encourage their users to upgrade.

This update (4.0.50524.0) addresses a few media-related items found by some of our media customers.  A few items were serviced for DRM users as well as 2nd monitor usage for media on the Mac platform.  If you are developing media solutions (or are a media application user), you’ll want to upgrade to this release and encourage your users to as well.  You can read more about the key specific issues in KB982926.

For Developers

If you are a developer and want to get the update, all you need is to update the developer runtime.  There is no tooling or SDK update for this release.  You can download the updated developer runtime here: Windows developer runtime or Mac developer runtime.  Once installed, your new Silverlight 4 applications will target this platform version.  No other changes to your tools are required.  On existing applications if you want your users to ensure they have this latest version, please ensure you update your <object> tag to increment the minRuntimeVersion attribute to the appropriate version (4.0.50524.0).

What about <fill-in-the-feature-issue-you-found>?  Why isn’t that in this update?!

Some may wonder how fixes get determined to be in which releases.  You may be asking hey I reported XYZ right after release and why isn’t it in this update!?  Our team, like other large teams, operates on a schedule of planned (and sometimes unplanned) releases. 

We have general timeframes for service releases in the event we need them.  Sometimes those planned cycles aren’t needed and the planned release is skipped.  This helps better plan actual resources, etc.  When an issue is identified from any type of customer, it is evaluated by the ‘triad’ for that release (a triad represents leads for program management, dev, and test).  Things like security issues are given obvious priority versus things that aren’t regressions or are new features.

Once that list of work items is determined (based on criteria set by the triad) the work begins.  This includes development, testing, compliance, security passes, etc.  Each time a change to the plan occurs, this process gets reset.  So once a set of work items is approved and determined to be the release it usually doesn’t change unless something significant.  Of course there are many other factors that are involved here and I’m generalizing.

Back to your question of where are my reported changes?  If they aren’t in this release, they are still being evaluated for the next cycle (or perhaps already being worked on and solved).  Once I have more information on future releases I’m happy to share them.

Hope this helps!

| Comments

Building on the positive feedback of the previous Silverlight application themes released last month (Cosmopolitan, Accent Color, and Windows) the design team is working on another theme targeting business application developers.  We don’t yet have an ‘official’ name for this one yet (and to mitigate the confusion of internal code names again, I’ll spare you the code name), but I wanted to put up a preview.  We’re turning this theme around FAST and I wanted to throw it out here in an initial iteration for preview and comment.  This is the ‘dark’ version of the theme and there will be a light version as well.  This represents only the core control set, but like the others will include other SDK controls as well.

I think it is important to understand the goals as well here so that you don’t wonder hey, we need more pixel-shader-gradient-creating-twhirly-things-with-datatype-binding-and-cascading-selector-path-listboxes in themes!!!  In this effort we tasked the designers to build upon the platform of the previous themes and gave them these goals:

  • Should be ‘brandable’
  • Work with navigation-style Silverlight applications
  • Easily tweakable
  • Will be used most likely by developers with little customization
  • Professional, clean for customer-based line-of-business applications
  • Modern, expressive
  • Wicked cool

It’s hard to mix all of those requirements into something that will uniformly appeal to everyone.  Given that, here’s the iteration step we are at:

Silverlight Application Theme

(click the above image for a full resolution image to see some detail better)

What do you think?  We’re hoping to also be providing some font-alternatives (working through various licensing now) so that you could use different/new embeddable fonts. 

We are moving quickly on this time around and there is little time for change beyond this week.  If you feel strongly about something, share your feedback here ASAP…the designers are listening.  We can’t (and won’t) promise that what you suggest will be implemented (again, trying to please everyone here) but we do want to hear feedback from all sorts of folks who would consider using these professionally designed application themes and styles.

Leave your comments below!

| Comments

A while back immediately after MIX10 I started messing with Microsoft Translator APIs for Silverlight applications.  I also got some people asking about Windows Phone 7 stuff and messed around with that a bit.  Here’s some post for reference:

In talking with the Translator team following MIX (where they announced they were working on a Silverlight class library for the API.  It was good to interact with their team to understand their direction and provide some feedback on how they were approaching it.  In the meantime, with their direction, I had started working on a simple wrapper for myself while writing the Translator for Seesmic plugin I was writing.  I’ve received a few inquiries on Translator so I thought I’d post my library here for you to see/use.

NOTE: This comes with a ‘works on my machine’ warranty – which means no warranty.  There are some things that should be done to make this a more proper async API (noted below).  You will also need your own Microsoft Translator application ID (API key) in order to use it.

The API is fairly simple and maps to some of the functions of the Translator HTTP-based API.  The following methods are implemented:

  • Detect
  • GetLanguagesForSpeak
  • GetLanguagesForTranslate
  • Speak
  • Translate

You’ll notice that not all the API endpoints are implemented.  Honestly I picked what I was using myself but also what I think would be most useful to application developers. 

Because this is a service, the wrapper implements the above functions as asynchronous methods, so you will see:

  • DetectAsync
  • GetLanguagesForSpeakAsync
  • GetLanguagesForTranslateAsync
  • SpeakAsync
  • TranslateAsync

Clever naming, huh?  It’s very simple to use and here’s a snippet of a BASIC translation implementation:

   1: using System;
   2: using System.Windows;
   3: using System.Windows.Controls;
   4: using TimHeuer.Silverlight;
   5:  
   6: namespace SilverlightApplication147
   7: {
   8:     public partial class MainPage : UserControl
   9:     {
  10:         TranslatorClient _translator;
  11:  
  12:         public MainPage()
  13:         {
  14:             InitializeComponent();
  15:  
  16:             _translator = new TranslatorClient("YOUR_APP_ID");
  17:             _translator.TranslateCompleted += new EventHandler<TranslateCompletedEventArgs>(OnTranslateCompleted);
  18:         }
  19:  
  20:         void OnTranslateCompleted(object sender, TranslateCompletedEventArgs e)
  21:         {
  22:             Dispatcher.BeginInvoke(() =>
  23:                 {
  24:                     MessageBox.Show(e.TranslatedText);
  25:                 });
  26:         }
  27:  
  28:         private void TranslateButton_Click(object sender, RoutedEventArgs e)
  29:         {
  30:             // if you needed to detect the source language first you would run DetectAsync to get the Source Language
  31:             // below is an example of TranslateAsync("Du bist wie eine Blume", "de", "en")
  32:             _translator.TranslateAsync(TextToTranslateTextBox.Text, SourceLanguageTextBox.Text, TargetLanguageTextBox.Text);
  33:         }
  34:     }
  35: }

So that’s it.  What are the plans here?  We have been exploring shipping an official translator extension as a part of the Silverlight Toolkit perhaps if folks find it useful.  As I mentioned there are a few things that should probably be changed in this library here, namely making the event arguments be AsyncEventArgs to better match what they are with the Silverlight networking stacks, etc.

I also was messing around with the InstallShield Limited Edition that comes with Visual Studio 2010 so I wrapped all these into an installer for easier deployment (it also includes the source) that you can get here: TimHeuerTranslatorClientSetup.exe

Hope this helps and let me know if you have feedback!