Announcing the release of the first "WPF/E" CTP

This morning we released the first public community technology preview of "WPF/E".  You can install it here, and then try out a few of the early samples that show off some of its capabilities below (note: some of the servers might not have finished propagating the samples, so check back later if the links don't work):

"WPF/E" delivers a small client runtime that enables AJAX developers and designers to deliver richer, cross-platform, interactive web experiences.  It will allow applications to go beyond what can be done with pure HTML today, and will enable sites to significantly improve the client user experience by blending HTML UI, Dynamic Vector Graphics, Animation and Media into a seamless cross-platform browser experience.

"WPF/E" accomplishes this by providing a rich graphics engine that can be used on any HTML page and which adds browser support for vector graphics, animation, and declarative XAML UI markup (the declarative XAML format enables search engine optimization of interactive content as well as better authoring via WYSIWYG tools).   WPF/E also provides built-in video and audio codec support for WMV, WMA and MP3 content.  This means you can now easily stream interactive video content to any browser without requiring any additional install or runtime (Windows Media Player is not required).

"WPF/E" is implemented as a small client-side runtime that users download and install once for their browser (the CTP is a 1.1Mb download, and can be configured to "download on demand" the first time a user visits a page that uses "WPF/E" content).  This first CTP runs on both Windows and Macintosh systems (both x86 and PowerPC), and supports IE, FireFox and Safari browsers.

What makes "WPF/E" really nice from a developer perspective is that it is easy to integrate it within existing HTML pages and sites.  Developers can write standard JavaScript within an HTML page to directly manipulate and program against any XAML DOM element, storyline animation, or video within "WPF/E".  This enables developers to easily add WPF/E assets to their existing AJAX-enabled HTML solutions today, and be able to use a single code-base with a consistent AJAX framework to work against both the HTML and XAML DOMs on the page at the same time. 

"WPF/E" can be used with any AJAX framework (it has no dependencies on any client-side AJAX implementation).  We'll obviously also deliver deep integration with ASP.NET AJAX, Visual Studio, and the new Expression Studio designer-tools as well.  We'll also be providing "WPF/E" integration with .NET managed code next year. 

To learn even more about "WPF/E", check out this Channel9 video about the project:

You can also review the CTP documentation here.  I'll also be posting a number of "WPF/E" tutorials (including ones that show off nice ASP.NET AJAX integration) over the next few weeks on my blog here as well.

I think you are going to find it a very exciting technology to take advantage of, and that it is going to enable you to significantly improve the user experience of your web applications going forward. 

Thanks,

Scott

57 Comments

  • Great stuff. Very exciting.

    Especially fond of the video streaming capabilities to finally give some Flash COM a real alternative. Flash Communication server + ActionScript is great but Macromedia/Adobe is not really a developer-friendly space and a lot of scenarios need work arounds to stream content. Excited to finally have microsoft in this space and hope to see the Microsoft developer friendly version.

    Any time lines on this product?

    Can't wait to read the AJAX integrations!

    Thanks.

  • Oh boy. I have to tell you, I am not exited about this at all. Despite all the greatness that is ASP.NET 2 and Atlas, I feel this is where Microsoft will once again try to use proprietary software and formats to fight competition.

    Support for browsers is one thing but MS can pull the plug on Mac/Safari and Firefox any day, which will mean our customers will need Windows/IE to use our applications.

    No thanks, I'll stick to standards when it comes to delivering web applications through the browser. See also Open XML and Zune.

    I look forward to other peoples opinions and hopefully an honest reply from Scott.

  • Media player is impressive. Virtually no load time, videos look great.

  • Hey Scott, this is very cool stuff and thanks for the post! Will this be able to compete with Adobe's Flex? In other words, will I be able to program in VB.NET and use WPF/E to create rich interactive shopping carts or product creation systems? Also, do you know if this is planned to be part of IE in the future and not a seperate download?

  • Is it possible to build 'code-behind' apps in WPF/E that are executed by the XAML hosted in WPF/E? How can a developer build their own UI component (using WPF) and instantiate it within the XAML? Or are we limited to the XAML controls provided 'in the box'?

  • Are there plans to include a Linux version?

  • why is it better than flash?

  • I love it. Flash is totally broken, so it's nice to finally see someone step up to the plate and provide what Abodemedia totally failed to deliver.

  • wow! This is really cool stuff. I will be waiting for more blogs of yours in this

  • This is exciting. Have I heard correctly that these developer/designer tools - the Expression Suite; is not to be part of MSDN as they are not for "developers". If I have heard correctly then it will be important to tell all the developers who were hearing how they finally had a set of well integrated tools to work that these are NOT development tools at all. The message from Microsoft will obviously have to be substantially changed. It occurs to me as i write this that it is probably just a clever rumour put out by Adobe! Scott please set me straight... thanks as always for your great blog!

  • What a technical show !

  • A big thumbs up to the pace of innovation at Microsoft at the moment. Web applications using the best of ASP.NET 2.0, ASP.NET AJAX, Windows Sharepoint Services 3.0 and now WPF/E really provide an exciting end-to-end framework online.

  • Hey Scott, This is exciting.
    Is it required to install something extra on server to run WPF based applicatoins or installing in client is sufficient.

  • Hello again Scott,

    Are there any plans for intergrating local storage into WPF/E? I realize WPF is the presentation layer but some local permanent storage as in Flash can give javascript an extra place to store data and can be really useful.

    Also, I think it would be beneficial to post a best practices guide for using WPF/E via javascript. IE has a lot of quirks about working with DOM and I am sure WPF/E control interactions may have their own quirks.

    Great work
    Alex Osipov

  • You said: "We'll also be providing "WPF/E" integration with .NET managed code next year."

    Does this means that script# will be promoted to an enterprise level project?

  • I found no object in the sdk concerning web service access. How do wpf/e communicate with web services?

  • Does this run under Vista RTM? I just installed it (and rebooted) but the samples come up blank.

  • Hi Meisinger,

    Currently we only support Mac and Windows systems. But we'll be continuing to look at other operating systems as well. We plan to support any widely deployed client operating system on the Internet.

    Hope this helps,

    Scott

  • Hi Jeremy,

    Yep - we believe this will compare very well with Flex. You'll be able to program in VB.NET and use WPF/E to create rich interactive content.

    Hope this helps,

    Scott

  • Hi Shan_mcarthur,

    This CTP of WPF/E doesn't allow you to build custom controls yet. But we plan to enable this in a future CTP - so you won't be limited only to those "in the box".

    Hope this helps,

    Scott

  • Hi Majid,

    Nothing is required on the server to run WPF/E applications on the client (you can deploy them off of Apache on Linux if you want).

    We'll obviously have rich support with ASP.NET that you can optionally take advantage of if you want though.

    Thanks,

    Scott

  • Hi Alex,

    Local storage is something we are looking at and planning to provide. Stay tuned! :-)

    Thanks,

    Scott

  • Will WPF/E be available on windows CE?
    we will like to have a build a applikation C# that uses WPF/E

  • Hi Scott,

    this looks interesting, but is it based on any standards? Will it be submitted as an open standard? Seems to me there's a danger of it being another proprietary format - the last thing anyone needs on the web.

    How about taking SVG seriously? Firefox and Opera support it natively. Why not IE/Microsoft?

    I'd be interested to hear your opinion Scott - especially as you have been heavily involved in making ASP.NET much more standards compliant recently.

    Thanks

  • Hi Scott! Can we find a quite exhaustive list of differences between WPF and WPF/E?
    In particular, I noticed that many controls such as DockPanel, StackPanel, ListBox or GridView are not included in WPF/E.
    Will those controls be available in a future CTP?

  • Very exciting technology, but I cannot avoid asking why is it better than Flash? I understand that the API is intuitive to web developers, but if I really needed to provide such experience in my a website I would learn ActionScript and that's it...

  • I have downloaded the WPF/E CTP & SDK, I played with them and have noticed that WPF/E does not fully support Unicode, as I use a TextBlock to test the display of Arabic text, WPF/E was rendering the text incorrectly as if it is rendering the text from left to right while Arabic text should be render from right to left. This same behavior is true for Hebrew too which is also a right-to-left language.

  • So... can we expect Novell to port this to Linux?

  • This is very impressive but i have a question. Do we have any kind of visual support? If i want to animate a square do i have to do it only using code? I understand that for the paging sample we need to code but i'm sure that for some things it would be nice to have the code generated for us.

  • Hi Fayaz,

    This CTP doesn't support Arabic text just yet. We have that schedule for a future CTP though.

    Thanks,

    Scott

  • Hi Hugo,

    WPF/E today has animation support - where you can declaratively animation shapes without having to write code (although obviously you can animate via code as well).

    Thanks,

    Scott

  • Hi Arnaud,

    This CTP of WPF/E doesn't provide controls just yet - instead it provides the shapes, brushes, canvas and visual features. A future CTP will add controls and layout manager support.

    Hope this helps,

    Scott

  • Hi Henrik,

    We are planning to support WPF/E on mobile devices as well in the future.

    Hope this helps,

    Scott

  • Yes - but will it support anything but IE7 on Windows? I realize you have to push your own products, but it's going to cost you market share over the long run to continue to ignore standards, etc.
    Just my opinion and obviously the decision-makers disagree, but still thought I'd give a small dissenting voice.

  • Hi Sigh,

    WPF/E works with IE6 + 7, FireFox and will support Opera on Windows. You can use any modern browser with it.

    Thanks,

    Scott

  • Very exciting, Scott, but will marketing bring it to its place in the sun?  I hear a lot about the graphics engine on programming forums, but no buzz whatsoever on the more artistic side, such as imaging forums (i.e. photo forums).  MSFT's image compression engine in WPF seems excellent, and tons of professional photographers would love it, but I hear nothing there.  MSFT marketing, a field that detractors of MSFT say is their ace, is actually its weak suite, it seems to me in this field (competing against Adobe or AAPL, for example).  
    Anyhow, great technology, thanks,
    Paolo

  • Hi Scott,

    WPF/e looks interesting.

    The download page of the WPF /e plug-in says that it will install only on
    "Internet Explorer 7 and Firefox 1.5 and 2.0 on Windows Vista
    Internet Explorer 6 and 7 and Firefox 1.5 and 2.0 on Windows XPSP2 "

    Now if I use WPF /e on my web site what will happen to Windows 2000/03 and Windows 98 intenet users? I can't keep them out or maintain two versions of my site.

    If Microsoft is providing support of IE 6.0 then why not for 2000/98?

    Pravin.

  • Hi,

    As an after thought (relating to my previous post) WPF is subset of WPF /e and WPF being part of .NET 3.0 - which runs only on XP and Vista - WPF /e can also run only on these OSes.

    Hmmmmm.

    WPF /e is so much exciting and full of many possibilities - but this limitation will seriously affect any web site's potential.

    Pravin

  • Hi Scott,

    This looks really good. Just one question, does the Media Player support Windows Media Server? I tried changing one of the examples to reference media at mms:// but had no joy so far.

    Phil

  • Hi Phil,

    This current CTP doesn't yet include live streaming (instead it uses progressive http download streaming).

    A future CTP will be adding live streaming support via WMS server though. Stay tuned. :-)

    Thanks,

    Scott

  • Hi Pravin,

    WPF/e is not limited to Windows - as I mentioned in the blog post above it works with Macs (both x86 and PowerPC) and older versions of Windows.

    Thanks,

    Scott

  • This technology may be "cool" but it's pointless if it requires users to install a plug-in and only works on a subset of browsers and devices.

    Microsoft need to get behind existing web standards rather than going off on their own yet again. What's wrong with SVG? And how about implementing CSS properly - that would be a good start.



  • Scott

    I was expecting a CTP for long time for this WPF/E, since announced. Tx a lot. I feel, this is really going to change the way websites are designed now.

    Ive few doubts;
    1. WPF/E runs in all Windows (including old) you said, so we DONT need .NET 3.0 (or older) versions installed inthose client systems

    2. Above you said, youre planning to provide some disk space for WPF/E. Will it not compramize clients security. Or will it be provided within Temp. internet folder itself

    3. How were going to makesure that WPF/E is not another ActiveX, which was later labelled as a security lacking plugin and everyone started blocking all ActiveX contrls

    With Reg
    JiniShans

  • WPF and WPF/E seems powerful, but why not use this technology on Virtual Earth. Recently I had to download Virtual Earth 3D Plug-In to view the 3D capability on Virtual Earth. Rather than asking users to download another plug-in, why not use WPF/E. Its seems a great scenario to utilizes this technology.

  • Scott,

    Great stuff! it's really cool!

    I installed it yesterday and followed the quick start examples. I had a problem. When I included the WPF/E code in my existing asp page, IIS reported an 404 error when trying to fetch the xaml file (I used Nikhil's http tracing tool). When I renamed the file to txt, everything just worked fine. Did you have this issue before? What might be the problem?

    Thanks!

  • How is the separation between designer and coder kept clean when the event handlers are placed right into the XAML?

    Take this simple scenario.. a designer gives a coder a XAML file, and then coder needs to respond to some event on an object defined in the XAML file (eg. OnClick). After watching the video, the handler for that event looks like it is defined in the XAML itself. So how do we then give the XAML back to the designer for some further tweaks while we continue to code? Correct me if I am wrong, but the XAML now has references to code that may or may not exist in his environment?

    Just trying to get this process down in my mind.

  • Hi Brian,

    You can declaratively persist event wireup declarations in the XAML file, or you can wire them up programmatically from code. With the later there are no code references at all from within the XAML.

    Even with the declarative event-wireups, though, I think you'll find the designer/developer separation very clean (in some ways even cleaner than HTML).

    Hope this helps,

    Scott

  • It didn't work for me.

    I installed it and went to look at the samples and each page told me I needed to install WPF/E. I even went as far as closing all instances of IEXPLORE.EXE and it still didn't work.

    I didn't try rebooting, but if that is the case, I don't want it. It's bad enough if I have to close all browsers.

    It should be as easy to install as Flash Player. Anything harder and it's not worth it.

  • Hi Tim,

    This first CTP doesn't support an automatic-install option (we will do that in the spring once it is further along).

    To run the samples now, make sure you install this: http://www.microsoft.com/downloads/details.aspx?FamilyId=A3E29817-F841-46FC-A1D2-CEDC1ED5C948&displaylang=en

    One you do this, you can then navigate to any sample and it should work fine.

    Thanks,

    Scott

  • Hi James,

    I think you are going to like where WPF/E is heading. We are definitely going to be support rich application development with it, and will be taking the platform pretty far.

    We'll be providing more details and features in the spring timeframe as we make more progress on it.

    Thanks,

    Scott

  • Hi Tomog,

    Glad you are finding the plugin useful!

    To answer a few of your questions:

    - Support for mouse and keyboard events will be much further enhanced.

    - Zip support of content is coming about 2 months

    - Textbox and core input controls are also coming

    - I will follow-up on the printing aspects, I'm not 100% sure of our plan here.

    Thanks,

    Scott

  • Anyone know if the WPF/E SDK is compatible with Visual Web Developer, thnx

  • Hi Scott,
    Nice blog. Could you please throw some more light on Integration of WPF/E with Ajax? What are the steps involved in that. That will be a great help.
    Thanks
    Martin

  • Hi Martin,

    I'm going to be blogging a lot more about WPF/E in the weeks ahead.

    At a high-level, one of the great things about using AJAX with it is that you can use JavaScript within an HTML page to program simultaneously against the HTML elements within the page, as well as the XAML object within WPF/E. This makes integrating it within an overall AJAX experience much, much easier.

    Hope this helps,

    Scott

  • Hi Martin,

    Expression Blend doesn't yet support WPF/E - but will shortly.

    I believe either the current CTP of WPF/E or the next one will have a property that allows you to set:

    UIElement.Cursor = "Hand"

    On any element, which will automatically change the cursor to a hand when you hover over an element.

    You can simulate scrolling today within your WPF/E canvas. We'll have a built-in scrollable control in the future that will also provide this for free.

    Because WPF/E is saved as XML, we also expect search engines to be able to crawl and index the content within it - so you will be search engine enabled.

    Hope this helps,

    Scott

  • Scott in future will you be adding another dimension to all the drawing primitives. It would be amazing to be able to do drawing in 3D.

  • Hi jinishans,

    Future builds of WPF/E will be adding control support within the XAML file. This will enable you to nicely encapsulate functionality and not have to work with individual graphic elements in the XAML file.

    Hope this helps,

    Scott

Comments have been disabled for this content.