Hanselminutes Podcast 46 - Windows Presentation Foundation Everywhere WPF/E
My forty-sixth Podcast is up. In this one, we chat about WPF/E, the supposed Microsoft "Flash Killer" and speculate about its future. There's a Mac version already, does this mean cross-platform CLR and XAML for all? Listen and find out. I hope you enjoy it.
We're listed in the iTunes Podcast Directory, so I encourage you to subscribe with a single click (two in Firefox) with the button below. For those of you on slower connections there are lo-fi and torrent-based versions as well.
Links from the show are also always on the show site. This particular show had a metric crapload of links, do check them out. Do also remember the archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.
Our sponsors are CodeSmith Tools and the .NET Dev Journal.
As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)
- The basic MP3 feed is here, and the iPod friendly one is here. There's a number of other ways you can get it (streaming, straight download, etc) that are all up on the site just below the fold. I use iTunes, myself, to listen to most podcasts, but I also use FeedDemon and it's built in support.
- Some other clients are Doppler (also suppose Windows CE), FireAnt, Nimiq, and PrimeTime Podcast.
- Note that for now, because of bandwidth constraints, the feeds always have just the current show. If you want to get an old show (and because many Podcasting Clients aren't smart enough to not download the file more than once) you can always find them at http://www.hanselminutes.com.
- I have, and will, also include the enclosures to this feed you're reading, so if you're already subscribed to ComputerZen and you're not interested in cluttering your life with another feed, you have the choice to get the 'cast as well.
- If there's a topic you'd like to hear, perhaps one that is better spoken than presented on a blog, or a great tool you can't live without, contact me and I'll get it in the queue!
Enjoy. Who knows what'll happen in the next show?
About Scott
Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.
About Newsletter
1. Not included in MSDN - Since these tools are specifically made for designers, not developers, I can see how it makes sense to MS that they would not be included in a product for developers. Having said that, I am a developer but also really want to use these tools for UI design as well as to explore the new technologies - building something cool looking in Blend and then ripping the code apart is a great way to see how WPF works. They absolutely should be included.
2. Multiple Expression products - Your comparison of Photoshop to the entire suite misunderstands what the different tools do. The different products are actually for different purposes, not different levels of the same product (like C#, VB, Web Developer, not like VS Std, Pro, VSTS). Expression Design is the Photoshop/Illustrator competitor, Blend is the Flash Professional analog for WPF, Web is the Frontpage replacement and DreamWeaver competitor, and I'm not quite sure what Media does but that was the product you mentioned in the show that was actually purchased from another company. The Expression Studio SKU includes all 4 products and is sort of like Adobe's CS/Macromedia Suite.
Thanks for doing the show (even when you're sick) and keep up the great work!
I was just listening to your rant about having all the upgrades for a Win XP install on a disk - this thing exists! The German computer magazine "c't" has a "c't Updater" which will go out and download all updates and service packs and everything for your choice of Win 2000 / Windows XP / Windows Server 2003 / 2003 R2 and your choice of German or English systems.
They do this by maintaining lists of download URL's and using free software like "wget" to download everything and "mkisofs" to create ISO files from those downloads. The client is smart enough to allow you to run all the downloads at home on your fast connection, burn a CD (or put the .ISO files onto an external hard disk), and then go to your Mam's site and update her computer from the ISO / CD-ROM / DVD-R (whatever you choose to do).
Go grab it here (page is in German, just click on the "3.02" label to get the latest version):
http://www.heise.de/ct/ftp/projekte/offlineupdate/
An English translation of the original article exists at:
http://www.heise-security.co.uk/articles/80682
and an English speaking discussion forum about it exists at:
http://www.heise-security.co.uk/forums/go.shtml?list=1&forum_id=108277
Greetings from Switzerland,
Marc
"Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 504"
Typically after being on the site for a few minutes.
I enjoyed the recent show about WPF/E during which I noticed that you have missed a few developments (pun intended) in the Flash space so I thought maybe I could help you out for a change. I am predominantly a .Net developer but have had some experience developing for the Flash platform. So…
A couple of straighteners from the show… Flash uses the Actionscript language which is currently at 3.0. It is an ECMA compliant language and is consequently similar to Javascript (but compiled in this case). It is dynamic but is optionally strongly typed. Lingo is the language used with Director to develop for the shockwave platform and is more C-ish and much more performant. Flash Player (currently at V9 I think) is about 1mb whereas Shockwave player is >10mb I think and has lots of 3D goodness in it hence the use for more advanced games etc.
I thing Flash historically hasn’t taken off as an application platform because using the Flash ‘tool’ (IDE is definitely not appropriate in this case) it is an absolute ball-ache to develop for. There are also perceived accessibility and SEO issues which have been addressed for a while now but have stuck.
For a few years Macromedia and more recently Adobe have had the Flex platform. This is basically Flash player on the client with Flex server on the err… server end. Until the current version Flex applications would only run if you used Flex server which costs a fortune and this prohibited the uptake of Flex. With version 2 Adobe broke the chains and you can now develop Flex apps without using the server. So, it will happily work with .NET at the server end although there is in the box support for Java Remoting. There is talk of a .NET remoting piece on the way from Adobe but in the meantime it is no problem talking to .NET web services etc. There is also a JSON setup for .NET.
There is plenty of info with trial versions and demo apps at http://www.adobe.com/products/flex/ The demo apps are quite compelling and are very much the kind of thing I expect we’ll be churning out with WPF/E in the future.
The freeing of Flex from the Flex server is significant and makes the whole platform more attractive. The development experience is very good and there is an IDE called Flex Builder that is based on Eclipse (or available as an Eclipse plug-in), has everything you would expect from an IDE, and only costs $749. There is also a free SDK you could use if the mood takes you. There are also plenty of tools that’ll export to Flash like Swift 3d, 3dsMax, Maya etc that can be used for the fancy graphical stuff…
Now tell me this doesn’t sound familiar:
In the IDE you develop Flex apps by dragging and dropping controls (or writing the code obviously), all the usual are included, onto the development surface. Under the covers Flex UIs are written declaratively with MXML and/or Actionscript 3 either inline or code behind. There is a full complement of charts with the full version. You can see these in action on Google analytics for example so they are being noticed and are definitely full featured and extensible. There are lots of add-ons and community efforts including an MVC framework called Cairngorm which is worth a look.
Adobe are in the process of moving all this onto the desktop and there is something in the pipes called Apollo which you can read about at <a href-"http://labs.adobe.com/wiki/index.php/Apollo">http://labs.adobe.com/wiki/index.php/Apollo</a> I haven’t really looked too much into this but I think the idea is that you can wrap your web applications in a cross platform desktop runtime and consequently make use of the local resources.
Oh, almost forgot… There is full Flash export in Illustrator
So there you go, a whistle-stop tour of the application side of the Flash world. I think this sheds more light on Microsoft’s strategies and movements in the RIA arena…
Anyway, thanks again. Keep up the good work and get Chris Sells back on, I enjoyed that show
Cheers
Graham
Considering the subject is WPF/e, you spend a lot of time talking about WPF, and mixing the two technologies up. You don't make it clear that they are two very different beasts. At one point, you discuss WPF/e and then give an example of Yahoo building a new version of messenger in WPF.
WPF is a managed presentation layer that replaces GDI. It can be used to build desktop apps that run locally, can be installed via ClickOnce, or can run in the IE browser frame as XBAPs (in the same way you can run Word in the browser frame). You can use XAML as a way of declaratively defining the user interface. This is compiled into code at build time.
WPF/e just happens to be unfortunate enough to share a similar name. It's an unmanaged (and cross platform) browser plugin that downloads XAML and parses it at runtime. It then renders the XAML (using GDI!) over elements in an HTML page. The XAML it supports is mostly similar to WPF's XAML, but has different elements and namespaces (try opening http://channel9.msdn.com/playground/wpfe/pageturn/xaml/mainPage.xaml on a system with WPF installed - it errors). It has support for animations and playing back Windows Media movies (which is apparently an advantage over Flash, or so I'm told). Events are handled by Javascript and the XAML DOM can be manipulated at runtime, again via JS.
It has no support for building applications, or running on the desktop. It has no control infrastructure (no buttons, sliders, lists, etc). It has no keyboard handling. It doesn't currently have support for a cross platform CLR, but that should come in later CTPs. So right now, the only programming you can do with it is via Javascript running on the host page. I'm not sure what support it has or will have for network security and web services.
Your comment that WPF apps will mainly be business focussed and on intranets, and you'd like to build a banking app in WPF/e doesn't really work for me. WPF is for desktop apps. WPF/e is for rich web content that can interact with an existing web page (in the same way as your Google finance example does in Flash).
Hope you don't mind me posting this - it's meant with the greatest respect. I'm a fan of the show (one of only 3 podcasts I listen to) and just felt that the message you were sending wasn't as clear as it should have been.
Cheers!
Matt
A lot of J2EE based systems in fact, are using Flash as an Ajax platform. The product offering Adobe has for this is Flex - http://www.adobe.com/products/flex/. There are a Lot of apps out there that are in fact using flex in an awesome way, including yahoo maps which provides a flex API (http://developer.yahoo.com/maps/flash/flexGettingStarted.html)
I’ve seen this getting for a couple of J2EE projects. The development life cycle with flex is pretty similar to the one you mentioned in the show. For example, a UI person makes the UI using the Flex Development IDE (albeit, some action-scripts are involved, which they are expected to pickup, much like HTML designers pickup a little bit of JavaScript) and points to hard coded XML files.
When the J2EE development completes this UI points to XML based Web Services and integration is very straight forward. It helps UI teams and J2EE development teams to work independently and yet have VERY simple integration in the End.
I haven’t tried flex with .NET personally, but there’s a lot of material out there that says you can make it work with .NET, PHP and a host of other technologies. I guess, one of the reasons why it hasn’t become very popular is because it’s a paid product (and quite expensive too :))
Comments are closed.
You should have showed them a Ruby hello world! :p