Introducing Microsoft Silverlight 1.1 Alpha [Justin Van Patten]

Today at MIX07 we announced the availability of Microsoft Silverlight 1.1 Alpha, a cross-browser, cross-platform plug-in for delivering the next generation of .NET-based media experiences and rich interactive applications for the Web.  Silverlight is supported on Firefox and Safari on Mac OS X and on Firefox and Internet Explorer on Windows.

Silverlight 1.1 Alpha includes all the features available in Silverlight 1.0 Beta plus a number of new features focused primarily on improving developer productivity and power:

  • Managed code support
  • Support for dynamic languages including Managed JScript and Python
  • Rich UI control model based on WPF
  • Improved networking stack with support for REST, RSS, JSON, POX
  • Enhanced, 2-way HTML/AJAX Bridge
  • Comprehensive and consistent base class library
  • Support for LINQ (LINQ to Objects, LINQ to XML)

That's right.  Silverlight 1.1 Alpha includes support for managed code and a comprehensive base class library!  Now you know what we've been up to and why our blog has been relatively quiet these past several months :-)

Our partner .NET teams within Microsoft have been able to provide an amazing amount of additional functionality on top of the Silverlight 1.1 BCL.  There's a networking stack, XmlReader and XmlWriter, an HTML/AJAX Bridge, a WPF API subset, a safe OpenFileDialog control, LINQ, and the new Dynamic Language Runtime (DLR).  What's really exciting is that all of these APIs are cross platform and work consistently on both Mac OS X and Windows!

You can download Silverlight 1.1 Alpha today along with the SDK at https://msdn.microsoft.com/silverlight.  After you've downloaded the bits, check out the newly launched Silverlight community site.  It's a great resource for getting started with Silverlight.

Reduced Surface Area

The Silverlight 1.1 Alpha BCL is a subset of the .NET Framework 3.5 BCL.  The API surface area is loosely based on the .NET Compact Framework surface area with some differences.

For example, the Compact Framework supports encodings such as UTF-8, UTF-16 (Unicode), ASCII, and UTF-7, whereas Silverlight only supports UTF-8 and UTF-16 (Unicode).

The attached text file has a full listing of public types included in the Silverlight 1.1 Alpha BCL.  Note: The types and behavior exposed in Silverlight 1.1 Alpha is not yet final and will very likely change by RTM.

New Security Model

Silverlight 1.1 only supports partial trust applications.  In addition, a simple attribute-based security model has replaced Code Access Security (CAS) in Silverlight.

The new Silverlight security model consists of three access levels: Transparent, SafeCritical, and Critical.  Transparent code has the least privilege (partial trust) and SafeCritical and Critical have the most privilege (full trust).  Only assemblies trusted by Microsoft may elevate to full trust.  These assemblies, called "Platform code", must be signed with the Microsoft public key and reside in a trusted location.  All other code targeting Silverlight is referred to as "User code", and cannot elevate to full trust.

User code is only able to access Transparent and SafeCritical functionality.  If User code tries to access a Critical API, a MethodAccessException is thrown.

The APIs in the BCL are decorated with Security attributes to restrict access to privileged functionality.

An example of a Critical API in the BCL is the Delete method on System.IO.File.  It is marked SecurityCritical to prevent User code from deleting files on the file system.  Many of the File IO APIs are Critical.

Be mindful of this when you are developing your Silverlight applications.  Your code cannot call any APIs marked SecurityCritical; it can only call Transparent APIs (which typically have no security attribute) or APIs marked SecuritySafeCritical.

Update: Shawn Farkas has added two blog posts on the .Net Security Blog that discuss the new Silverlight security model in more detail.

We want to hear from you!

We'd love to hear your feedback on the Silverlight 1.1 Alpha release.  Have we provided the right base classes in Silverlight?  Is there something missing that you can't live without?  Is there something we should remove from Silverlight (and deprecate in the larger platform going forward)?  Let us know!

Leave your feedback and questions on the Silverlight forums:

We look forward to seeing your feedback and the rich Web apps you're able to create with Silverlight!  Download the bits, join the community, and start to play!

Keep an eye on the BCL Team Blog for more blog posts about Silverlight in the coming weeks. The next post will be about known issues in the Silverlight 1.1 Alpha BCL.

Silverlight1.1AlphaBCL.txt

Comments

  • Anonymous
    April 30, 2007
    אז היום בשעה טובה החל כנס ה-MIX הידוע לשנת 2007 , בכנס השנה צפויות כמה הכרזות גדולות בעיקר על עתיד ה-

  • Anonymous
    April 30, 2007
    I've seen a few posts come through google reader talking about silverlight. The thing that I haven't

  • Anonymous
    April 30, 2007
    Microsoft Silverlight 1.1 Alpha

  • Anonymous
    April 30, 2007
    And just when everyone was starting to think Microsoft had finally lost their way!  If this is as good as it sounds you guys have done an amazing job.

  • Anonymous
    April 30, 2007
    "Silverlight is supported on all major browsers—Firefox, Safari, and Internet Explorer—on both Mac OS X and Windows." This statement is untrue. The Silverlight 1.1 alpha is not fat, it will not run on PowerPC macs. Therefore, it cannot run in Internet Explorer for Mac OS X as IE is PPC-Only.

  • Anonymous
    April 30, 2007
    Rosyna, You're right!  That sentence is inaccurate for another reason as well: Safari is Mac OS X only and is not available on Windows.  What I meant to say was: "Silverlight is supported on Firefox and Safari on Mac OS X and on Firefox and Internet Explorer on Windows". Thanks!

  • Anonymous
    April 30, 2007
    Well, Silverlight 1.0 will run on IE for Mac OS X. Well, the big issue is still the fact Silverlight 1.1 isn't fat. Silverlight is being labeled as cross platform. Linux people are already complaining because cross platform doesn't include them. But now with Silverlight 1.1, the cross platform support has further been reduced. Now Silverlight 1.1 only runs on computers using an x86 processor whereas 1.0 runs on both PPC and x86. I guess I'm just surprised to see the definition of "cross platform" being reduced so quickly.

  • Anonymous
    April 30, 2007
    Does the security model allow you to open up socket connections and transfer arbitrary data? i.e. use you own protocols etc?

  • Anonymous
    May 02, 2007
    Is there anyway to sign code or request user  user authorization to increase the filestore above the 1MB limit?

  • Anonymous
    May 02, 2007
    Jack, Sockets are not currently included in Silverlight 1.1 Alpha.  The Alpha does include support for HttpWebRequest and HttpWebResponse for network communication over HTTP.  We will evaluate adding support for sockets for the final release of Silverlight 1.1. Jason, The quota has been hard coded for MIX07 at 1MB.  After Mix, we want to make it so that when an application goes over the quota, a dialog pops up asking the user if he/she would like to give the application more storage space.

  • Anonymous
    May 02, 2007
    Linq is one of the many .NET features we're pleased to include in the Silverlight 1.1 Alpha release .

  • Anonymous
    May 02, 2007
    קשה לומר שעד היום היה למיקרוסופט מה לומר סביב פיתוח עבור Web2.0 (מה שזה לא יהיה). כמעט כל אתר Web 2.0

  • Anonymous
    May 03, 2007
    The comment has been removed

  • Anonymous
    May 04, 2007
    Shan, Silverlight 1.1 Alpha includes support for drawing primitives and it allows you to create your own custom controls.  There is a Silverlight Controls sample that is included as part of the 1.1 Alpha SDK that shows how to create controls using these drawing primitives.  The sample includes the following controls: Button, Slider, ScrollBar, ScrollViewer, and ListBox.  The plan is to include these along with other controls and layout panels before the final release of Silverlight 1.1. For XML, the Alpha release only includes XmlReader and XmlWriter but support for XLinq is planned.  XLinq makes it easy to search and manipulate in-memory XML.

  • Anonymous
    May 06, 2007
    Sockets would be a huge plus for silverlight.  I work on quote streaming systems (stock market) where we have to save every byte we possibly can on the wire.  HttpWebRequest simply doesn't provide a good streaming capability the way sockets do.  If there is ever going to be a chance we will move our front-ends to silverlight, there must be socket support. The sandbox security could simply make sure the socket connections are back to the same server the silverlight app got downloaded from.  Pretty much the same way as a Java applet.

  • Anonymous
    May 07, 2007
    Until MIX07, Microsoft had very little to say about development for the Web 2.0 , whatever web2.0 stands