Silverlight

Last Monday I delivered one of the keynotes at the MIX conference in Las Vegas, and discussed a new project that I've been spending most of my time working on over the last year: Silverlight.

Silverlight is a cross platform, cross browser .NET plug-in that enables designers and developers to build rich media experiences and RIAs for browsers.  The preview builds we released this week currently support Firefox, Safari and IE browsers on both the Mac and Windows.

To get a sense of the types of rich browser applications you will be able to build using Silverlight, please check out this 7 minute video of the Metaliq "Top Banana" video editor sample application:

The "Top Banana" application was built with C# and runs cross platform on any system where Silverlight is installed.  The total download size of the application (meaning the size of all of the XAML + compiled code when a user types in the URL of the site) is only ~50kb.  We'll be shipping a source-code version of the application as a sample later this summer.

My Keynote

You can watch my entire keynote online here (note: right now the video only shows the slides + demos; they'll be updating a more complete version of the video within a week). 

I was very fortunate to have had some great customers join me on stage to show off some really rich experiences built with Silverlight.  They included: Netflix (showing off a great "movie on demand" video service with social networking support), CBS (showing off user generated video support), Metaliq (showing the above video editor application) and MLB.com (showing off their awesome new Major League Baseball online experience).

During the keynote we also showed how you can use some of the new Expression Studio products (including Design, Blend and the Media Encoder products) to build interactive video player experiences.  I also did some development demos - including ones that showed off building a new Silverlight project using Visual Studio, as well as using the new Ruby support in .NET to iteratively create a Silverlight application within a dynamic language console (which was built entirely using IronPython on Silverlight running in Safari on the Mac).

Silverlight 1.0

We are going to ship the first release of Silverlight this summer.  It is focused on enabling rich media scenarios, and will be a ~1.2MB download.  Some of its features include:

  • Built-in codec support for playing VC-1 and WMV video, and MP3 and WMA audio within a browser.  The VC-1 codec in particular is a big step forward for incorporating media within a web experience - since it supports playing high-quality video up to 720p (high definition).  It is also the same codec format supported in all HD-DVD and Blueray DVD players, and is supported by hundreds of millions of mobile devices, XBOX 360, Windows Media Centers, and Windows Media Players (enabling someone to encode content once and run it on all of these devices + Silverlight unmodified).  This enables you to use a huge library of existing video content and rich editing tools to generate video content with Silverlight. 
  • Silverlight supports the ability to progressively download and play media content from any web-server.  You can point Silverlight at any URL containing video/audio media content, and it will download it and enable you to play it within the browser.  No special server software is required, and Silverlight can work with any web-server (including Apache on Linux).  We'll also be releasing a set of IIS modules that enable useful media control and bandwidth throttling features that you can enable on your server for free.
  • Silverlight also optionally supports built-in media streaming.  This enables you to use a streaming server like Windows Media Server on the backend to stream video/audio (note: Windows Media Server is a free product that runs on Windows Server).  Streaming brings some significant benefits in that: 1) it can improve the end-user's experience when they seek around in a large video stream, and 2) it can dramatically lower your bandwidth costs (most users don't watch entire videos - and so you waste bandwidth if they navigate away before the end of the video with progressive downloading). 

  • Silverlight enables you to create rich UI and animations, and blend vector graphics with HTML to create compelling content experiences.  It supports a Javascript programming model to develop these.  One benefit of this is that it makes it really easy to integrate these experiences within AJAX web-pages (since you can write Javascript code to update both the HTML and XAML elements together). 

  • Silverlight makes it easy to build rich video player interactive experiences.  You can blend together its media capabilities with the vector graphic support to create any type of media playing experience you want.  Silverlight includes the ability to "go full screen" to create a completely immersive experience, as well as to overlay menus/content/controls/text directly on top of running video content (allowing you to enable DVD like experiences).  Silverlight also provides the ability to resize running video on the fly without requiring the video stream to be stopped or restarted.

You can develop Silverlight applications using any standard text editor (no custom tool is required).  Microsoft will also be shipping support for targeting Silverlight 1.0 applications with our Expression Studio suite of products (including rich tool support for media management and video encoding support).  You can download preview CTP builds of Expression Blend and Expression Media Encoder that support Silverlight today from here.

To learn more about the Silverlight 1.0 feature-set, as well as how to start building experiences that target it, I highly recommend watching some of the great "How do I?" videos that have recently been posted on the new www.silverlight.net community site here.

I'd also recommend watching these (free) conference sessions from the MIX conference that cover Silverlight 1.0 and media scenarios:

Silverlight 1.1

At MIX we shipped both a beta version of Silverlight 1.0 (which will ship in final release form this summer), as well as delivered an alpha version of Silverlight 1.1. 

Silverlight 1.1 includes a cross platform version of the .NET Framework, and enables a rich .NET development experience within a browser.  The total download size of the Silverlight 1.1 package (including all of the 1.0 features + CLR + a WPF and .NET FX library API subset + dynamic language support) is ~4MB - and it takes less than 20 seconds to install on a machine.

Some of the Silverlight V1.1 features include:

  • A built-in CLR engine that delivers a super high performance execution environment for the browser.  Silverlight uses the same core CLR engine that we ship with the full .NET Framework today (we build it from a single source tree).  It delivers the same type-system, garbage collector, and JIT code generation engine that your .NET code uses today.  This means that you can write .NET code that can now run in Silverlight, ASP.NET, and a WinForms/WPF Windows application.  It also means you can now execute code within the browser that runs more than 250x faster than interpreted Javascript.
  • Silverlight includes a rich framework library of built-in classes that you can use to develop browser-based applications.  This framework library is a subset of the full .NET Framework class library you use today, and enables you to easily re-use your existing skills and knowledge.  It includes support for collections, generics, IO, threading, globalization, networking, and LINQ. 
  • Silverlight includes support for a WPF UI programming model.  The Silverlight 1.1 Alpha enables you to program your UI with managed code/event handlers, and supports the ability to define and use encapsulated UI controls (built with any managed .NET language).  The first Silverlight Alpha doesn't yet ship with a rich set of built-in UI controls -- we've been busy at work building the core UI infrastructure first. Don't worry, though, a rich set of high-level controls will definitely be included in the future (in the meantime you can download some nice samples of controls here).  WPF for Silverlight will also ultimately ship with support for core WPF constructs like layout managers and data-binding (these features are not yet implemented in the current alpha - but are coming).
  • Silverlight provides a managed HTML DOM API that enables you to program the HTML of a browser using any .NET language (this means you can now wire-up an event handler to an HTML button using C# or VB).  Silverlight also provides the ability to have Javascript code within an HTML page call into .NET methods you expose from within your Silverlight control/application.  Silverlight includes a JSON serializer that supports automatic marshalling of .NET datatypes to/from Javascript (meaning you can have standard browser Javascript code call a C# method within Silverlight, and have the C# method return a .NET collection which is then serialized by Silverlight into a Javascript collection for your browser Javascript to use). 
  • Silverlight doesn't require ASP.NET to be used on the backend web-server (meaning you could use Silverlight with with PHP on Linux if you wanted to).  However, we've naturally added some pretty nice features that enables you to easily integrate Silverlight on the client and ASP.NET on the server together.  Silverlight can use the standard ASP.NET application services (membership, roles, profile, etc), and can call either WCF or ASMX web-services hosted within ASP.NET.  This week we also shipped new ASP.NET server controls that make it easy to host Silverlight controls within ASP.NET pages.

Below is a 22 minute video I recorded that demonstrates how to build a Silverlight application from scratch using Visual Studio and Expression Blend (click here to download the UI controls I used):

You can click on the picture below to download a nice poster that provides an overview of some of the key .NET namespaces and features that are supported with the Silverlight 1.1 alpha today:

I also did a Channel9 interview that you can watch to learn a little more about how the managed programming model works within Silverlight, and how we added the CLR support:

 

May 10th Update: I also did a great podcast with Scott Hanselman that you can download and listen to here.

I'd also recommend watching these (free) conference sessions from the MIX conference that cover Silverlight 1.1 with .NET scenarios:

You can download the source code for the Part1/Part2 samples on Nick's site here.

Dynamic Language Support

At MIX we also announced and shipped the first release of a new .NET library that we call the "Dynamic Language Runtime" (or DLR for short). 

We've been investing a lot in making .NET and the CLR a first-class environment for dynamic languages, and a little over a year ago we formed a dedicated group within my team that has been focused on building better CLR runtime support for dynamic languages as well as delivering excellent .NET implementations of popular dynamic languages.

The new Dynamic Language Runtime (DLR) adds a small set of services to the CLR designed explicitly for dynamic language scenarios.  These include a shared dynamic type system, language hosting model and support to make it easy to generate fast dynamic code.  With these additional features it becomes dramatically easier to build high-quality dynamic language implementations on .NET. 

Importantly the dynamic language implementations built using the new DLR support are not interpreted.  Instead, we use the lightweight-code-generation features added in CLR 2.0 to create in-memory IL that is then JIT'd into native code at runtime (without ever having to save anything to disk).  This can yield much better runtime performance than interpreted code, and the lightweight codegen feature ensures that once we are finished with JIT'd code we can optionally garbage collect it to avoid leaking.  This enables an incredibly slick and powerful dynamic language programming environment, and enables developers to easily program against the full .NET API using dynamic languages.

The DLR - and all of the dynamic languages built on top of it - can be used in cross-platform Silverlight application in the browser, ASP.NET 2.0 applications on the server, and WPF/WinForms applications on the desktop (basically anywhere where the CLR is enabled).

At MIX we announced that Microsoft will be shipping 4 dynamic language implementations of our own for .NET:

  • Python
  • Ruby (new)
  • Javascript
  • Dynamic VB (new)

We will ship the source code of our Python and Ruby implementations, as well as ship the source code for the underlying DLR library on CodePlex (all of the source will ship with full modification rights).  You can download the DLR as well as the Python implementation (known as "IronPython") today from the IronPython codeplex site.  The source code for the Ruby implementation (which we are going to call "IronRuby") will also be published on CodePlex in a few more weeks once it is a little further along.

To learn more about our dynamic language support, I highly recommend watching this 15 minute video by John Lam showing off a dynamic language console built in IronPython and running on Silverlight on the Mac.  It enables developers to interactively develop Silverlight applications (with intellisense support!) in the browser using Ruby, Python, Javascript and VB:

 

I'd also recommend watching this (free) conference session from the MIX conference that covers Silverlight 1.1 with dynamic languages:

Jim Hugunin - who is the chief architect of the DLR - also writes a great blog on dynamic languages with .NET that I recommend subscribing to in order to understand how it works and what you can do with it.

www.Silverlight.net

Last week we launched our latest online community site: http://www.silverlight.net

Like www.asp.net and www.iis.net, we'll be using this new Silverlight site to deliver regular samples and "How-do-I?" videos.  It also provides a forum system for getting help with Silverlight questions.

Click here to subscribe to an RSS feed of the new content we post on the site in the weeks and months ahead.

Summary

Silverlight opens up a ton of opportunities to build significantly richer client experiences that run cross platform and cross browser. 

For .NET developers, it means that you can now write .NET code using any development language (VB, C#, Javascript, Python, Ruby and more) in the web-browser (using Silverlight), web-server (using ASP.NET), in desktop applications, and with mobile devices.  You'll be able to use great Visual Studio developer tools and Expression Studio designer tools to target each of these experiences.

Needless to say, I'm really excited about what the future offers with Silverlight.  We still have work to-do, bugs to fix, and higher level UI controls/features to add - but the core graphics/media/runtime engine we released last week is extremely powerful and delivers a super solid extensible foundation that we'll be building on going forward.

I'll be blogging much more about Silverlight, and how to use it, in the weeks and months ahead.

Hope this helps,

- Scott

P.S. I've been away on vacation the last week (hence the delay in posting after my keynote), and will be in Scotland on vacation the rest of this week (so please excuse delays in responding to comments - it might take me a few days to get back to them).

Published Monday, May 7, 2007 2:49 PM by ScottGu

Comments

# re: Silverlight

Monday, May 7, 2007 9:14 PM by tester

I can't install silverlight beta on my win server 2003 and .net 2.0 computer.

# re: Silverlight

Monday, May 7, 2007 9:25 PM by Mohamed

Hello Scott,

Waaw, I just feel lucky to have picked .NET as my primary development platform, wuhuuu.

This is too good to be true, but I have got few questions that I would like to get answered if possible:

1 - Currently Silverlight is separated into two versions, which can be a bit confusing for less techie people, while it makes sense for developers. Anyhow my question is will the 1.0 release be a single version or two separate?

2 - Will the next release of Blend support VWD Orcas Express? Currently its only integrated with Visual Studio which also comes with XAML intellisense. Well what if you only want to created a simple, quick little Silverlight app, do you really have to use VS as your backend?

3 - As a .NET developer I always had to use Flash for media, now that Silverlight is out its like dream come true, but I am faced with this problem, do I exclude Linux and get on with Silverlight or do I stick to Flash. Its a hard decision to make. When I ask this I think I am speaking for many, but is there a chance for Silverlight to also support Linux?

I look forward for your valuable answers.

Thanks a lot.

# re: Silverlight

Monday, May 7, 2007 10:13 PM by Ryan Montgomery

Did you hear that...? That was my mind exploding. Really, great work guys. I can't wait to start working with Silverlight.

# re: Silverlight

Monday, May 7, 2007 10:38 PM by Scott Barnes

Can't wait for what you're going to do next week :)

# re: Silverlight

Monday, May 7, 2007 11:37 PM by Willie Makit

A plethora of information.

# re: Silverlight

Tuesday, May 8, 2007 12:18 AM by Vikram

wow, wow, wow. This is briliant news. I am not sure if I will be able tyo finish with so much of stuff in a weeks time so please take some more time in vacation. This was one big post which I would love to read again and again.

# re: Silverlight

Tuesday, May 8, 2007 12:38 AM by cm

Excellet work Scott!  Your team has really been producing some awesome tools that will blow away the current Web 2.0 applications.  You have officially started Web 3.0.  Congratulations!

# re: Silverlight

Tuesday, May 8, 2007 2:39 AM by Tom

Hi Scott

Great post and great keynote! I was fortunate enough to see the keynote live at the mix conference. Just curious, in your summary above (parts of which I have pasted below) you mention that silverlight enables writing desktop applications cross plattform. Does that mean that Silverlight will enable writing desktop applications (out of the browser) with offline support?

"Silverlight opens up a ton of opportunities to build significantly richer client experiences that run cross platform and cross browser. For .NET developers, it means that you can now write .NET code using any development language (VB, C#, Javascript, Python, Ruby and more) " ... "in desktop applications".

Best regards

Tom

# re: Silverlight

Tuesday, May 8, 2007 6:40 AM by ScottGu

Hi tester,

Silverlight is fully supported on Windows 2003.  If you can send me an email with details of the installation problem you had, I can help you get it working.

Also - did you have an earlier CTP version of WPF/E installed on the machine?  There have been a few issues with left-over registry keys that you might be running into.  I can point you at how to clean those up in an email.

Thanks,

Scott

# re: Silverlight

Tuesday, May 8, 2007 6:48 AM by ScottGu

Hi Mohamed,

Glad you like it!  Here are a couple of answers to your questions:

1) Silverlight 1.0 is a single install (and will be when it ships).  The 1.1 alpha is a preview of the release that will follow it - and 1.0 installs will auto-upgrade to 1.1 once the final version of 1.1 ships.  Our plan is to make it easy for developers to target a specific version, and for customers to have a really simple install/upgrade experience with it.

2) We will have Orcas express support for Silverlight.  The current V1.1 alpha requires Visual Studio to get the Silverlight project template - but future refreshes will also work with express.

3) We will be expanding our platform support for the Microsoft supported version of Silverlight in the months and years ahead.  Right now we've only announced Mac and Windows support, but we will be tracking desktop (and especially mobile) demands/trends, and will be adding support based on that.

Note that the Mono project has announced that they are planning on shipping their own version of Silverlight on Mono (and Linux) by the end of the year.  So that provides another alternative as well.

Hope this helps,

Scott

# re: Silverlight

Tuesday, May 8, 2007 6:55 AM by ScottGu

Hi Nike,

That is a fair concern to raise.  What I can say is that my team and I are very committed to making the Mac support first-class with Silverlight.  

That is one of the reasons we waited to release the .NET support for Silverlight until we had absolute feature parity between both the Mac and Windows versions.  I find that "Code speaks lounder than words/assurances" on topics like this.

Hope this helps,

Scott

# re: Silverlight

Tuesday, May 8, 2007 6:58 AM by ScottGu

Hi Tom,

Sorry for the confusion on that phrase - what I meant was that you now can run .NET cross platform in the browser (via Silverlight), .NET in the web-server (via ASP.NET), .NET in the desktop (via WPF and WinForms), .NET in mobile devices (via .NET CF), and .NET in the database (via the SQL 2005 release).

Hope this helps,

Scott

# re: Silverlight

Tuesday, May 8, 2007 7:39 AM by moops

nice work scott!

>>Below is a 22 minute video I recorded that >>demonstrates how to build a Silverlight >>application from scratch using Visual Studio >>and Expression Blend

link is borked, pls fix!

# re: Silverlight

Tuesday, May 8, 2007 7:44 AM by Jurie Horneman

Hi. This sounds really interesting. However, it seems that every video I click on takes me to the Silverlight.net home page instead, and then I can't find the video I wanted to see there. Also, I seem to be unable to watch the keynote. If I click on the play link, I get an empty window. If I click on the download link, nothing is downloaded, but a streaming video starts in Windows Media Player (not my definition of 'download'). However, this video has no sound and stops after a few seconds.

I would really like to see a video of Silverlight in action. How can I do this?

# re: Silverlight

Tuesday, May 8, 2007 8:00 AM by ScottGu

Sorry for the broken video links!  The site unfortunately just posted some new videos which broke my links.  I have mail out on this to fix it.

In the meantime, you can find all of the videos here: http://silverlight.net/learn/learnvideos.aspx

Hope this helps,

Scott

# re: Silverlight

Tuesday, May 8, 2007 9:31 AM by Greg

Scott,

Yet another great post.  Thanks.

When I see the words "browser...plug-in" I immediately think of ActiveX controls and Java Applets.  With the negative stigma surrounding those technologies (especially ActiveX), how do you differentiate Silverlight?  I know that will be one of the first question I receive as I start promoting this platform.

This stuff looks very exciting, can't wait to get started with it.

# re: Silverlight

Tuesday, May 8, 2007 9:58 AM by Peter

Great job (as always)!! Three questions:

1) Since 1.1 brings so many improvements, why not just call it 2.0?

2) Any estimate on when version 1.1 (2.0) would ship? I realize it's in Alpha now, but the features in 1.1 is what I'm looking for (mainly faster code via .NET)

3) You mentioned "networking" as part of the .NET framework subset. Does that include sockets or only web service calls via the browser's engine?

Thanks.

# re: Silverlight

Tuesday, May 8, 2007 10:26 AM by Alex Osipov

Hello Scott - you and your team are really doing a great job carrying the web forward.  Thanks.

A few specific questions:

1.  What are the plans for isolated storage?  The 1 mb quota is definitely enough for smaller projects but for deploying applications that are larger it may not be enough.  So far there are no client options (I am guessing to make it easier for the user).  Maybe the right click Options menu is not so  great - how about a standard way to request more permissions/space from the user.

2.  I had read there are changes to the security model with Silverlight.  Can you explain to us what this means in terms of signed/unsigned Silverlight applications?  Are there different restrictions as with java applets?

3.  System.Syndication will this be available w/o Silverlight.  I am sure we can extend it.

4.  Microformats?  I am sure we can build things to support microformats with Silverlight but would love to see something standard here.  I definitely think microformats should be pushed along with everything else Silverlight is pushing.  It's taking too long to adopt via other avenues.

5.  History manangement from the ASP.NET from future bits... Silverlight should definitely have something native w/o needing ASP.NET AJAX.

6.  Any future plans to include supporting tools for indexing?  Something akin to Flash exporter for search engines in the Flash SDK would not work too great here but a combination of a tool and "sitemap" would be interesting.

Thanks Scott and of course enjoy your vacation.  You earned it.

AO

# Expected Adoption

Tuesday, May 8, 2007 11:43 AM by Nathan

Hi Scott,

Silverlight looks fantastic, but I am curious about two things:

1) How much support does it have from the layers of management above you? i.e. is Microsoft hoping to shift the entire web in the direction of Silverlight support, or is this more an underlying thing which the guys upstairs are keeping an eye on to see what happens?

2) How will you encourage adoption to the point where I can feasibly say that Silverlight has made Flash redundant, i.e. What kind of hurdles do you expect to overcome before web developers  can say "everyone has that, I can develop with it"?

# re: Silverlight

Tuesday, May 8, 2007 1:08 PM by Ivan P

Scott,

You mentioned that more Richer Silverlight controls were on the way.  Could you explain that in more detail?  Are they controls that go into ASP.Net pages (ASP.Net controls or AJAX Controls)?  Or are these Silverlight controls that are inside Silverlight itself, more than just shapes and lines...

It would be great to see silverlight have form controls.  

Also something that I didn't see in silverlight that flash does have is the shape tweening feature.  Is that something silverlight will have?

# re: Silverlight

Tuesday, May 8, 2007 8:25 PM by Bob DeVeaux

Its 01:24. Am I dreaming? This is just amazing. There are like a million more things to learn and I love learning! Now I just need to upgrade my machine from 512MB RAM!

Thanks to you and your team Scott.

Bob DeVeaux

# re: Silverlight

Tuesday, May 8, 2007 8:42 PM by Kevin Darling

As adeveloper at a large company, we've been looking for ways to make our life easier, and our applications richer.  We like to use HTML as our display mechanism, because it's more interactive and we can create displays on the fly via XSLT.  

With Windows CE, it's pretty easy since it has IE6 with full DHTML.  Windows Mobile?  Not so easy, and the .net CF is lacking in lots of areas.

In any case, Adobe Flashlite was looking good. Now Sun's JavaFX and MS's Silverlight are all contenders.

We're wondering about Silverlight standalone apps.  What about in something like an HTA?  Will it have permissions for file access?  Can this be done?

The other contenders look like they can deliver both web and standalone based apps.  MS needs to do the same.

Thanks!

Kev

# re: Silverlight

Tuesday, May 8, 2007 8:43 PM by Josh Stodola

Scott, I am so amazed by Silverlight and the opportunities it introduces that my brain is having a system overload.  Will you guys be releasing any hotfixes for this soon?!

Keep up the unbelievable work - it is most definitely separating Microsoft from anything and everything else in the realm of web development.

Thanks a MILLION for blogging during your vacation, what a guy :)

# re: Silverlight

Wednesday, May 9, 2007 6:25 AM by Govind

Required help in getting up & running - I have installed the 1.1 sdk/3.5 runtime and blend. I am not planning to use orcas for now.

I just plan on using the blend/notepad for now. I am running vista but did not sure why simplest of pages are not working,

- where can I get just the silverlight.js and createsilverlight.js and put them in scripts directory ( I guess  that is right thinking) under my iis virtual directory where i want to try the samples.

- why just creating an object tag and showing it will not work? does that mean my xaml mime is not registered on vista?

- on vista running the 3.5 runtime setup i get the error xp2 service packs needs to be present. Do i really need the 3.5 runtime?

# re: Silverlight

Wednesday, May 9, 2007 9:23 AM by Govind

Earlier I posted some help request. After copying the .js file from installed sdk and working through it, I have been able to resolve all the basic problems.

Looks like 1.0 and 1.1 are different runtimes, can they be present in the same process, need to try it. No - not a specific problem right now. But thinking of evolution where some code might be in one version and another in another.

# re: Silverlight - Dynamic Language Support

Wednesday, May 9, 2007 10:35 AM by Orlando Agostinho

Hi,

I saw the video about "running on Silverlight on the Mac", and it's very impressive. Congratulations. I didn't see anything like that.

Well, in that way i have a couple of questions:

 1) Dynamic language Support is running only at Silverlight Platform? Or, will be available in VS 2005/"Orcas"?

 2) Silverlight Installation? At this moment, it's necessary to install the run-time, but in the future will be already installed in the browsers properly,IE,Firefox,Opera, etc. Like just happen with flash, for example? I think could be not very friendly as it's right now

 3)The Last Thing, Can you use Silverlight to develop a Home-Banking application? It's so secured?

See Ya!

# re: Silverlight

Wednesday, May 9, 2007 12:10 PM by ScottGu

Hi Elixir,

Expression Studio 1.0 just shipped last week - so that is now out of beta.

Silverlight is still in Beta now (and 1.1 is in Alpha). Silverlight 1.0 will ship this summer (at which point it will obviously no longer be a beta).

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 12:18 PM by ScottGu

Hi Peter,

1) Naming versions is always a controversial topic (for example: last summer's .NET 3.0 naming debate).  We went with 1.1 mainly to indicate easy continuity from the 1.0 release (and to avoid any more petitions about bumping the version number too high <g>).

2) I don't have a good ETA for when 1.1 will ship.  But I do think we'll have go-live betas available this year at a minimum.

3) The networking stack in Silverlight today uses the browser's infrastructure for web requests.  We don't have low-level socket support yet - although a lot of people are asking us to add it into the core download package.

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 12:25 PM by ScottGu

Hi Alex,

A few answers below:

1) With regard to isolated storage, I believe our plans are to provide a model where users can be prompted to increase the quota from 1MB to something higher.  This will provide a very handy way to get secure storage on the client.  Note that the Isolated Storage API in the alpha today offers the concept of files/streams - so you can use existing file IO logic from .NET to easily work with it.

2) Silverlight applications run sandboxed.  You don't have to sign anything to get this behavior - basically we will run any assembly loaded in Silverlight this way.  I think the changes you are referring to have to-do with us not using the CAS security model for sandboxing.  Instead we have a model that we think is a little simpler to use, and involves a trust boundary that we can audit a little easier and more efficiently.

3) Yep - System.Syndication will be supported via Silverlight, and will provide RSS feed support.

4) Are there particular microformats you are interested in?  Silverlight should have good support for adding these today, but I'm curious if there are particular formats you'd like to see directly supported.

5) Yep - we'll definitely have history management built-in.  I believe Stefan's talk on browser extensibility has a sample that shows how to do this with today's bits - but we'll also have a built-in API to support this as well.

6) Search engine indexing is definitely something we'll support and are thinking of.  Note that the ASP.NET futures release actually has some built-in SEO controls to improve this with ASP.NET.  We'll incorporate similar ideas for Silverlight.

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 12:34 PM by ScottGu

Hi Ivan,

Silverlight 1.1 has a nice control encapsulation model (just like WPF with the full .NET Framework).

By "rich controls" I meant that we'll be adding many more higher-level controls (Buttons, Treeviews, DataGrids, etc) that are built using this model and which will make developing applications much easier.

Here is a pointer to some sample higher level rich controls you can start using today: http://nerddawg.blogspot.com/2007/05/silverlight-ui-controls.html

At the same time, we'll also be producing ASP.NET Server Controls that take advantage of Silverlight and can output Silverlight content.  So you'll see neat features enabled via that as well.

With regard to your "tweening" question - I think the "Transformation" feature in Silverlight should provide what you are after.  This allows you to take any canvas, object or control and modify its render output.  For example, you could re-scale or skew it, or apply any matrix math to customize its appearance.  This is supported in Silverlight today.

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 12:36 PM by ScottGu

Hi Greg,

The Silverlight runtime itself is implemented as a plug-in (basically this is the only way to extend existing browser's to support extra features).

The applications built with Silverlight, though, are not considered plug-ins and don't require a user to approve or accept any dialog prompts.  This will hopefully avoid the stigma with ActiveX controls (click here to approve, etc) when users run apps that take advantage of silverlight.

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 12:40 PM by ScottGu

Hi Eddy,

Sorry about the early state of the documentation.  We have much more on the way - but 1.1 is still an alpha and so doesn't have complete docs yet.

If you are looking to set the position of a control or object programmatically in relation to its parent container, you can write code like below:

MyControl.SetValue(Canvas.TopProperty, value);

This uses a feature called "dependency properties" in WPF to set this contextual value based on the parent.

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 1:12 PM by ScottGu

Hi Fred,

You'll be able to use a Tree controls and Context Menu with Silverlight (although neither is built-in right now).

Controls within Silverlight can be implemented in any assembly (so they don't have to be "built-in" to the core download package).

We haven't closed on whether the Treeview control/context menu are just in the core controls download or a separate library you reference from your application.  But you'll definitely be able to use that type of functionality.

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 1:26 PM by ScottGu

Hi Orlando,

You can use the DLR features with the standard .NET Framework as well - so you can use VS 2005 and VS "Orcas" with it as well.

We'll make sure Silverlight is very secure, so when the final release ships you'd be able to use it for a home banking application.

We are definitely going to work to make sure Silverlight is installed on as many machines as possible.

Thanks,

Scott

# re: Silverlight

Wednesday, May 9, 2007 1:35 PM by ScottGu

Hi Kevin,

For standalone applications, I'd recommend using WPF with the full .NET Framework where possible - since it enables much richer text flow support than anything else out there.  I did a blog post in Feb that talked a little about how to use some of these features here: http://weblogs.asp.net/scottgu/archive/2007/02/22/wpf-text-reading-and-flow-document-support-and-the-new-nytimes-daily-mail-and-seattle-post-intelligencer-reader-applications.aspx

Although I haven't tried it myself, I have seen several people host Silverlight in their own application shell.  This would enable you to run the application offline and outside of the browser.

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 9, 2007 1:46 PM by ScottGu

Hi Nathan,

The senior leadership of Microsoft is very excited and behind Microsoft.  Ray Ozzie actually did the opening keynote announcing Silverlight before mine at MIX. :-)

In terms of how to drive ubiquitous adoption, one of the reasons we are investing so much in great video support with Silverlight (and shipping the 1.0 release focused on video this summer) is to help drive downloads and deployments.

Video is a huge download driver, and with the right 10-15 sites will be able to drive 80-90+% system deployments.  Obviously we'll be working hard on helping drive these deployments to happen.

Hope this helps,

Scott

# re: Silverlight

Thursday, May 10, 2007 9:13 AM by Eddy Young

I realise that this is a blog post, and not a support forum, but I still can't set the dependency property.

MyControl.SetValue(Canvas.LeftProperty, 400);

complains about "Canvas" not defined. Am I missing an import somewhere?

This is me trying to use the DLR within Silverlight 1.1 Alpha to handle events.

Eddy

# re: Silverlight

Thursday, May 10, 2007 11:54 AM by hriday_LHK

Thanks!!! for the complete picture.

# re: Silverlight

Friday, May 11, 2007 4:16 AM by Mike Chaliy

>> Note that the ASP.NET futures release actually has some built-in SEO controls to improve this with ASP.NET.

What you mean? Can you point me on such controls? Please give more details.

# re: Silverlight

Friday, May 11, 2007 8:16 PM by dave Ituru

I have been playing with silverlight, and it seems to be the sweetest thing since slice bread. when do we expect the official release?

# re: Silverlight

Friday, May 11, 2007 9:38 PM by JP

Sounds like a promising alternative to Flash/Shockwave.  Flash's weaknesses include its poor development environment,  a scripting language which is hard to debug, and due to the flatter structure of the Flash programming model, it doesn't manage well into larger, more complex projects.

However, as with most other Microsoft's internet ventures, any new MS technology should be cross platform from the start. -- And it's good to hear that it is.

MS should change its philosophy of ignoring well adopted standards.  It's bad for business because MS technology that doesn't embrace cross platform standards hinders adoption and spread among developers.

MS should also prioritize architecting its technologies so that fundamentals are simple and broad enough to support innovation among developers, instead of focusing on widgets that won't be used for various reasons of programming compatibility with the innovations of developers' own frameworks and of vastly diverse project requirements.

For me personally, I love C#, data adapters, and the VS IDE, but I got burned by investing alot of time trying to use the visual widgets because they seem like "Rube Goldberg Machines" whose complexity causes other problems, such as name-mangling (master pages) or that unfortunately stifling single form tag/postback requirement.

respectfully,

--JP

# re: Silverlight and Web App mode

Saturday, May 12, 2007 8:53 AM by Mike

Hi Scott

Silverlight looks very cool but I am having problems with what dll's I should use if using the web app model to build a silverlight app in Orcas Beta1

the example I was playing with required System.Data and System.Web and could not find any dlls that worked

The example was called Screencast1 and has a data.aspx.cs file

Works fine as a web site

Any advice

Thanks

Mike

# re: Silverlight

Tuesday, May 15, 2007 11:50 AM by Mikkel

Hi Scott,

We have a WPF, click-once application (started from <a hreft="www.jpgtv.com" target="_blank">www.jpgtv.com</a>), that we want to port to Silverlight 1.1. The application relies on cross domain data access (e.g. access pictures from different domains). Is there any way we can do this in Silverlight? If No, are there any concrete plans for cross domain data access support in later releases?

Btw: Mix was greate this year!

Best regards

Mikkel Skou

# re: Silverlight

Tuesday, May 15, 2007 1:41 PM by Darick

Scott,

Will Silverlight apps be able to access files on the client's computer?  Right now I'm using Flash to upload multiple files to the server.  Will Silverlight be able to do the same thing?

Thanks,

Darick

# re: Silverlight

Tuesday, May 15, 2007 3:48 PM by ScottGu

Hi Derek,

Yep - Silverlight allows you to open and upload files on the client.  There is obviously a security model to prevent people from doing bad things, but it does allow you to select multiple files and to get raw stream access to them within the browser.

Hope this helps,

Scott

# re: Silverlight

Tuesday, May 15, 2007 6:07 PM by James Addison

Silverlight is looking really really good. Unfortunatly I cannot use it due to the lack of socket support. Does the silverlight team plan on implementing socket support ? And if so, do you have an estimated time?

# re: Silverlight

Wednesday, May 16, 2007 7:08 AM by Mike

Scott

I can't get any silverlight demos to run using the web app model

Is there a known problem or is it me

# re: Silverlight

Wednesday, May 16, 2007 9:49 AM by ScottGu

Hi Mike,

Can you send me an email with more details about the problem you are having? I can then help you get it working.

Thanks,

Scott

# re: Silverlight

Wednesday, May 16, 2007 9:56 AM by Mike

Scott,

Can you blog more about the 1.1 sandbox.  I am intrested in pulling media wmv,mp3,images from other domains which could be just another subdomain such as media1.somedomain.com and the SL app runs in www.somedomain.com.  This is a big one for us and the details hard to find at the moment. Also would it them be possible to switch from media1. and media2. on the fly based on location and or availability?

Thanks...

# re: Silverlight

Wednesday, May 16, 2007 12:28 PM by ScottGu

Hi Mike,

>> Can you blog more about the 1.1 sandbox.  I am intrested in pulling media wmv,mp3,images from other domains which could be just another subdomain such as media1.somedomain.com and the SL app runs in www.somedomain.com.

You can definitely pull media assets from different domains today using the <mediaelement> control (which is built-in to Silverlight).  You can also programmatically manipulate the URL of the element to switch the URL to any different address later.

For more information on Silverlight security, I'd also recommend subscribing to Shawn's blog here: blogs.msdn.com/.../default.aspx

Hope this helps,

Scott

# re: Silverlight

Wednesday, May 16, 2007 4:50 PM by Mustafa Basgun

Hi Scott.

Honestly, I haven't touched to Silverlight in detail yet. The question came up while I was discussing the future of Silverlight with one of my friends who is a Flash Designer. As far as I understood Silverlight XAML does not support streaming, which means the XML must be parsed and rendered and after that bound to the JavaScript in runtime. This may take some seconds. But, by using the binary SWF, it starts before it is completely downloaded. Do you have an answer to this

argument?

Thanks.

# re: Silverlight

Thursday, May 17, 2007 7:40 AM by Dierk Droth

I tried to install Silverlight 1.0 Beta and 1.1 Alpha but failed with IE7 and FF 2.0.0.3. Basically the installer hangs with the splash screen saying: MS SL could not be installed on your computer. "Get more information" did not help.

This is a XP SP2 machine.

I tripple checked that I don't have any prior WPF/E or Silverlight version installed.

Any idea?

Thanks in advance

# re: Silverlight

Thursday, May 17, 2007 7:20 PM by Alex

Hi Scott,

  Will SilverLight allow to show it's content outside of rectangle specified in <embed> tag (width, height), not to take whole browser area, but whatever it needs outside the rectangle.  This could make big difference comparing to Flash/Flex.  For instance on MySpace which doesn't allow <embed> objects to communicate with JavaScript, SilverLight widget could occupy small space but when user clicks on it, it expands as much as it needs.

  Also would be cool to have something like IFRAME HTML inside SilverLight (not violating cross-domain security of course).

Alex

# re: Silverlight

Thursday, May 17, 2007 10:30 PM by Julio Casal

Hi Scott. Your keynote presentation was great and I´d like to translate it into Spanish to spread the word in my local developer community. Is there any posibility that you could share the PowerPoint slides?

Thanks,

Julio.

# re: Silverlight

Friday, May 18, 2007 2:09 AM by ScottGu

Hi Alex,

Silverlight supports the ability to be hosted "windowless" within a browser - which enables a number of interesting opportunities.  

Specifically, it means you can overlay Silverlight content on top of HTML.  You can also dynamically resize the control to grow bigger or smaller within the page without having to restart the application.

Hope this helps,

Scott

# re: Silverlight

Friday, May 18, 2007 2:11 AM by ScottGu

Hi Mustafa,

Silverlight enables applications to be partitioned into multiple separate files.  This enables you to immediately launch the application without having to wait for later pieces to be downloaded.  There is built-in downloader support to make it easy for developers to control this.

Hope this helps,

Scott

# re: Silverlight

Friday, May 18, 2007 2:11 AM by ScottGu

Hi Dierk,

Can you send me an email with more details about the install issue you are seeing?  I'll then loop in someone from my team to help.

Thanks,

Scott

# re: Silverlight

Friday, May 18, 2007 2:12 AM by ScottGu

Hi Julio,

If you send me email I can try and get you access to the slides.

Thanks,

Scott

# re: Silverlight

Friday, May 18, 2007 5:59 AM by Kent Liu

As the words in this blog:

"A built-in CLR engine that delivers a super high performance execution environment for the browser" & "It includes support for collections, generics, IO, threading, globalization, networking, and LINQ.", I noticed that seems Silverlight 1.1 might not  or not going to support drawing (the powerful feature that supported by System.Drawing namespace), am I right ?  Or only Alpha phase not support this ?

Scott, is there any plan to add the System.Drawing feature to Silverlight 1.1?  Or Silverlight 1.1 RTM would support calling System.Drawing components ?  Or maybe we need to wait for .net framework 3.5 to be RTM, and Silverlight 1.1 RTM would use this runtime version so it could calling Sytem.Drawing naturely ?

# re: Silverlight

Wednesday, May 23, 2007 11:14 AM by Scott

Will/does Silver light work with .aspx?  Will I be able to have Silverlight AND Flash movies on the same page, or within the same website?  I'm an idiot filmmaker, so I apologize if my terminology is incorrect, but I guess I'm just wondering if I have to pick one or the other, or is there enough peace, love, and happiness for Silverlight and Flash to coexist online?  Any help is greatly appreciated!

# re: Silverlight

Sunday, May 27, 2007 7:22 AM by Steven

Scott,

I'm really wondering what's your plan on versioning in Silverlight. Will we have multiple Silverlight runtimes installed in the browser and does the Silverlight applet know on which version it must run (much like we do today with .NET apps) or will the newest Silverlight version be backwards compatible?

It can be unwanted to have multiple versions running within a browser; on the other hand, running only a single version could reintroduce the old DLL-hell.

# re: Silverlight

Monday, June 4, 2007 4:21 AM by atifahmedsiddiqui

hi, i m very much pleased with silverlight. i have been working on wpf for the last 4 months, now i've got a requirement to built a component within a web application that shows videos as well as images.

now i am a bit confused about weather to use silverlight the latest technology or the old fashioned flash component,

my biggest concern is that : flash streaming host is quite costly for me. while on the other hand silverlight is still in beta version.

Dear Scott, can you plz guide in this regard that what to use ???

Regards;

Atif Siddiqui

atifahmedsiddiqui@hotmail.com

# re: Silverlight

Sunday, June 10, 2007 3:42 PM by WiredStack LLC

Silverlight is amazing.  But it will be 10x more usable when it has direct socket API like Flash.  Silverlight cannot be used for realtime financial data until it does.  All that SOAP and synchronous XML ping/pong is NOT the only way to do things and is too slow for my work.  I need bit streams.

# re: Silverlight

Wednesday, June 13, 2007 12:55 PM by Tom

Hi Scott,

Needless to say this is great stuff. But I'm very confused. Sure RIA, media, video support is good. But how does this affect me as an ASP.NET developer? How would this technology help or hurt ASP.NET? If everyone can develop rich apps using Silverlight would there be a need for asp.net? Am I just oversimplifying this?

If you can just do a quick Silverlight vs. ASP.Net reply it would help. Thanks!

# re: Silverlight

Sunday, June 17, 2007 4:02 PM by ScottGu

Hi WiredStack,

We are looking at having socket support within Silverlight (hopefully in Silverlight 1.1).  So I think you'll have what you are looking for. :-)

Thanks,

Scott

# re: Silverlight

Sunday, June 17, 2007 4:08 PM by ScottGu

Hi Tom,

You'll always have a server backend when using Silverlight - so don't worry, the server is never going away. :-)

In general I think there will be UI where you will absolutely want to use HTML and AJAX, and UI where you might want to use a RIA like Silverlight.  You'll be able to easily pick and chose which parts of your site are built with each, and have a single VS solution and use a common language to program it all.  You'll also be able to use the standard ASP.NET Application Services to control membership/roles authentication/authorization and administer it all via a common configuration and administration stack.

All in all, I think it will enable a really rich development stack.

Hope this helps,

Scott

# re: Silverlight

Friday, June 22, 2007 8:18 AM by Jason H

Hi Scott,

Silverlight looks fantastic. I wasn't sure where to submit a comment to the silverlight team, but I'd like to add a vote for implementing linux support. Any word on where that stands in terms of customer requests? Our environment has critical and non-critical segments. The critical segments run on linux clients while the non-critical segments run on pc clients. A silverlight client for both platforms would substantially increase our ROI on a Silverlight solution; Silverlight increasingly looks like the goto technology for the next rev of our software.

Best Regards,

Jason

# re: Silverlight

Friday, June 29, 2007 1:53 PM by Tyler

Bring on the sockets! ;)