Lots of exciting announcements were made recently at the MIX09 conference. I didn’t get to attend in person this year but I tweeted throughout the keynote and event. Yes that is my tweet highlighted in the above screenshot while “The Gu” is talking on stage. Got to love the convergence of social media on the web.
Tim Sneath did an amazing live blog of the keynotes and some sessions. You can check those out here:
- The Keynote (Guthrie, Buxton)
- What's new in Silverlight 3
- Extending your Brand to the desktop with Windows 7
- Internet Explorer 8 Announcements
- Changing behavior by design
Some interesting Silverlight facts I found while watching the keynote:
- Netflix Silverlight Player
- Starts at 500kps then steps to 1000kps & finally 1500kps (HD quality). Netflix found 20% of customers couldn't use previous player before the Silverlight version. The new player is written in C# , updated every 2 weeks now vs. 12 months prior.
- Silverlight 2 in just 18 months…
- 350+ million installs
- 300,000+ developers/designers
- 200+ Microsoft products/websites
- 10,000+ applications globally
The Microsoft Web Platform Installer
The entire Microsoft Web Platform is not available via a 1 megabyte installer. This will grab the latest version of everything you need and also keeps you up to date moving forward. This includes server components, development tools, even the database.
Not only that you can now browse and install the latest web applications via the new Web App Gallery. WordPress, DotNetNuke, are all available at the click of a button.
How is that for making things easier?
Expression Web SuperPreview
A freely downloadable tool that allows you to view webpages (and by that I mean PHP, ASP, HTML you name it) as it would appear in IE going back to version 6 all side by side. Now here is the slick part – you can actually overlay the areas pages on top of each other and see it highlight the specific areas of the page that look different.
This was a big hit during the keynote and as a web developer something I wish I had years before. There have been sites that allow you to point to your webpage and then it renders them for you in different browsers but I’ve never a tool like this that does it on the fly. Be sure to check it out.
Expression Blend 3
The Blend team continues to amaze me. The Adobe Photoshop/Illustrator interoperability you’ve been asking for? It’s in there. Team Foundation Server support? It’s there.
So are some amazing new innovations. The Day1 keynote is worth watching just for a new Blend feature called SketchFlow. One of the things I have seen people use Blend for is prototyping. With the ease of use XAML brings between the tooling now no longer do we need to throw away the initial design of the site when we are ready to build it. Imagine actually being able to navigate throughout the site with your mockups themselves. Sound crazy? A prototype is now as real and interactive as you can think of. From the team’s page:
“ SketchFlow introduces a new set of features designed to make it easier for you to experiment with dynamic user experiences and create compelling prototypes. SketchFlow also helps communicate design ideas to other stakeholders, and makes it easier to collect in-context annotated feedback. SketchFlow enables the navigation and composition of an application to be modeled in a very visual manner from a simple prototype that uses a series of sketches, to something much more evolved. A prototype can be made as real and interactive as it needs to be to communicate design intent and SketchFlow can leverage all the existing features of Expression Blend. “
Here a just a few Features in Expression Blend 3…
- Adobe Photoshop and Illustrator import. The powerful importers for both Adobe Photoshop and Adobe Illustrator enable smooth integration with workflows the designer already has in place. The designer has freedom to view and import Photoshop files layer by layer. Layers can be easily regrouped and elements retain their original formats; layers, layer positions, editable text and vectors remain available for editing within Expression Blend.
- Behaviors. Add interactivity to your application, without having to write code. Behaviors can encapsulate complex design interactions into reusable components which can be directly applied to a user interface element in the application. Developers have access to a rich API that they can use to write their own triggers, actions, and behaviors for use in their Silverlight and WPF projects.
- Sample data. Design time sample data makes it easy to build data-connected applications without access to live data. You can generate sample data or import sample data from an XML file and is available to controls on the artboard at design-time. You can extensively customize your sample data details, and you can easily switch between using sample data and using live data at run-time.
- Improved design and development experience. Expression Blend 3 includes many features that improve the overall design experience including a brand new design surface making Blend more accessible to visual designers. Team Foundation Server support allows easier integration of the Blend user into Team System. Improved animation and easing functions, 3D transforms, visual effects and an improved visual state manager enable a great tooling experience.
There are plenty more be sure to check out the Expression Blend 3 page here for all the details.
GPU Acceleration, Perspective 3D, Pixel Shaders, Out of Browser Support, Element to Element Binding, Behaviors, Easing, the list goes on and on. The Silverlight team continues to move at lightning speed and version 3 delivers are the promise of amazing web experiences unlike nothing seen before. From the Silverlight site:
What’s New in Silverlight 3 Beta?
Fully supported by Visual Studio and Expression Blend, highlights of new features and functionality of Silverlight 3 include: major media enhancements, out of browser support allowing Web applications to work on the desktop; significant graphics improvements including 3D graphics support, GPU acceleration and H.264 video support; and many features to improve RIA development productivity. Also, in order to fully integrate all the .NET developer tools, Visual Studio 2010 will support a fully editable and interactive designer for Silverlight. New features in Silverlight 3 include:
- Support for Higher Quality Video & Audio. With support for native H.264/Advanced Audio Coding (AAC) Audio, live and on-demand IIS7 Smooth Streaming, full HD (720p+) playback, and an extensible decoder pipeline, Silverlight 3 brings rich, full-screen, stutter-free media experiences to the desktop. New and enhanced media features in Silverlight 3 include:
- Live and on-demand true HD (720p+) Smooth Streaming. IIS Media Services (formerly IIS Media Pack), an integrated HTTP media delivery platform, features Smooth Streaming which dynamically detects and seamlessly switches, in real time, the video quality of a media file delivered to Silverlight based on local bandwidth and CPU conditions.
- More format choice. In addition to native support for VC-1/WMA, Silverlight 3 now offers users native support for MPEG-4-based H.264/AAC Audio, enabling content distributors to deliver high-quality content to a wide variety of computers and devices.
- True HD playback in full-screen. Leveraging graphics processor unit (GPU) hardware acceleration, Silverlight experiences can now be delivered in true full-screen HD (720p+).
- Extensible media format support. With the new Raw AV pipeline, Silverlight can easily support a wide variety of third-party codecs. Audio and video can be decoded outside the runtime and rendered in Silverlight, extending format support beyond the native codecs.
- Industry leading content protection. Silverlight DRM, Powered by PlayReady Content Protection enables protected in-browser experiences using AES encryption or Windows Media DRM.
- Empowering Richer Experiences. Silverlight 3 contains new 3D graphics, animation features, hardware accelerated effects and text improvements that enable designers and developers to create next generation Web visuals. Additional features include:
- Perspective 3D Graphics. Silverlight 3 allows developers and designers to apply content to a 3D plane. Users can rotate or scale live content in space without writing any additional code. Other effects include creating a queue in 3D and transitions.
- Pixel Shader effects. These software based effects include blur and drop shadow. In addition, you can also write your own effect. Effects can be applied to any graphical content. An example would be to make a button appear depressed on rollover you could use a drop shadow effect on the pressed visual state.
- Bitmap Caching. Silverlight 3 dramatically improves the rendering performance of applications by allowing users to cache vector content, text and controls into bitmaps. This feature is useful for background content and for content which needs to scale without making changes to its internal appearance.
- New Bitmap API. With Silverlight 3, developers can now write pixels to a bitmap. Thus, they can build a photo editor to do red eye correction, perform edits on scanned documents or create specials effects for cached bitmaps from elements on the screen.
- Themed application support. Developers can now theme applications by applying styles to their Silverlight 3 applications and changing them at runtime. Additionally, developers can cascade styles by basing them on each other.
- Animation Effects. Silverlight 3 provides new effects such as spring and bounce. These make animation more natural. Developers can also now develop their own mathematical functions to describe an animation.
- Enhanced control skinning. Silverlight 3 provides easier skinning capabilities by keeping a common set of controls external from an application. This allows the sharing of styles and control skins between different applications.
- Improved text rendering & font support. Silverlight 3 allows far more efficient rendering and rapid animation of text. Applications also load faster by enabling the use of local fonts.
- Improving Rich Internet Application Productivity. New features include:
- 60+ controls with source code : Silverlight 3 is packed with over 60 high-quality, fully skinnable and customizable out-of-the-box controls such as charting and media, new layout containers such as dock and viewbox, and controls such as autocomplete, treeview and datagrid. The controls come with nine professional designed themes and the source code can be modified/recompiled or utilized as-is. Other additions include multiple selection in listbox controls, file save dialog making it easier to write files, and support for multiple page applications with navigation.
- Deep Linking. Silverlight 3 includes support for deep linking, which enables bookmarking a page within a RIA.
- Search Engine Optimization (SEO). Silverlight 3 enables users to solve the SEO-related challenges posed by RIAs. By utilizing business objects on the server, together with ASP.NET controls and site maps, users can automatically mirror database-driven RIA content into HTML that is easily indexed by the leading search engines.
- Enhanced Data Support Silverlight 3 delivers:
- Element to Element binding : UI designers use binding between two UI properties to create compelling UI experiences. Silverlight now enables property binding to CLR objects and other UI components via XAML, for instance binding a slider value to the volume control of a media player.
- Data Forms. The Data Form control provides support for layout of fields, validation, updating and paging through data.
- New features for data validation which automatically catch incorrect input and warn the user with built-in validation controls.
- Support for business objects on both client and server with n-Tier data support. Easily load, sort, filter and page data with added support for working with data. Includes a new built-in CollectionView to perform a set of complex operations against server side data. A new set of .NET RIA services supports these features on the server.
- Improved performance, through:
- Application library caching, which reduces the size of applications by caching framework on the client in order to improve rendering performance.
- Enhanced Deep Zoom, allows users to fluidly navigate through larger image collections by zooming.
- Binary XML allows communication with the server to be compressed, greatly increasing the speed at which data can be exchanged.
- Local Connection This feature allows communication between two Silverlight applications on the client-side without incurring a server roundtrip: for instance a chart in one control can communicate with a datagrid in another.
- Advanced Accessibility Features. Silverlight 3 is the first browser plug-in to provide access to all system colors, allowing partially-sighted people to make changes such as high contrast color schemes for ease of readability by using familiar operating system controls.
- Out of Browser Capabilities. The new out of browser experience in Silverlight 3 enables users to place their favorite Silverlight applications directly onto their PC and Mac, with links on the desktop and start menu—all without the need to download an additional runtime or browser plug-in. Further, the new experience enables Silverlight applications to work whether the computer is connected to the Internet or not—a radical improvement to the traditional Web experience. Features include:
- Life outside the browser. Silverlight applications can now be installed to and run from the desktop as lightweight web companions. Thus, users can take their favorite Web applications with them, regardless of whether they are connected to the Internet or not.
- Desktop shortcuts and start menu support. Silverlight applications can be stored on any PC or Mac computer’s desktop with links in the start menu and applications folder, and so are available with one-click access.
- Safe and secure. Leveraging the security features of the .NET Framework, Silverlight applications run inside a secure sandbox with persistent isolated storage. These applications have most of the same security restrictions as traditional web apps and so can be trusted without security warnings or prompts, minimizing user interruptions.
- Smooth installation. Because Silverlight applications are stored in a local cache and do not require extra privileges to run, the installation process is quick and efficient.
- Auto-update. Upon launch, Silverlight applications can check for new versions on the server, and automatically update if one is found.
- Internet connectivity detection. Silverlight applications can now detect whether they have Internet connectivity and can react intelligently including caching a users’ data until their connection is restored.
For step by step installation instructions and where to get the bits be sure to visit the official Silverlight 3 getting started page.
With all these new features and tools Silverlight 3 is becoming an excellent platform for line of business enterprise applications. Check out these two sessions from MIX on building LOB apps using Silverlight 3.
Windows Presentation Foundation (WPF) 4
So now that Silverlight has an out of the browser experience that means that WPF is on its way out right? Wrong! The team has never been harder at work and announced a slew of new features coming in WPF 4.0/Windows 7.
In fact due to the very nature of XAML and the synergy between Silverlight and WPF you actually get to be a RIA developer just by being a Windows developer. Think about that for a second. It used to be the case if I was a Visual Basic WinForms guy I wouldn’t be able to take those skills and bring them to the ASP.NET world. The API’s were different, the tooling was different, and the concepts were different. But, now it will be entirely possible for me as a Windows Client developer to take my code and put it out on the Web via Silverlight. Same skills, same tools, more opportunity for you as a developer!
Be sure to check out Jaime Rodriguez’s three part series on what he saw at MIX and how you can leverage your skills as a WPF developer across both client and web today.
Grab all the details here including video recording of the teams session and PowerPoint slides.
The Azure team has been hard at work since last November’s CTP and announced several exciting features at MIX09.
From their blog…
FastCGI allows developers to deploy and run web applications written with 3rd party programming languages such as PHP. This provides developers using non-Microsoft languages the ability to take advantage of scalability on Windows Azure.
NET Full Trust provides developers with a level of flexibility in Windows Azure that removes limitations on .NET Libraries which require full trust (including .NET Services) .NET Full Trust, via spawning process and p/invoke, also allows developers to leverage existing investments in native code or legacy components that they will now be able to invoke on Windows Azure.
Geo-location provides developers with the ability to specify a location for their applications and data to build responsive services with lower network latency as well as the capability to meet location-based regulatory and legal requirements.
You can read more details on these features written by the program managers who led these efforts.
Read more about Geo-location from Sriram Krishnan
Behind the Scenes
RIA? Web? Cloud? Design? Development? It’s all there for us and MIX09 really brought that point home. To me there has never been a more exciting time to be a .Net Developer. But at the end of the day this is bleeding edge stuff. It’s early version stuff and it breaks. Worse yet it breaks while you’re demoing it. I’ve been there myself.
You have to love the elegance of people like Bill Buxton who made an almost seamless recovery.
Oh and a little product called Internet Explorer 8 got released during MIX too. Might want to check it out. =)