Whither (or should that be wither?) WPF?

18 March 2009

Scott Guthrie's big keynote of MIX09 has just ended and we're left with the aftershocks of some pretty exciting news. The Silverlight 3 beta was released (along with the SDK, and other goodies) and Scott took us on a whirlwind tour of what's new and what's coming up with it.

Old and new mice The shocker to me was the GPU hardware accelerated support for Silverlight 3. In the browser! I'll let you ruminate on that a little while to let it sink in. Furthermore there's 3D support as well, and Silverlight exposes all this to the media features to enable better, higher definition, video. That may have been the impetus for it, but it's also very much available for lowly business apps too. To prove it Scott showed off some of the 3D effects on a normal datagrid app. (Live update from MIX09: ah, not quite 3D but essentially perspective transformations; Perspective 3D, if I got the term right.)

And then another shocker: Silverlight running outside the browser as a desktop app, either on Windows or the Mac. Absolutely fascinating in my book, given our own experiments in that area. Some nice demos of Silverlight in Blend were shown off as well.

So what do we have? Silverlight 3 reaching outside the sandbox to use hardware graphics acceleration and 3D for video, and Silverlight 3 running as a desktop app. Oh, and, it's cross-platform.

But... What's WPF used for again? What's the value proposition for WPF? Why should anyone even begin a new WPF business app now, when they can spend the time creating the same app in Silverlight, running in the browser and on the desktop (several desktops)? The only thing I can come up with at the moment is that WPF has a richer run-time. And, um, well, that's it. Someone is whispering over IM that it has a better data access story as well, but I can't imagine that's going to be a differentiator for very long. (Live update from MIX09: seems there's a new Data Access layer for Silverlight 3 based on Entity Framework, so I was frighteningly right.)

Look, it seems clear to me that Silverlight is getting all the love (branding, promotion, what have you) from Microsoft at the moment for one very good reason: Adobe. Which browser media/RIA add-in is almost ubiquitous these days? Adobe Flash. What are Microsoft concentrating a lot of effort on? Silverlight, the competitor to Flash. Hmm.

Want to write an RIA? There's a plethora of different ways to do it, but the one I see most often these days is Adobe Flex and, er, Flash again. But, man, you have to learn ActionScript. Oh, and here's Silverlight using C# and VB. No competition. Want some controls? The Silverlight Control Toolkit on Codeplex will do you fine (100+ controls!, says Scott) and you can always pay vendors like ourselves to get controls with richer, deeper functionality.

All of this is to mass web developers against the current norm for media over the 'net and RIAs. Nothing against it, mind: out of such competition we all get better software and features. But let's not kid ourselves, Silverlight is in a fight against Flash for the mindshare of media/RIA developers, but I'm seeing WPF as collateral damage.

And I look at our roadmaps for this year and I wonder.

37 comment(s)
Chris Walsh [DX-Squad]

WPF = dead in the water in 2 years, i think we will all see WPF's rich runtime merged into SL 4.0

18 March, 2009
Chris Walsh [DX-Squad]

Just watched the video again, it seems everyone is getting on the Miller bandwagon and shaving their heads before a big release! Stick out tongue

18 March, 2009
Don Pavlik

WPF has a different space, Silverlight is web focused which by that means mulit-desktop OS.  Example  you can not write a Silverlight application to burn CDs, or manage your files on your file system. Silverlight does not have access to these resources, where WPF does.  Plus WPF has access to DirectX and other hardware that helps increase its performance and distribution such as Surface devices.  

The best way I make my comparison is you can use Silverlight to create light weight distributable applications.  With WPF you can make heavy weight applications such as CD burning software, file system managers, 3D modeling and interaction, applications that require the horse power of the hardware that rests upon.

18 March, 2009
Chris Walsh [DX-Squad]

You also forgot Blend 3.0 Surprise

18 March, 2009
Peter Thorpe

If that's the case i'm glad I haven't moved from winforms to wpf, looks like the two will be merged under the silverlight banner.

18 March, 2009
Chris Walsh [DX-Squad]

Peter, that is my generalisation, but it might not happen, as Don points out, the WPF framework is richer and has access to more resources, whereas silverlight is only browser sandbox and GPU

18 March, 2009
Aaron Smith

I was just talking to my boss about all the SL 3 stuff. That's the direction we are moving. We wanted to be web based and that's the route to take now that the features are there that LOB apps need.

The unfortunate part is when he asked, "Where does Developer's Express fit in to all of this?" I haven't seen much out of you guys as far as any targets to make controls or what-not. So what's the scoop?

And roadmaps can be changed.... We do it all the time! haha

18 March, 2009
heather

As some of us have been saying for quite some time...we want ALL your stuff in Silverlight please...and give your engineers some fun time to take advantage of this 3d stuff to really set your product apart from the rest.

Business users deserve game time too... :) well at least we can make their apps look more game like...

18 March, 2009
Chris Walsh [DX-Squad]

Guys, silverlight has been moving along with DevExpress, they have their own Editors for Silverlight now, if have a DXperience Enterprise Subscription, you can get access to the beta bits right now!! Smile

And i have to say, its pretty good!

18 March, 2009
heather

Microsoft has updated their worldwidetelescope now to run with Siliverlight in a browser.  First question they ask...WWT needs local storage to run.

:)

www.worldwidetelescope.org/webclient

Check it out...it is cool!

18 March, 2009
Julian Bucknall (DevExpress)

All: A tweet from Miguel de Icaza (Mono architect) today (spelling corrected):

"Wpf will be irrelevant because sl3 is xplat and the subset that matters. Full machine access is irrelevant or trivial to do"

(twitter.com/.../1350355301)

To which I can only say "+1"

Cheers, Julian

18 March, 2009
Jerrie Pelser

I'm with you on this one Julian.  I will also have to reconsider the use of WPF in a new application I am busy developing and have a serious look at SL...  There are a few things for which I would need access to the local machine resources, but in general I am struggling to make the case for WPF now that SL can run out-of-browser.

Given what has been announced at MIX so far I think you guys would be correct in reconsidering that roadmap as I think you will find that most developers will skip WPF and jump straight onto SL3...

19 March, 2009
Rollie Claro

If (LinqToSQL)

{

    LinqToEntityFramework

}else{

    LinqToEntityFramework

}

try

{

   if (WPF > 2Years)

       throw(SL)

   else

      throw(WPF)

}

catch(Exception NoDifferenceWithSL)

{

  return Silverlight;

}

in my opinion

:))

19 March, 2009
Steve Sharkey

I have components I know and trust in WinForms (thanks DX), I've been to countless Silverlight demos by microsoft - excellent but strangely enough none of my business clients want video playing back as the background to their data entry forms... It offers me nothing new that I need at the moment and that being said MS treatment (or lack of) WPF leads me to be cautious about going anywhere too quickly (I still remember ActiveX Documents!

19 March, 2009
heather

Steve I think the key in regard to Silverlight for many is that finally (with VS2010) they actually address the insanity that is required for ASP development.

Silverlight finally gets "web" development back into the world of "rich client" development where you actually can focus on the business rules and the code to get it done and not get constantly frustrated with bogus javascript errors, browser inconsistencies...etc...

So if Silverlight is actually the silver bullet that people are looking for and it allows you to deliver rich client functionality (just like wpf) but you can easily and effectively deploy to the web...then why wouldn't you develop in Silverlight.

I think VS2010 is also a key part of Silverlight because it will only be then that the XAML support, etc will be truly integrated into the IDE for high productivity..

19 March, 2009
Shloma Baum

Hi Julian,

Hate to say it... but... if you check Ray's email about of about 4-5 months ago this is exactly what I told him back then after seeing the demo at PDC when they showed up Alexandria (currently SL3 and Ria Services) and asked Ray then to put more effort in SL, hope you will update/revise your road map soon.

As far as SL vs WPF the may difference I currenlty us local File and application access (we personally need it to integrate with Intuit QuickBooks) but assuming you add this to (recall) Fiji... that would be awsome!

Now lets see some scheduler and all your other cool stuff we've come to love since 2001 (or so) from VCL, Aspx, WinForms. Get it rolling man.

Regards,

Shloma

19 March, 2009
Filip Verhaeghe

Exactly. WPF is being overtaken by WPF/E, which makes a lot of sense if you think about it. The ability to have a full trust Silverlight application seems like a natural next step for Windows apps that need access to the local computer. However, I'm writing business apps, and for business apps, the local computer is irrelevant. The interesting thing will be: how does this translate to Silverlight Mobile, especially with the renewed emphasis on serious graphics capabilities (driven by nVidia) for MIDs en smart phones.

Silverlight will become very popular for a very simple reason: it is a lot simpler to build a web application than using ASP.NET or any other technology. In fact, it is a simple as building a WinForms application: no need to worry about multi-tenency, or state, it is all within the application. Just have the server side expose the data as a stateless secure service, and have the client do the smart processing. You get in the browser with identical experience across browsers, local installation without the hassles and across platforms. What is not to love? Now, client platforms can compete on how well they support Silverlight (something tells me Windows will have

Silverlight acceleration code inside), and the server still run on Microsoft Windows (local or using Azure). The platform is irrelevant, long live the platform. And did you notice that Silverlight has most of the WinForms functionality now? There are very few reasons today to start new WinForms applications. When full trust is there, those last reasons will be gone too.

It seems logical that a company like DevExpress has to make strategic bets from time to time. Heck, clearly even Microsoft has to make them. Resources are limited. Where will the largest profit be made? By making some additional extensions to existing product that allready sell or by putting as many resources as possible on this Silverlight rocket that is taking off, and where DevExpress still has a lot of ground to cover to really be the leading component developer? Seems to me the economics are trivial in this case.

Economics aside, I can only beg to have more of your WinForms functionality in Silverlight. I realise you can do a lot of cool things with Silverlight that you couldn't do with WinForms, but just getting on par would already be great. Innovate with animation etc. as time goes on. We'll all be grateful that we can build Silverlight business apps today, and we'll also be greatfull when you make our apps cooler later without much effort on our side. Especially charts, gauges, treeviews. Sure, I can get stuff elsewhere and for now I have no other option. But the thing about DevExpress is that the controls are really good. Did I see you guys mentioning better data support for this year? Can't wait. In fact, I am not waiting since we're developing and demo-ing now. But I sure would love to use those DevExpress tools.

Which brings me to my last point. Silverlight should get its own subscription, same as ASP.NET and WinForms. It is (at least!) as important, and Silverlight developers are at this time by definition on the leading edge. I also notice that my Client application is 100% Silverlight. ASP, WinForms etc. really have no added value, and I don't like to mettle with DevExpress code because I want to upgrade easily when new things are available.  What I do like is access to beta's, RC, and other early releases.

Filip.

19 March, 2009
Martin Brekhof

So basically we are all heading towards a future few years away in which Windows-like applications can run over the Internet? Using Delphi and Asta/Remobjects with Devexpress for the front-end this could be done in 2005 and earlier. It can be done now with Devexpress/Remobjects (together with XPO).

So what is the big deal? Running on Macs?

19 March, 2009
Shloma Baum

A SL subscription sounds like a good idea to see if there's interest in this platform, I'm willing to purchase a SL subscription right now to show support!

19 March, 2009
Nate Laff

I disagree completely. I don't see WPF going anywhere. Microsoft is taking designing a lot of their own software now in WPF (Expression Studio, Visual Studio) and these things simply can't be done in a sandboxed environment that Silverlight will give you. The fat client isn't going to disappear and for that you'll want WPF.

With Prism, you can cross these two platforms easily enough anyways. In my opinion it makes sense to stick with WPF for true desktop applications. Not the sandbox SL environment.

19 March, 2009
Linton

Thanks for the update Julian. +1 SL, -1 WPF

19 March, 2009
Christoph Brändle

SL/WPF is the best the world has come across, and WPF is even a little better

19 March, 2009
Oliver Sturm (DevExpress)

I don't agree that Silverlight is going to replace WPF. I don't even think it's a very strong contender, certainly at this time, but not in the foreseeable future.

To separate my thoughts from "DX policy", I blogged about it on my personal blog here: http://tr.im/hAXS

20 March, 2009
Mocte Sandoval

Have you seen the SL DataForm control?

silverlight.net/.../learnvideo.aspx

20 March, 2009
Kai Bohli

I'm not surprised that SL get's all the love and care during Mix09. After all the subtitle for the event is "the next web now". Blend and VS2010 is made in WPF. Julian, would you please watch the "Ask the Gu" video at http://live.visitmix.com before you make any hasty desicions. Pay attention to the middle of the session where someone asks Scott why he should care about WPF. By all means, you're the one that sits on the sales figures and know how many Windows developers you got vs Web Developers. I'm a bit of both.

All in all, I'm getting tired of waiting for DevExpress making WPF stuff. The things you've made so far is good, but I can't use any of it, cause it's too hard to style the components. And the out of the box style doesn't fit any styles I would care to use.

Just my 2 cents.

Best wishes

Kai Bøhli

Norway

20 March, 2009
Ron

SL is still very 'new'. I was at Mix and MS SL guys state 1) no profiler for SL apps and none in the queue only internal tools, [really important now as you cant tell where the delays are coming from] 2) no printing support - you must launch a browser with URL that does the printing even from the Out-of-browser version. (slated for SL4).

I see SL as the 'safe' application (in or out of browser) due to sandbox. If you need local storage, access to file system, full .net 3.5 runtime, and a snappy interface you need WPF. I hope they do not merge them. Yes, the hype machine is on SL for now.

I must tell you, another hot thing was Expression Blend 3. Scratch prototype of screens that interact with 'wiggly' controls and typeface that looks like napkin design. See the video on keynote.

21 March, 2009
Justin

The biggest hole right now for a Silverlight business app compared to WPF is PRINTING.

In making a decision right now to do a business app in SL the main issue holding my company back is any form of printing support. You can kinda get around this in the browser by dynamically genning HTML and doing .print through the bridge, but the out of browser mode has no HTML bridge!

You could also round trip to the server to gen a PDF, but again offline on the desktop there may be no server, nor can you tell a browser to navigate to a PDF in out of browser mode.

Supposedly this will be addressed in SL4 but there is no info on what that means exactly.

Related to that is any kind of client hardware integration, whether it be printers, gps, serial ports, cameras, etc. If they can expose some of this in a platform independent way it would go a long way for making it viable for replacing a full WPF solution.

23 March, 2009
andrew stuart

"And I look at our roadmaps for this year and I wonder."

Does this mean you are coming to realise that Adobe Flex and Silverlight is where the development action is at, and therefore where your product development efforts should be focused?

The problem for Devexpress is that Microsoft is building components that are actually useful, thus little incentive for developers to buy "better" Devexpress components.

Adobe's Flex components however are close to useless for professional quality applications, but Devexpress has sworn off developing for Flex.

as

23 March, 2009
Jim Gibson

Ahhh... the "tyranny of the 'or' "  at it again.  This is an "and" discussion, not an 'or' discussion.  We keep thinking of new technologies as a debate between this one supplanting that one.  The 'or' debate.  Whre in fact most major shifts are 'and' transformations.

Personally, I am building a very rich app that runs trusted inside the firewall.  And trust me,  there are VERY few enterprise applications (i.e. apps that people actually pay for) that need to be run on a browser.  I refuse to make a 1500 desktop run like a 200 netbook for no reason.  

WPF when the client is rich and trusted.  SL when we reach outside the firewall..  The real 'and' discussion is about the deisgn patterns and technolgies that can be shared (i.e. MVVM and XAML and Control Frameworks and Blend and .... and...  (notice the 'ands')

24 March, 2009
Tor Langlo

Julian,

You said: >>What's WPF used for again? What's the value proposition for WPF? Why should anyone even begin a new WPF business app now, when they can spend the time creating the same app in Silverlight, running in the browser and on the desktop (several desktops)? The only thing I can come up with at the moment is that WPF has a richer run-time. And, um, well, that's it.<<

I think you are plain and simply spreading FUD here, and I don't understand why an industry veteran like yourself would do that. There shouldn't even be a need to defend WPF, but from a general point of view I would say that WPF is a much more complete, rich, and elegant technology when you look at the implementation (what the developer has to deal with every day). For somebody else's take on this see the following article from Dr. WPF: www.drwpf.com/.../Default.aspx.

Here are just some of things that WPF do much better than Silverlight:

* 3D

* Printing

* Interop (COM, P/Invoice, etc.)

Now we all have go out there and repair the "collateral damage" you have inflicted. For instance see here: www.sdtimes.com/.../article.aspx

Tor.

24 March, 2009
Matthew Roberts

If my WPF and Silverlight are written in XAML  - it make sense to develop in Silverlight. The leading component vendors are all pushing very hard on silverlight and WPF but seem more focused on silverlight. Its exciting to watch silverlight grow and make RIA as good as desktop!

24 March, 2009
Shloma Baum

Hi Oliver,

I read your blog, but to be honest I'm not convinced, first of all if MS pushes SL for business app as opposed to push WPF for business apps and is so committed to SL as seen in their fast pace release cycles for SL, this alone is enough to convince me to SL rather then to WPF, I agree that WPF is not nearly dead it has its space (for really heavy weight client apps, Blend/VS etc), but for business apps besides the benefits outlined below I'd rather go for SL.

We sell Field Management Software and we market on lots of different PPC and other online media outlets, when someone goes to download a trial we have a very little time to convince them that our product is for them, now if this whole process goes wrong even if the product is brilliant we (most of the time) immediately lose a potential customer so the deployment and install process must be as smooth as humanly possible just so the prospect even looks at us and doesn't move immediately to another open tab in their browser that hosts a competitor's website.

Currently we are using Delphi/VCl (of course with almost all DX components), being a native app we are pretty close to accomplishing the above. However a percentage of customers are asking us for a browser solution, but with normal aspx we wouldn't be able to accomplish the productivity of our Windows app (or so we feel), so that also obviously means for us a no go for WPF as the run time is huge. In addition we are being continuously asked about a mac solution (more recently than ever before).

So for us Silverlight seems to be the best out there given the following:

*Tiny run time (even if its not on their machine already).

*Client side productivity

*Browser based

*Out of browser option if wanted

*Beautiful UI

*Mac support

*Potential mobile support (hope MS claims come true)

As far as the drawbacks you mentioned on your blog:

Local resources: I'd say that its enough what Julian quoted Miguel that this is trivial to do (if fact think Fiji, should be more than enough to prove this)

API missing: I'm pretty confident that if there's really important stuff missing I'm pretty sure they'll be added, see the color enums you bring up was already addressed for SL 3 beta. In addition Scott mentioned during the keynote that Printing/Mic and other resource support is already under the works. In the meantime I see no problem is using server side printing and returning a PDF client side.

So I personally see SL exploding, not to mention now that the RIA services is out SL is going to turn mainstream and will attract even non .net developers to .net (me included where I until how no real benefit in .net over plain native VCL).

I'd love to hear yours/anyone's feedback on the above.

Regards,

Shloma

24 March, 2009
Sam Grow

In the end, this all comes down to Microsoft marketing .NET to more developers.  If SL wins or grows to address a few of the last remaining issues, it will attract an incredible amount of businesses and developers to use it.  Microsoft is going to move toward doing whatever they have to do to get more companies and developers using .NET.  This means more money for them and another way to dominate the development software.

If there is a way Microsoft can get SL3 or SL4 to do the last remaining things that a few people are complaining about, it will WIN.  It might be a little too soon to tell for some people but I am placing my bets that a year from now SL will be the clear leader and WPF will be dead.

Just look at what's happening in this blog...  The majority of people who posted a reply here seem to be leaning toward SL.  Shloma, is even considering switching to .NET all because of SL. Up until now his company had no reason to switch from Delphi.  This is exactly what Microsoft wants.  If I was Microsoft, I would be telling the SL team to get these last few missing features in place ASAP!

From my point of view if SL can merge the best of Windows forms and Web forms and then make it better, I am sold.  I would think most developers would say the same thing.  What’s there not to like assuming Microsoft can add whatever else is missing that WPF currently has over SL.

I have also noticed 3rd party vendors are pushing development more toward SL instead of WPF controls.  Just look around and you will see there are already a lot more SL controls out there than WPF controls.  This is another sign that SL is leading the way over WPF.

I really doubt anyone will develop a large application in either technology until one emerges over the other.  This is starting to feel like the old Betamax and VHS war.  The game changer for me was SL3 being able to run outside of the browser as a desktop application.

25 March, 2009
Julian Bucknall (DevExpress)

Tor: It's fascinating that you point to the SDTimes article where I'm quoted. The interesting thing for me in that article is that Brad Becker, the "director for rich-client platforms and tools" at Microsoft, was quoted like this, in part: '[he] explained that in comparison to Silverlight applications, which can "run anywhere" without installing on the client machine, WPF applications can "fully utilize the capabilities of your PC, such as hardware-accelerated graphics, and the Windows operating system for desktop, file and system integration.' Wasn't hardware-accelerated graphics something that they were trumpeting about Silverlight at MIX09? Didn't he get the memo? And once Silverlight is running properly on the desktop, how long would it be before those other things come to pass?

The point everyone is missing I think is this: comparing Silverlight and WPF feature by feature is lame. Sure WPF has a richer run-time, no question. Sure Silverlight has glaring holes that need to be filled (and they will, and are -- check out what they're doing with the Silverlight Control Toolkit, for instance). Seems like an easy choice, huh? WPF all the way.

But, you might as well do the same thing with regard to WPF and WinForms: WinForms has such a huge mature third-party ecosystem compared to WPF, and is so well maintained and understood, that you would question why anyone in their right mind would ever do a WPF application. Same argument in my view.

However, does Silverlight 3 (and later) have enough to make you pause and think "Does it have enough stuff for me to design and develop the app that I need to write?" What if your lead time were 3 months? Possibly not. 6 months? Getting warmer. A year? Now you're talking. What if you had to have two versions: a web and a thick client? Etc, etc.

For many business apps and many decisions, I would venture to say that Silverlight *does* have enough to support a business application, even starting right now. Obviously, there is a class of applications that wouldn't suit the Silverlight platform, but equally well the question is, would these apps suit WPF? Why not stick to WinForms? We're not all writing Photoshop after all (although I note that with CS4 Adobe are obviously moving to a mixed thin/thick client).

And FUD? Ha. Did you write to Miguel de Icaza and say the same thing? Methinks he's more of a luminary on the subject than I. And also, it's not like we, DevExpress, have made any decisions one way or another: witness Oliver's takedown of my position (http://tr.im/hAXS).

Cheers, Julian

25 March, 2009
Hualpa

I do not quite get the fuzz about WPF versus Silverlight as a Business developer. I see Silverlight as a subset of WPF and one day they will be united into one acronym.

As a web user I will start taking Silverlight seriously as an Adobe Flash killer as soon as the first Silverlight app will work on my MacBook or my Ubuntu-machine at home.  

27 March, 2009
Mario Howard

I agree with Tor.

See also blogs.msdn.com/.../mix09-recap-series-part2.aspx

Mario

4 April, 2009
John Douglas

Great thread.  The hype of SL 3 has pushed the expectations a couple years beyond the reality.  My clients (old fashioned ;)still want to print, connect to devices (card swipes, etc.).  Silverlight aspires to be browser based xbap WPF, cross-platform.    

MSFT appears to be chipping away at the security/platform challenges one at a time.  By my account, that's WPF in the lead, and Silverlight following.

16 May, 2009

Please login or register to post comments.