Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

The Present and Future of WPF

Pete Brown - 28 October 2010

The last year has been busy for the developer division at Microsoft. We shipped Visual Studio 2010 and .NET 4 with WPF 4 as well as Silverlight 4, new versions of Expression Studio and WCF RIA Services. We recently shipped Windows Phone 7 and XNA Game Studio 4.0. We also put out betas of Visual Studio LightSwitch and WebMatrix.

All of those products were either built using XAML-based UI technology (WPF and Silverlight) or target XAML-based UI technology with their output.

At the same time, WPF matured through three framework versions, and continues to see success in many ISV, business, and Surface applications.

WPF Inside Microsoft

Visual Studio was given a new WPF-based shell and editor with the 2010 release. As one of the largest single applications at Microsoft, the move to WPF was not taken lightly. Visual Studio 2010 is an application I use every single day, and like most of you, rely on to do my job. I'm really happy with the 2010 release, and I'm looking forward to what we do with the WPF shell in future versions.

image

The Microsoft Expression Suite continues to rely on WPF for the user interface. Some, like Expression Blend, were built from the ground-up using WPF. Others, like Expression Design, show the power of integrating WPF with native code to enable leveraging existing code while providing a modern interface.

image

Another great WPF application, currently in beta, is WebMatrix. WebMatrix is "everything you need to build Web sites using Windows. It includes IIS Developer Express (a development Web server), ASP.NET (a Web framework), and SQL Server Compact (an embedded database). It streamlines Web site development and makes it easy to start Web sites from popular open-source apps. The skills and code you develop with WebMatrix transition seamlessly to Visual Studio and SQL Server."

image

WebMatrix takes advantage of the great WPF UI capabilities, as well as interop with other technologies on the desktop, including incorporation of some pre-existing Windows Forms-based dialogs and controls.

There are other applications throughout Microsoft (inside and outside Developer Division) that are being built in WPF and .NET. You'll see more of them in the future. 

Customer WPF Applications

The use of WPF inside Microsoft is exciting and inspiring. However, it wouldn't be very compelling if Microsoft was the only company using this technology. In addition to the many behind-the-firewall applications that are core to the day-to-day running of businesses, companies like Intuit are creating shrinkwrapped WPF applications that millions of people rely upon. TurboTax 2010 is one such WPF application, as you'll see in Rob Relyea's on-demand PDC Video.

CalMAN is a screen calibration application by SpectraCal. In September, I interviewed Joel Barsotti, one of the primary developers of CalMAN, for Channel 9. This is a very cool WPF app for its interesting visualizations as well as deep Windows integration for screen calibration data acquisition.

PostCalAfter

THX Complete (Report)

Metrotwit is a very impressive WPF Twitter client, styled in the Metro style used by Windows Phone 7 and Zune. Kudos to Long Zheng and the Metrotwit team for delivering this WPF4 application this past year. You can install Metrotwit via ClickOnce here.

image

The Book of WPF lists a lot of WPF applications in the wild as of 2009/2010. There are some seriously cool applications there, so I encourage you to check it out. Major ISVs and large IT shops have chosen WPF for its ability to provide rich application UI, excellent binding, and deep Windows integration.

image

image 

There are tons of other applications out there and new ones being built daily. Many are behind-the-firewall business applications, many are ISV applications. We've seen examples of plant management, BI, reporting, and much more from companies both large and small. Rob Relyea covers some of these in his on-demand PDC 2010 talk.

Planning for the Next Version

Six months ago, in April 2010, we shipped a major new version of WPF 4 as part of the .NET 4 release. That release contains a ton of new features including:

Visual Studio 2010
WPF Tracing Support
WPF Designer

Text
New Text Rendering Stack
ClearTypeHint
Selection and Caret Customization
Custom Dictionaries API 

Graphics
Layout Rounding
Cached Composition
Pixel Shader 3
New Pixel Shader APIs
Easing Functions
Removal of legacy bitmap effects

Controls
DataGrid
Calendar
DatePicker
Binding
Binding Commands on InputBinding
Bind to Dynamic Objects
Bindable Text Run

Styling and Templating
Visual State Manager

Windows 7
Multi-Touch and Manipulation
Integration with the Shell and Taskbar

General
Improved Client Profile
Managed Extensibility Framework
Parallel Computing
XBAP Script Access

We're all very proud of that release; it addressed a number of top customer requests and improved WPF visuals and the deployment story. Since that release, we've also shipped two major releases of the WPF Ribbon Control.

When I was on campus in September of this year, I had the pleasure of sitting in with the WPF triad during a v.next briefing. Over in the right-hand Window, Rob and his team had some tentative assignments for feature teams. You can see there's a ton of stuff up on that window. I can't wait to see what awesomeness comes with WPF v.next!

image 

One thing that I was happy to see (and which was no surprise given all the team's requests for reports) was the use of some of your top uservoice feature votes in the planning process. There they were, up on Rob's window, organized by value and cost (shown is not necessarily the final arrangement).

image

A few nuggets we can expect to see in the next version of WPF include:

  • Hosting of Silverlight content in the embedded browser, without airspace issues (the inability to overlap WPF content over native Windows hWnd content)
  • Overall better management of airspace with hosted native hWnd-based content like the WebBrowser, HwndHost and WindowsFormsHost
  • Enabling binding and change notification for collections that are created on a background thread
  • Better integration with UI virtualization
  • Integration of the Ribbon control
  • more...

Of course, we're early in the process, so this is subject to change, and it is by no means a complete list. However, it shows how the team is thinking about the next version, and how your top requests have impacted those decisions. Working with the WPF team is a treat. These are folks who love their work and believe in their product.

So Where does that Leave WPF?

This all adds up to some key points on WPF:

  • WPF is a critical technology for many key Microsoft applications
  • WPF is a technology relied upon by our customers for a large number of internal and for-sale applications.
  • WPF is alive and well, with plans underway for the next version.

What about Silverlight?

Folks who know me know I'm just as much of a fan of Silverlight as I am of WPF. This post covered the future of WPF, for the future of Silverlight, be sure to read the Future of Silverlight post on the Silverlight team blog. That post does a good job of explaining how Silverlight fits in to the changing web landscape.

Also, a year ago, I put together a post about the future of Silverlight and WPF. That's still a good reference when combined with the updates to guidance in this post.

Our Guidance

Speaking of guidance, I'm often asked for guidance with how to choose between WPF and Silverlight. Here's what we recommend when starting a new application:

  • If you're just starting out, and there's a question as to which technology to choose (Silverlight or WPF) then start with Silverlight. It is generally easier to move up to WPF from Silverlight than it is to move the other way. Silverlight has a smaller API, and is therefore generally considered easier to learn.
  • If you need a desktop application with only basic system integration, consider building a Silverlight Out-of-Browser application. Silverlight 4 Trusted Applications with IDispatch support provide access to many system resources previously unavailable to web technologies.
  • If you need deep system integration, excellent multi-touch support, device access, local resources, and all the other things that go with a solid desktop application, then consider moving up to WPF.
  • If you're a C++ developer, you can choose to go with C++ and MFC, or use C++ with WPF on the front end, like the Expression team did.

No matter what you chose (WPF, Silverlight, Native), rest assured that you'll be supported in the years to come with enhanced capabilities and our awesome programming tools.

       
posted by Pete Brown on Thursday, October 28, 2010
filed under:        

90 comments for “The Present and Future of WPF”

  1. Scott Barnessays:
    About time! :) is all i can say Pete.

    As for the Guidance, its bad advice and disconnected from the realities of the cubicle level> I know its bad advice as i helped write the guidance - its out dated and it was a reactive message to misinformed data. It was crafted specifically to move users from WPF over to Silverlight at the time and I'm guessing you had to ask DevDiv marketing for this in an email or two...

    WPF should be a preferred option when factors play a role - for example, Enterprise should move aggressively towards WPF than Silverlight given .NET has a smaller 9 months+ shipping cycle so it creates a chaotic effect in terms of "new vs current" positioning for the said run times.

    As for migrating from Silverlight over to WPF, its not that simple and its misleading to advise new-starters of this. The guidance should be around how to setup both (ie tricks etc) and then educate users on the pro's / con's of each with a comparison matrix so this ensures users establish a baseline to build up from.

    Anyway, about time. Now the trick is to back this up with Evangelism and Marketing? as its one thing to build it, its another to tell everyone you built it :)

    -
    Scott Barnes
    RIAGENIC.com
  2. Juan M. Medinasays:
    This was a much needed post!

    I have been working on WPF for the past year, exclusively, and I love the technology. However, as time has passed by I have seen more and more stuff added and supported on the Silverlight side of things and not so much on the WPF side. There are now Silverlight constructs that are not available in WPF (nice constructs that would make sense to add to WPF too) where Silverlight used to be a subset of WPF, and things like the public WPF Themes are now well behind their equivalents on Silverlight.

    I do understand that the Web is where you would want to put a lot of your resources nowadays, but perceiving that a technology like WPF has a chance of not being strongly supported is kind of sad, particularly when it has brought so many rich possibilities for us Desktop app developers.

    I really hope this blog entry as well as Rob Relyea video from PDC are a good indication not only that WPF will continue to be supported, but that it will also continue to evolve and be pushed for ISV/Desktop application development. After working with WPF it is kind of hard to imagine doing GUI work any other way.
  3. Maximilian Radityasays:
    I hope WPF vNext will have a really SIGNIFICANT performance improvement. Performance should become a top priority.

    Based on my experience, VS2010, which uses WPF, is having slower performance experiences compared to VS2008. Various issues about performance in VS2010 have been reported in Connect, which I presume happening since WPF is used as VS shell.

    Even, MS employee admitted it himself (see comment in here: https://connect.microsoft.com/VisualStudio/feedback/details/577709/vs2010-ide-becomes-gradually-slower-while-opening-a-large-number-of-files:)
    "Thanks for taking the time to report the issue. What you're seeing is unfortunately a side effect of Visual Studio moving to WPF. In order to display the new features each window takes a bit more memory so when you're opening a large number of files it will slow down the system."

    Thanks.
  4. Olegsays:
    I like that you mentioned ISVs.

    In my opinion it is usually overlooked how massively we still use and try to improve old style desktop applications for business with the heavy dependency on other applications, legacy technologies, underlying OS API and device's API. In many places going to Web, cloud etc does not make any sense both technologically and financially.

    Of course, everyone agrees that gooing there is a future. Still it would be nice if Microsoft in the search for its place in the future will not forget current customers. Because, you know, Microsoft cannot convince someone to rely on it in the future if we have problems relying on it nowt.
  5. Tonysays:
    I am using WPF, with XBAP inside Frame.

    With this i can write my application in modules, that i simply load the XBAP´s URL inside the Frame,
    And older modules, i simply load the URL of the ASP.Net in the Frame.

    I used this a lot in ASP.Net, and use in WPF + XBAP inside <Frame>

    You should make me able to use transparency of the XBAP Frame, and the Host Frame.
  6. John Myczejsays:
    Can you address the future of the WPF Toolkit on CodePlex (http://wpf.codeplex.com/)? At one time there were fairly regular releases, now nothing since Feb 2010. Also, will the Data Visualization ever be part of the core WPF?
  7. Jeremy Braytonsays:
    @John Myczej - A lot of what was introduced in WPF4 like the DataGrid, Calendar, and DatePicker came *directly* from the WPF Toolkit. I believe the Ribbon in beta also existed there. The toolkit, silverlight included (but primarily SL's) would always have the 'quality bands' as mentioned here: http://silverlight.codeplex.com/releases/view/43528. Once things move up into the SDK band they're pretty much scheduled to be included into .NET core at some point. If you look at the stable band in WPFToolkit, all of those controls made it into WPF4 and there are only 4 left in 'preview'. Basically put, the only thing the team has to work on now is those 4 preview controls, everything else is the responsibility of .NET WPF proper, which may or may not be an entirely different team. There's a lot of 'writing on the wall' so to speak when you look at how things are appearing to wind down but there's still a bit to be done in the WPF space and I don't think it'll be quite the slag people are predicting.

    WPF4 is my first real dive into the technology and I've been fortunate enough to skip quite a bit of pain points. The only one that comes to mind specifically is the Image RenderOptions, which is pretty big in itself from where I'm standing. As someone who compulsively studies the MS culture, I totally get where people like Scott Barnes are coming from (yet he's internal and privy to more realities than I am) about being wary for the future but I'm not giving up on the potential just yet (nor do I think he is either).

    I do believe personally that WPF4 is quite mature. Doesn't this version make it the 'mythical 3.0' if you count .NET 3.0 as 1, 3.5 as 2, and so forth. It's not quite as polished as previous 3.0 products but I think that gap will be closed. Of course I'm starting to deviate from that metric considering the only 2 products to really go beyond 3.0 in any significant way are Windows and Office for obvious reasons.

    I'll also share Scott's comments on the WPF->SL versus SL->WPF move however reluctantly. I get the idea of learning the smaller framework first but if you happen to run into those few edge cases where OOTB security hits you in the face, you'll have to jump into the deep end of WPF at a time where you could care less. Learning a new tech because the other tech should cover that one possibly obscure base makes me feel like I could regress to taking a dump in my hand and throwing it at the computer screen. That's not to say don't advocate it but the 'matrix of responsibilities' should be as clear as possible up front (which it usually is). I'll also share Scott's thoughts on going WPF for an enterprise especially if you can support the entire PC experience like the place I work now. The only time SL has been picked in lieu of WPF is when we don't want to have a user install something on their machine. If an app is only going to be used by a single person in the company twice a year it can sit on an obscure web server as a SL app much easier than trying to maintain a ClickOnce deployment.

    I'll also echo Scott yet again in saying: about time. I'm trying to curb my speculation but it was extremely hard to do without clear guidance from the teams in question. It's not that I didn't believe in the potential or the reality but as a human being I need to be flat out told things like "Yeah I can see why you'd think that but seriously, everything will be okay." Not that I was worried in any way but the silence was starting to sting a little bit until now.
  8. Alex Ssays:
    Hi! Thanks for this great article!
    I like WPF and hope it will grow up and become very popular platform for Windows applications.
    I'm just wondering where I can submit my suggestions what I'd like to see in WPF vNext?
    We faced with number of issues when developing MouseExtender, a little utility, using WPF and I hope many of them will be fixed in vNext.
    Also, I hope, that WPF will be mature platform :) so nobody will fight with platform issues instead of developing functional parts of the app

    Sincerely yours, Alex Sorokoletov.
  9. Patrick Finnigansays:
    @Alex S
    You can go to http://dotnet.uservoice.com/forums/40583-wpf-feature-suggestions to make your suggestion, or to vote on suggestions that others have made. The WPF team takes the UserVoice feedback very seriously and heavily bases vNext planning around top UserVoice suggestions that add the most value to the platform.
  10. Paul Stovellsays:
    Hey Pete,

    Thanks for this post.

    On UserVoice I notice one of the top requested features is INPC for auto properties. Is that something that fell on the high end of the "cost" dimension? Or are the user voice suggestions still being considered? Of all the UV suggestions on the first page, I only see one of them made it to your list :(

    Paul
  11. Petesays:
    @Paul

    The short list I posted is by no means all-inclusive of what will make it into WPF v.next.

    I hope we'll have more to share in the future, but that list was all we were ready to share for the moment.

    Pete
  12. rodosays:
    So the onyl interesting feature for WPF vNext is become a player for the good things: Silverlight and HTML.
    This is not good news for wpf developers. If Silverlight is dead then WPF is a body thrown in the charnel ground and reduced to disconnected bones.
  13. Petesays:
    @rodo

    A bit dramatic, I think. WPF isn't dead. Silverlight isn't dead. We shipped major versions of both just 6 months ago.

    We're tackling the major requests for WPF from ISVs and Uservoice. If that's not the right stuff, you all need to vote up the other things you consider important http://wpf.mswish.net

    Pete
  14. Alexsays:
    Am about to lead a large new complex project. Requirements are (very well) met by Windows Forms. This is an internal data entry/query/reporting business application.

    Why would I use WPF instead of Windows Forms, especially given that the team (and likely new team members) have Windows Forms experience?
  15. Petesays:
    @Alex

    If you are comfortable with Windows Forms, you can definitely still use it. WPF follows a newer design and development approach, has newer pattern support, much better binding, and a growing ecosystem of interested developers. There's better font scaling support (especially with WPF 4) and bettern overall UI scaling to make supporting multiple resolutions and accessible UI a snap.

    You'll need to investigate the features of WPF (beyond animation and the "eye candy") and see if those will help make your team more productive in the long run. You also have to consider morale. For many, using the older technology just isn't interesting, so they are less invested in the project as a whole.

    While we'll support Windows Forms for a long time, it isn't getting any real new development inside Microsoft. If you're looking to better future-proof yourself, Silverlight and/or WPF are better choices.

    Pete
  16. Varunsays:
    @Pete
    "There's better font scaling support (especially with WPF 4) and bettern overall UI scaling to make supporting multiple resolutions and accessible UI a snap."

    Accessible UI? I doubt, it's actually at the other side – WPF and silverlight apps are far from being "truely accessible" to screen reader users than html/native Windows Forms apps. By making VS 2010 editor in WPF, you've made life terrible for visually impaired programmers who loved working on VS till VS2008.

    When it was known that support for WPF by screen readers was nonexistent, Ms must have shifted VS2010 with a mode to switch to old native editor as it did in case of Windows (XP mode in Win7). I strongly feel that Ms should hire real people with real accessibility needs so that they can help its team not to overlook accessibility or think of it as they deem fit.

  17. WTWsays:
    One thing commonly overlooked/underplayed is the very large learning curve when moving to WPF. All the eye-candy and demo-ware blogs and talks gloss over how to actually architect and use WPF (and Silverlight) for serious, multi-layer apps. How many videos and "guidances" never mention MVVM and the various frameworks out there, never talk about memory leak problems associated with events and binding, don't address how ordering of loading of controls can affect user responsiveness, don't mention multithreading issues, or data validation, etc. Not to mention actually understanding how the various base classes can and should be used to build new controls, the subtle differences between the visual and logical trees, ... on and on.

    So much of what comes to us is fluff and noise -- of the "just go do it and all will be fine" ilk,-- and then we encounter the pitfalls and dead ends when we start to actually develop real apps. How many demos do we have to see where everything goes into the code-behind - like recreating the poorly structured untestable non-scalable VB apps of old, so we can all see how easy it is to (mis)use the latest "feature", with no idea of its limits or idiosyncracies or when it should or shouldn't be used.

    So some REAL guidance -- something other than just "it'll get better" or "we're behind it all the way" -- would be very much appreciated, and put some real teeth into the on-going evolution of WPF and XAML.

    -- Thomas
  18. Eduardosays:
    Pete: can you merge this two items?
    http://dotnet.uservoice.com/forums/40583-wpf-feature-suggestions/suggestions/488506-add-report-controls-to-wpf-toolkit
    http://dotnet.uservoice.com/forums/40583-wpf-feature-suggestions/suggestions/480923-add-a-native-rdlc-viewer

    Because both are the same, and adding the votes it can make the first page (and hopefully a post-it in the window)

  19. Christopher Quesadasays:
    Great post, better words cant be used to describe the actual situation of the frontend platform strategy of Microsoft.
    I have been using WPF and Silverlight since they were on v1 Beta and the features, performance, controls, extensibility and future and extremly amazing, and they fit certain escenarios where html, flash and other technologies not fit on some aspects...
    Glad to ear the new features, and specting the v.Next

    Regards,

    Christopher Quesada
  20. Dedriksays:
    This does not make any sense to me.

    Perhaps I am totally missing the point here but to me the guidance should be as follows: If you are building cross platform applications use Silverlight and if you are building desktop applications for Windows use WPF.

    By the way, how many more options are you adding to Silverlight? Are you going to continue until it has the same amount of features as WPF? If so, what not use WPF from the get go?

    So much technology redundancy makes absolutely no sense to me, something has to give. I just don’t buy the whole “we will support both WPF and Silverlight event though you much of the functionality is duplicated”.
  21. Davesays:
    As a WPF developer I am pretty annoyed. It seems like WPF has been neglected and that the main focus Microsoft has is on Silverlight. Many more components have been made for silverlight than WPF. And it annoys me that you cannot use Silverlight controls in a WPF app. Microsoft has promised to export those silverlight controls to WPF but how many years in the future will that take? As for the Ribbon control in WPF that was promised to be ready years ago....and it still is not out of beta. WPF is still missing many basic controls like the numeric edit box.

    I would love to know how many Microsoft developers work on Silverlight compared to WPF. I bet the ratio is 4 to 1.

    I have also noticed that when WPF first came out there were ton of webpages and articles about it. Now there seems to be almost no new content coming out. Maybe I am wrong about this...but it just seems like that to me.
  22. Petesays:
    @Dave

    The WPF Ribbon control was released in August, and has had a significant update since then. See:

    http://10rem.net/blog/2010/08/02/announcing-microsoft-ribbon-for-wpf-rtw

    http://10rem.net/blog/2010/10/22/wpf-ribbon-october-release

    As to articles and web pages: much of that depends on what the community is creating. If the community doesn't write about WPF, but instead writes about Silverlight or phone, that's what you see more of. I put out a weekly blog post that includes community posts about WPF, Silverlight, WP7 and more.

    Pete
  23. Tim Bryansays:
    This is a pretty good post and a good effort to bring more information to the developer community. I try not to listen to all the noise that goes on but it can be hard to tune out when it comes from MS insiders. WPF in my mind is a replacement for Windows technology and was certainly due. I think bringing some of the major applications based on WPF technology to the forefront helps to find assurance.

    I second Thomas however as I have viewed far too many videos and read many blogs where the talk is all about the cool of wpf rather than any practical business application capability. There are some good articles out there on MVVM pattern and such but still pretty limiting. Developers moving from windows forms to WPF have a bit of learning curve and adding all the design capabilities can make it overwhelming and while interesting hard to apply to our daily business application demands. Good start and I look forward to more.
  24. DtiGweldsays:
    So I am reading this on my iPad and am very happy that Silverlight was not required to read your post!
    I start a new job tomorrow where I will be using wpf. I,m not happy based on what the community is saying about wpf. Why is wpf getting ignored while it is obvious that silverlight is the dead end?
  25. Petesays:
    @DtiGweld

    Neither technology is a dead end. Both WPF and Silverlight have core scenarios they work well with.

    Silverlight is generally simpler to adopt, and since it can be easily put on the web with a public URL, it gets more public/consumer attention.

    Both are alive and well. Use the one that helps you solve your business/programming problems efficiently :)

    Pete
  26. ovabussays:
    Hi Pete,

    i hope that you understand the confusion that Microsoft created in developer community.And from the posts here (and elsewhere) one can safely assume that it is not developers' fault.

    The problem is NOT that "Neither technology is a dead end. Both WPF and Silverlight have core scenarios they work well with." Surely, i can fire up VS and build a solution using either of them right now. The problem is, how much longer are you willing to invest on them and NOT forcing us to learn again something "new"...
  27. Kensays:
    Pete,

    I am very interested in the WPF v.next nugget "Overall better management of airspace with hosted native hWnd-based content like the WebBrowser, HwndHost and WindowsFormsHost". Will this solve the airspace issue of the SWF controls always drawing on top of the WPF controls when they overlap? This is kind of a show-stopper for our adoption of WPF, since we use the WebBrowser control in a dynamic layout with other WPF controls. We need either a native WPF WebBrowser control (is Microsoft working on this?), or the SWF airspace overlap issue solved in some way, which would be preferred...

    Any rough idea when the next version of WPF will come out?
  28. Davesays:
    Thanks for the reply Pete. One of the reasons I feel WPF is being neglected is that several Microsoft sites haven't been updated in ages like:

    http://wpf.codeplex.com/
    https://blogs.msdn.com/b/wpf3d/

    Are these teams actually working on WPF anymore? Have they been re-assigned to something else?

    Also any idea if the next version of WPF will have support for XNA or any more 3D improvements?
  29. Simonsays:
    All the push for HTML 5 which really to me is only truly manupulated via HTML 5. We see a move into .NET of JQuery, Dynamic types, Var types and the like. Perhaps some of the noise out there is legit. On the other hand, there's still a zillion Cobol programmers out there. What are mainframers doing these days? So the word "Dead" isn't really true on big platforms. WPF and SL are going to be around for a while. I just hope that Javascript doesn't become the defaco language of the Nations.... arghhh!
  30. JoeCastlesays:
    @Dedrik

    I agree with you, I don't buy this "Both are alive and well". Or actually it is true right now, but the future is different I think. WPF has been around for a while and basically nobody used it - too difficult I would say. I use it now because of the workflow designer in .NET 4.0.

    When SL4 came with out of browser possibility I thought ok, this hints that SL and WPF will be merged in the future where OOB is the "desktop" (=WPF) and for web based LOB (not for web pages) we have the more limited SL.

    But lately it seems that ms wants SL mainly for phone and hyping up HTML5 (a cross browser mess again), Oracle is destroying java so as Yoda said: “Impossible to see the future is.” :-)
  31. Petesays:
    @Joe

    WPF has plenty of users both with existing applications and developing new ones.

    Silverlight can do a lot of what WPF can do, but still not everything. If you need the power of WPF, use it. If not, use Silverlight.

    Silverlight is not just for phone. That's based on some poor reporting. Register for the Silverlight firestarter on December 2 for the full story:
    http://www.silverlight.net/news/events/firestarter/

    Pete
  32. Petesays:
    @Dave

    I'm not sure what we're going to do with the toolkit at this point. Lack of movement there, however, isn't due to a lack of support for or investment in WPF. We're just trying to see what people want to use.

    Note that a fair bit of the toolkit ended up making it into the product.

    As to the WPF3D blog: look how often they post. It has never been frequent. They posted shortly after the .NET 4 release, but the last post before that was over a year ago. Some teams blog a lot, some teams don't.

    In the same time, however, we added the WPF Team blog. Tons of great (and frequently posted) information there:
    https://blogs.msdn.com/b/wpf/

    Pete
  33. Brian Lagunassays:
    @Pete

    I too have heard the frustrations of the WPF community regarding the WPF Toolkit. It was this reason why I created the Extended WPF Toolkit, also on codeplex, to help the WPF community gain access to controls that the WPF Toolkit is not providing. If you are interested, I can tell you what requests I am getting and which ones are the most popular controls.

    Check it out: http://wpftoolkit.codeplex.com/

    Brian - @brianlagunas

  34. Axelsays:
    Pete,

    I like your blog!
    What about WPF for mobile (business) devices as continuation of WinMo 6.5?
    SL will not give you access to internal device connectors due to its browser focus.
    And the good thing with WinForms and WinMo is that you could pretty much re-use code in one or the other environment.

    It is somewhere mentioned here: a documentation comparing the different elements, controls... is essential and it would not be bad to have winForms, WPF and SL compared.

    Axel
  35. Dedriksays:
    Well, I just heard from someone at Microsoft that the WPF and Silverlight groups are just a single group now. Is this true? If this is true (and I am pretty sure it is), do you honestly believe that people will keep thinking that WPF is not going to go away? Do you think they will believe that one group will maintain two huge products? Oh please.

    See, that is the one thing I like about Java based technologies, for the most part they appear to be killed by the community and not by some supreme leader (like in Microsoft) whose ever changing master vision ends up not include certain technology and so they get canned regardless of what the user community thinks… though Microsoft claims they care (PR stuff really).
  36. Petesays:
    @Dedrik

    The teams have been under combined leadership for quite some time. They've also shared key components (XAML stack, for example) and the teams for them.

    While there are areas where the resources are shared, the WPF team also has dedicated resources working on the next version.

    No one is killing WPF. I've said before that they will eventually converge; that's a process that has gone on for a long time.

    Pete
  37. ovabussays:
    @Pete:

    It's funny (not to say unacceptable) that you still do NOT understand how much confusion you have created in developers community...Search the net and you will find many companies that they plan to build next project on...Windows Forms, a technology that existed, exists and will continue to serve us well. Ah, and no, for Windows Forms, "our strategy has NOT shifted"...
  38. Chrissays:
    <quote>
    Pete: While we'll support Windows Forms for a long time, it isn't getting any real new development inside Microsoft. If you're looking to better future-proof yourself, Silverlight and/or WPF are better choices.
    </quote>

    Thanks for ending our careers. WinForms is dead; all the features and defects we've been waiting and wailing for will never be implemented or fixed, and as a bonus, little if any of our code knowledge will survive.

    If you wanted us all to shift to WPF, it would've been helpful to persist as much of the same property, method, etc. names in controls (and control names themselves) to match those in WinForms controls. Changing them all is like learning a whole new language, and feels like we can't bring forward our skills from WinForms. Where the heck is my .Text property?!? Where did .Dock vanish to? Why is adding items to a Toolbar disabled? How do I build a simple toolbar now??? I'm using VS 2010 Express...is this suddenly a VS Pro / Enterprise feature?!?

    XAML?? You gotta be kidding me. Using VS I should never have to see that mess. That's what an IDE is for. If the IDE can't show me all properties of a control, and help me choose the appropriate values, I may as well use notepad.
  39. Petesays:
    @Chris

    I didn't end anyone's career. Technologies change over time and as developers we need to be able to adapt. Windows Forms has peaked in capabilities and is not really the best platform to create the next generation UI that new workers coming into the workforce are used to and expect.

    Luckily, it's all still .NET. For me, that's pretty compelling. You'll want to learn a new UI later if you move from Windows Forms, but all the code you'd write for logic, data access etc. can still be the same.

    XAML is a bit like HTML. We have design tools (VS2010 and Expression Blend) that will save you from the vast majority of XML hand work, but it is still helpful to *understand* XAML.

    Some controls do not have a .Text property because they can contain *anything*. Those controls (content controls) have a .Content property. TextBlocks and TextBoxes, which can contain only text, both have a .Text property.

    I'm working on materials to help Windows Forms developers move to Silverlight or WPF if they wish. If you have feedback on things that would be helpful for you to see in training materials, let me know. I gleaned a couple from your comment here, so thanks. :)

    Pete
  40. Robertsays:
    For my development team, basing VS2010 on WPF was the confirmation we needed that the platform was not going to be abandoned. I don't think Microsoft is going to go through that kind of pain again any time soon. Without that, I would not trust WPF for large projects. We've been burned already by the abandoning of WinForms and GDIPlus--we've resigned ourselves to the fact that the bugs we have to deal with are never going to be fixed.

    Our main application is a very large WinForms app, and we've been pretty successful at adding new functionality using WPF. I've even gone so far as wrapping WPF into ActiveX controls so I can use WPF in really old host applications. Eye candy aside, I feel I'm more productive in WPF than I was in WinForms; data templates and dependency properties for everything more than make up for the horrid syntax of XAML and difficulty of debugging binding problems.

    That said, WPF has some serious issues for our application: drawing performance, and testing support. We need to do realtime display of engineering data in charts and other graphical forms, and WPF is just not up to it (GDI+ wasn't great either). We've had to use Win32 GDI interop to get the drawing performance we need. DirectX is another option, but not one we're eager to resort to, given the learning curve. On the testing front, our automated testing tools don't support WPF very well. Not really Microsoft's fault, but it is really holding us back, as Microsoft's new test tool has some glaring issues as well.

  41. Dedriksays:
    Pete Said: "Technologies change over time and as developers we need to be able to adapt"

    Pete, the problem is that many times, there is no good / solid justification to jump to new technologies if the current ones do the job perfectly fine.

    Consider the old VB (the one appeared in 1991), why did Microsoft abandoned that technology? Had Microsoft kept *supporting* and *enhancing* the old VB I would bet you money it would be the preferred development tool used to build Windows *business* apps today for many, many developers. Can you imagine an application that was developed in 1991 that still works now 20 years later? Now *THAT* is a good investment to a company. Imagine the ActiveX controls that would have been available? Imagine the support that would have been available? Wow!

    Nobody is going to argue that .Net / WPF are better than the old VB, but nobody is going to argue either that a *one* time write using the old VB app, would have been better than an old VB app that had to be rewritten to .Net Windows Forms that had to be rewritten to WPF that will most likely have to be ported to Silverlight and that will soon will have to be rewritten to some new Microsoft HTML5 concept UI framework and later to <insert Microsoft new great idea here>. People have grown tired of Microsoft changing technologies around so that Microsoft investments are better aligned with Microsoft’s own personal business needs and goals, not the *community* true needs and goals.

    Not that you or anyone cares but there is no way I will be using Microsoft technologies to build HTML5 solutions, I mean NO way, I will look for tools from companies that don’t have a hidden agenda for those tools / technologies.
  42. Louis van Geldropsays:
    I am completely confused by the announcement of Silverlight 5 and the status of WPF and HTML5. The message I got was: we will make heavy investments in SL5 to make SL5 look like WPF. What a waste of effort and lack of proper product managemenrt. Isn't better to make heavy investments into WPF5 and to get WPF5 working properly on the smartphone, tablet and Windows 7 desktop showing productline continuity at all platforms. Microsoft acts like IBM 20-30 years ago: big company with lack of focus, unable to make the right product choice and make 3 look-alike products- just as in your case with HTML5, Silverlight and WPF, for the same functionality. May the best product of the 3 offers win, bad luck for the other 2 products with it's customers. In that time people avoided IBM and moved to Microsoft to buy it's products, because Microsoft made a clear product choice at that time. The history repeats itself, but now maybe Google's Android is the answer.

    -Louis

  43. Petesays:
    @Louis

    I hear you, but it's a little presumptious to think you know how we should go about developing Silverlight and WPF.

    WPF is very heavily tied to Windows, perioud. Silverlight was built from the ground-up with the layers required to make it easier to port to other platforms. Porting the WPF code base to other platforms would almost certainly be a major undertaking.

    There are some things that are being done to make Silverlight take on more of the proven features of WPF. At the same time, it specifically isn't taking on features of WPF that have turned out to be unpopular or less than optimal approaches. That said, the goal of SL5 is not to make it look like WPF, the goal of SL5 is to bring the product where the customers have asked for it to go. The 3d approach, for example, doesn't look like the WPF 3d apis.

    HTML5, Silverlight and WPF all have overlaps. However, they are not all solving the same problems in the same way. It's naive to think that any one of them will suit all the cases for all developers. So, we provide a choice that enables developers and architects to pick the approach that enables them to solve their problems and implement their solutions the most efficient way they can.

    Pete
  44. Petesays:
    @Dedrik

    Are you really saying that providing a new UI platform every 10 years is too much churn? Really?

    FWIW, there are still lots of VB6 apps out there. I've seen them. They are typically the horrible frankensteins you'd expect out of a 15-20 year old code base, kept in VB only because people are afraid to touch the code.

    If Microsoft had just enhanced VB classic for another 15 years instead of providing a new version, and upgrade tools to migrate the code and UI, we'd probably be out of the developer business. Developers were looking for a change when .NET came around, and they got one. However, they also got a TON of support for moving the old code forward, including the ability to call old APIs and use old ActiveX controls in the new platform. That's not abandonment, that's a thoughtful and considerate approach to modernizing a platform.

    HTML5 is an open standard that Microsoft does not control. Your last paragraph doesn't fit your other arguments. I'd love to see you use our tools for targeting that open standard. We sell developer tools. We even give a TON of them away for free. There's no hidden agenda.

    Pete
  45. Louis van Geldropsays:
    Pete,

    You confirm my confusion. I understood the idea behind SL once announced a couple of years ago, but at the latest PDC2010 Bob Muglia according to my understanding indicated that SL will concentrate at WP7 and LOB's at Windows 7 -HTML5 support will be there for the "reach" of the devices.
    We are developing software for Digital Signage for more than 16 years based on Microsoft technology. We followed Bill Gates' vision of Windows at your fingertips. However the Windows is not the same Windows at the platforms we are working with e.g Windows CE and Windows 7 . The .Net framework and managed code supposed to be the layer to program against isolating the different Windows api's . But with our investments in WPF we are now limited to Windows 7. With Windows Forms, WPF, SL and HTML5 I get the same feeling as with Microsoft's data-group: ODBC, OLEDB, ADO, ADO.Net and EF4 etc. Revolution vs evolution. Each time we have to migrate existing code. Good for companies that sell body-shopping, bad for ISV product developers.

    Please make me happy with a new beautiful version of WPF 5!!! We like the new product features as announced lately. One wish multithreading in order to support smooth running scrolling text.
  46. Petesays:
    @Louis

    Did you see the SL5 keynote at the Silverlight firestarter? http://www.silverlight.net/news/events/firestarter/

    If not, check that out. Scott Guthrie tells you about the future of Silverlight and how it is much more than WP7. He also points out that the three main UI technologies are HTML5, Silverlight and WPF. All are being invested in and all three have a future.

    Essentially (ordered from reach to rich):
    - HTML5 for broad reach apps just as you would today with HTML4, but with some additional capabilities in the media and graphics space.

    - Silverlight for premium media (including smooth streaming), business apps where the web deployment model helps you out, and you don't need the full power of the .NET framework, and apps where using .NET on the client in a web deployed model helps you be more productive. Silveright will also move to target more platforms (xbox and set-top units were both mentioned, wp7 of course. I believe there are some things going on in the CE/embedded space with Silverlight embedded, but I don't have details to share)

    - WPF primarily for ISV (packaged software) and complex applications that need the full power of the .NET framework on the client. WPF is also a good integration technology, enabling you to integrate Windows Forms, native code, Silverlight and other bits to provide a cohesive solution

    WPF will continue to work and be supported on the next version of Windows. We're working on the next release of WPF right now :)

    Pete
  47. Louis van Geldropsays:
    Pete,

    Thank you very much for your explanation. It convinced me to continue developing in WPF OOB and WPF XBAP for the Windows 7 platform.

    We are looking forward to the new WPF 5 release with promised functionalities. Hopefully this year :) :) :)
  48. Dedriksays:
    @Pete

    We could certainly go on forever speculating what theory is right or wrong, realistically we will never know unless we could turn back time and experiment but that is not going to happen so let’s not go there.

    Bottom line, in the perfect world, Microsoft should have continued to enhance classic VB and at the same time keep enhancing .Net / WPF and let the *community* decide what is bets for the *community* (Who know how powerful class VB could have gotten ). Of course, having competing technologies within Microsoft as well as the cost to maintain both technologies would be crazy. So Microsoft decided to decommission classic VB, not because the *community* wanted this but because it was for Microsoft best interest to do so….. Again, and to stress the point, Microsoft is taking decision that are aligned to benefit Microsoft, screw the user base. Same thing is happening with WPF no matter how many times you try to deny it… Sorry but that is the way it is.

    In the perfect world, we would have a company that has nothing to do with Microsoft developing a UI framework based on .Net. There is no doubt that another company can take on this task and I can bet you money that such company would hang to their product with all they got and keep it alive and well not for 10 years but for 100 years if possible. But noooooooo, Microsoft needs to control the UI technology and as of today, no one is going to take Microsoft on their turf.

    As to your other comments: "Developers were looking for a change when .NET came around”. What developers? The copy and pasters? The ones that still think that “ByVal” makes a copy of a ref object? The ones that still struggle with the difference between value and reference equality? The ones that have no idea what GetHashCode() is used for? It’s easy to be overly exited about new technologies when you consider that knowing 10% of what you supposed to know is good enough. People that invest and sacrificed considerable time on their own (after 8 of hour work) after work hours, weekends and vacations learning the ins and out of the technologies don’t always share the same excitement. Get real, the amount of technologies we have to master to stay competitive and the cost to produce such technologies is absolutely overwhelming, that is why there is so much mediocrity on the Microsoft world and one of the reasons why my company unfortunately moved on from Microsoft to Java.

    Sorry, don't meant to rant, just frustrated by Microsoft.

    Thanks.
  49. Krishsays:
    My understanding is that, Silverlight won't have future over HTML5 unless it does some value addition over HTML5 which would really be used by the end user. Same goes for Flash player, the set of HTML5 looks more than enough to hold its ground for most of the users demands for coming decade.

    As far as WPF is concerned, it is going to be there for sure in future. It will replace ASP.NET and WinForms, and will surely have mapping for output conforming to HTML5 or Silverlight or WindowsOS. Windows OS will support full set of WPF, WPF effectively move towards less coding and more markup. Which is what most of the companies are doing, this only eases it. The learning curve will be to know the WPF tags, which I am surely MS will come up with a tool to handle. That will shield the programmers from the WPF tags, that's what happened with HTML. I don't think ASP.Net programmers know whole set of the HTML4 tags.

    This must be the reason why MS is not showcasing WPF, its a technology which will enable other technologies. But still a worthwhile technology to learn, it is a must for technical architects not a requirement for programmers. Programmers will probably focus more on C# ways of programming rather than be inclined to use tags, also not everything in markup is good. Its not easy to debug markup languages like XAML, a balance will always have to be maintained. There won't be a significant change in the speed of execution between XAML and C# code, at the end its the runtime which is going to run both.

    I would advice programmers to stick to what they are doing and learn WPF, but don't start porting everything to WPF. Move the things to XAML which comes in way with designers or support team (like configuration).
  50. Murraysays:
    Pete

    It is good to read about WPF for once.

    The product is starting to feel dead and abandoned.

    This may not be the case, as you say. But if your team and Microsoft do not start communicating what you are doing with WPF the perception that it is a bad choice will not go away.

    You say you are working on the next version of WPF? well business want stability, how about a roadmap with dates, features,etc on it. That would go a long way to stopping the grumbling.

  51. Tazsays:
    @Dedrik

    Moved to Java....so now your dev roadmap is in Oracle's hands....out of the frying pan into the fire springs to mind.

    I think WPF has a long term future, learning XAML isn't a wasted effort, I wrote a slick digital signage player in WPF in 12 days that does TV, video etc, that wouldn't have been possible in winforms and woudln't have anywhere near the WPF players capabilities, lose loading of XAML templates etc. Debugging bindings is XAML's & WPF's weak point.

    3rd party suppliers like Telerik provide very good toolkits to compliment WPF for LOB applications, to say it's dead is plain silly but I can understand it, the LINQ / Entity framework shambles has made people distrust what microsoft tell them. Microsoft's commuication with it's customers has to improve.

    As far as I'm concerned, thats what Pete's trying to do here.

  52. Dedriksays:
    @ Taz

    Perhaps moving to java was a bad move… perhaps not. I certainly didn’t have a vote on the matter, I work for a large organization and our leadership decided that our new technology stack was going to be based on Java technologies and optional Adobe Flex for the frontend when HTML could not cut it. I didn’t like the idea but there was not much I could do about it. After playing around with Java for a while, I personally don’t see a problem with it at all.

    By the way, this is not about who is the meanest of them all (Microsoft or Oracle). This is about consistency.

    Java is well supported, many standalone organizations create products for Java and these standalone organizations don’t ditch their products left and right like Microsoft does. These products remain strong for many years.

    I mean, just look at Pete’s comments to get a clue of Microsoft way of thinking, he said: Are you really saying that providing a new UI platform every 10 years is too much churn? Really?”

    What kind of comment is that? We have millions of dollars invested on the technology and then you have someone from Microsoft asking if it’s “too much churn” to reinvest 50 million dollars worth of development every 10 years. What about smaller companies that invest half a million dollars on development, that’s a lot of money for a small company to reinvest that often but its ok to because Microsoft thinks 10 years is not too much churn.

    And of course 10 years is not a true measure, what about classic vb projects that where finished right when classic vb was canceled (no 10 year churn here)? And then Winforms that didn’t even last 5 years and wpf that was basically dead on arrival.

    If you ask me, Microsoft can drop most of their technologies every 5 minutes if they want, but they have to pick a *BUSINESS* focused technologies that they should keep supporting and enhance for the next 50 years, just look at mainframe… they are ugly and difficult to work but they are still there supporting the *BUSINESS*.
  53. Petesays:
    @Dedrik

    When you speak about java, the appropriate comparison is the .NET framework. The framework has been out for a decade or so, and as far as I know, has quite a long future in front of it.

    Most platforms have cycled their UI stack a few times. I recall that even in the Java space, there have been several UI technologies. Java even tried to do JavaFX (a java-like flash/silverlight-like technology), but as far as I know, that never took off.

    Web developers deal with change on an even more frequent basis. Plus, they have all the complexities of cross-browser app development.

    Even the C++ space has seen a fair number of UX/.UI changes over the years. Though, certainly not as many as others, and not as much as during the early days of C++ on DOS/Windows.

    I don't think "one UX model that will last 50 years" is realistic. 50 years ago, we had teletypes, punch card readers etc. I'd have a hard time using one of those on the airplane like I am my laptop right now :)

    At Microsoft, we often hear "you don't innovate fast enough". I think we actually do innovate fairly quickly, but we need to keep you guys in mind when we do it. If we didn't, we'd have massive breaking changes in every release. What I'm hearing here, is we innovate too quickly even at our current pace. I'm not sure what would be an acceptable compromise. What do you think? What approach would work for you starting today with the current codebase?

    Don't take this as me not understanding the issue. I've only been at MS for 1.5 years, so I'm still fresh enough to remember what it's like to build real apps for a living. I hate to see UI technologies wax and wane as well. (PS, still *tons* of windows forms apps being built new every day), but I also know it's the reality of what it takes to enable us to enable you to program and design for new platforms.

    Pete
  54. Tazsays:
    @Dedrik

    How can you say WPF was Dead On Arrival ? if it's dead they wouldn't have written the interface layer of VS2010 in WPF. I use it every day to write WPF apps and it is a little clunky, it's something they'll need to improve. I'll be interested to see how SP1 enchances VS2010, the fact that they've adopted it in their main design tool forces them to improve WPF's speed so thats a positive thing.

    I'm also writing a small app in VS2008 and LINQ and forms look old and clunky now to be honest, WPF does move the game on, it opens a huge can of worms of having UI designers and coders etc, most organisations don't think that way though so you have to have a little design talent as well as development to make WPF star but I think it's great and trust me I can be pretty cynical when it comes to MS.

    My biggest bug bear is the whole MVVM thing, 20 different standards out there and no decent samples of implementing a real world MVVM app, also trying to push developers away from stored procedures is a mistake, look at the forth coming Entity Framework 4.1, still no decent SP support after developers screaming for it, we've had to discount entity framework for a major app re-write on the strength of that, also no caching....why, they are fairly selective in what feedback they listen to from their customers....the ADO team anyway.

    I hear what you say about having no choice in the Java thing but I'd be curious to know if the choice was yours which way would you go ?

    The good thing about C#/VB/WPF etc is there is a large and generally very helpful user base out there, we're honestly quite frustrated that there doesn't seem to be a clear road mapped ahead by MS but at least the tools are there (if you ignore entity framework unless your starting something from scratch) to produce some really neat solutions. Good luck with the Java stuff though.

    Taz.
  55. colbatssays:
    Dear Pete Brown, I think you should look inside mirosoft and fix your problems,like too much focus on silverlight(check the flash debacle),plugins are dead !!!!. You should make WPF a first class citizen of your Windows platform and then please come back and present the future to us poor zombie developers.It seems you do not have enough people hired or no proper teams to closely work with OS team.Shame on you guys.
  56. Charliesays:
    Pete,
    My personal opinion is that WPF has a learning curve that is way too steep and that Microsoft doesn't do enough to encourage us to climb it.
    I started WPF about a year ago. I studied and became MCTS in WPF and still I feel like a total newbie. I spend my days searching the web for code to do the simplest things and am constantly asking myself should I be using a different approach? Should I be thinking differently?
    I totally agree with Thomas that we need real guidance from Microsoft, not fluff. I bought into the fluff when I began WPF. I decided it was worth the effort because once I'd be out of the woods I'd be able to develop desktop apps, silverlight web-apps, cross-platform with one set of skills and tools. Today, I feel like it would be easier for me to learn PHP than move to Silverlight! .
    Personally, what I would really like to see is more convergence, more simplification and improvement of the technologies that we use everyday rather than layers upon layers of technologies. Obj-C and MVC have been around since the early 80s and Apple developers are building pretty impressive and high-performance apps with them.
    Shouldn't programming be getting easier?
    Cheers,
    Charlie
  57. Dedriksays:
    @Pete asked: What do you think? What approach would work for you starting today with the current codebase?

    Like most people, I also don’t have an answer to the question however I do have a great suggestion for you.

    Microsoft should stop rearing its ugly head on open source project efforts. For example, there was no real need for Microsoft to create its own unit test framework when nUnits and others where already available and doing a great job. There was no need for Microsoft to create Entity Framework when nHinbernate was out and doing well. There was no point on Microsoft creating the T4 templates when there were other code generation tools available and doing an awesome job etc, etc, etc, you get the point.

    It is at the high of Microsoft arrogance to think that Microsoft can do a better than these open source efforts because guess what? Microsoft can’t. The guys working on these open source efforts are the real thing, they are passionate about what they do while Microsoft people do it for a pay check. Instead of taken on these groups Microsoft should embrace them and support them, become part of the open source team, uses this tools inside Microsoft. But alas, instead Microsoft basically kills their spirit by creating unwelcomed and unfair completion… You know, is not like people don’t realize that Microsoft technologies are pretty much a rip-off of these open source efforts to begin with, I mean come on, big whoop.

    This is what makes Java so strong, its ecosystem is amazing. In the java world, is not about one company trying to control everything and then failing miserably on its attempt (aka Microsoft). Microsoft has nothing on Java on that space… just my 2 cents.
  58. Dedriksays:
    *To add to my previous post. The upside about Microsoft supporting the open source projects is that there are waaaaaaaaaaay better chances that these open source project will remain relevant for waaaaaaaaay much longer than Microsoft can or is willing to support their own in-house solution. This will avoid the main problem with Microsoft (at least in my opinion) which is dropping technologies left and right every 6 months.
  59. Dedriksays:
    @Tas.

    WPF is dead and so is Silverlight. Microsoft new flavor of the month is now some HTML5 based UX framework you just don’t know it yet. Pay attention to the subtle hints they are giving out regarding how is their goal to make HTML apps work and feel like native apps. I bet you money that is where they are going.

    They will move on to this new UX platform and you are going to have to redo everything all over again for the 10th time, but that is ok, as long as Microsoft passes the cost to you it’s no problem to them. Let’s see how their newest experiment ends up works out ….. but boy, are WPF / Silverlight developers going to be pissed when they announce it, that day will mark the official death for wpf / sl… this is just my theory of course but I am 99.999999% sure I am right about this.

    As to you question regarding of what technology I would favor (.Net or Java). Had you ask me this question 6 months ago I would have told you .Net without hesitation, in fact, I almost turn in my resignation to my current employer because I didn’t want to move into the Java world. I was of the opinion that java sucked big time.

    Things are different now, Java / Eclipse may not be the greatest but if you hang in there you get to find out that they are not bad at all. Quite honestly, I am actually starting to like it. So to answer your question: If I had to do programming for Windows I would choose .Net, but if I had to do an HTML I would chose Java without a shadow of a doubt. Microsoft is not worth the risk for me anymore, I am tired of being their guinea pig.
  60. Petesays:
    @dedrik

    I don't buy it. For one, Java is not that strong these days, and for sure has been crippled by several companies trying to "own" it.

    I also don't believe Microsoft should stay out of open source. For years, people gave us a hard time because we didn't embrace OSS. Now, we ship things done by other people (jQuery for some time, and more announced yesterday), and create our own when we feel we can do better. We contribute to active projects (again jQuery is a fine example) as well. We don't always create better than what is out there, but that's ok. The community will use what is best for them.

    The OSS folks shouldn't be demoralized by someone else creating something similar. That's competition. And we lose the battles too.

    It doesn't sound like you know a lot about what we actually do, in truth.

    Pete
  61. Sebastiansays:
    Well, while I generally do not agree with Dedrik either, I think he has a point in that it is currently very unclear how Microsoft envisions the future co-existence of plugin/runtime-based solutions and HTML-based solutions (the HTML5 buzz at MIX was pretty strong). And more specifically, my understanding of Micrisoft's vision for the future of Silverlight and WPF is very unclear, especially for the latter.
    I wouldn't say that MIX should have been full of WPF sessions, but a single session about the general development roadmap for WPF would have been quite nice, especially if it had included the announcement of a CTP/beta of WPF v.next.

    S.
  62. Alexsays:
    Hi guys,

    I'm doing my research for the next project. Technologies and the industry standard overlap has really caused a lots of confusion in the community and quite a mass of speculations.

    If understand correctly (need to hear your opinion), XAML tags set took care a big portion of the development concerned with visualization and binding. Now we can be "happy campers" and do the fun stuff... Well, again, until it reaches perfection and becomes a part of another library which can either be used through a declarative language (XAML, HTML) or somehow else.

    Now, to be as close as possible to a "cross-platform and cross-browser", what would be a better choice of the two for building UI and binding XML data :
    1. XML + XSLT?
    2. XML+CS+XAML?
    NOTE: There is no need in being an "eye" candy

    We really liked the idea of Silverlight as the tool, but with the buzz about HTML5 implementation the whole XAML idea does not feel good.

    Thanks!
  63. Maraissays:
    Pete,

    It has been a couple of months since you posted this article... any new news on what is happening with WPF? We got past the SP1 stage of VS2010 and nothing happened. SL5 has gone officially beta last week but no word on WPF?

  64. Tazsays:
    @Dedrik,

    Sorry mate but your comments aren't credible now, you sound like you’re on an anti MS crusade like some Linux people I've dealt with in the past when asking some basic questions. Strangely enough we have one Java bloke in the IT dept and his mantra is scarily similar ;-)

    We're not going to re-write our LOB app in HTML5 just because it's the latest flavour, that’s not the way the world works, we just want a clearer statement of MS's long term strategy with WPF. To say it's dead is hysterical, as long as it has a 10 year then I guess you can't look forward much further, something else will undoubtedly replace HTML5 as hardware and the web evolves . It's too soon to look at HTML for a large LOB app.

    I do take your point about Entity Framework which has serious deficiencies but we choose LLBLGen and we're no longer tied to one data access framework so at least the consumer has a decent choice these days.

  65. Tazsays:
    @Dedrik,

    Oh and I do pay attention, I've been writing apps for 15 years (I won an award for one of them) so I'd like to think I can make my own conclusions based on what limited information we all get from Microsoft.

    As for re-doing everything as you put it, that keeps people in work doesn't it ???
  66. Franksays:
    Microsoft needs to make a decision with their development tools. Nobody at our agency knows what to use. We hear the Windows Forms team has been disbanded and not to expect any new features, so that's out. We see lots of energy put towards Silverlight, but not so much towards WPF.

    I recommend that in the next version of .NET, remove Windows Forms support. That would at least send a clear signal that everybody should be doing XAML.

    If Silverlight can (eventually) do everything WPF can do, drop WPF. Why have both?

    Microsoft needs to quit stringing us along. It's very frustrating.
  67. SonnyMsays:
    Let's clear this up guys:

    Microsoft has NO strategy for the Desktop. I repeat - Microsoft has NO strategy for the Desktop. Is there anyone that doesn't understand that? If so please read it again.

    They are following Google and Apple into the "cloud" computing and mobile device market (where they should have been leading) and have neglected the desktop. Sure Windows 8 and Phone 8 are coming along - one is written in C++ and the other will be pushing HTML5. But there is NO help or guidance for desktop developers at all, so all of us trying to develop critical business solutions which must work on the desktop are struggling because we don't have the tools, technology or direction.

    I love .NET and C# is amazing, but MS have failed in an epic manner. And there is no point in anyone trying to jerk me or anyone else off unless you have hard evidence otherwise - because right now there is none. Zero.

    Back to trying to solve a bloody border problem with my WPF calendar... Grrr!!!!
  68. DementedDevilsays:
    Pete thanks for the post - it's always nice to hear what's going on.

    I never doubted the power of WPF and Silverlight - when I first saw XAML I thought "MS probably wanted to release this as the .NET UX instead of WinForms but WinForms was ready first and was a **much** easier concept for developers to migrate to from VB6/MFC/Win32"

    Suffice to say I think XAML will be supported for a long long time and with it WPF, Silverlight and Windows Phone too.

    I can understand why SL exists (the plugin is nice and small compared to the .NET4 client profile) and I even understand why SL is not available on so many other platforms (despite this being technically possible - it's probably business reasons getting in the way - SL apps sold on iTunes? iPhone apps sold via WinPhone store?? I think not... Android might make more sense but MS and Google are hardly best buddies...)

    I'm a happier developer these days for sure - life with C++ was a heady rollercoaster where one wrong move could bring down your app and the OS... Sure it is still possible to leak memory even with garbage collection but nowadays I can concentrate more on business logic and less on infrastructure than in the old C++ days...

    I write desktop WPF apps and internet facing SL apps - I don't write WinForms applications (if I can possibly help it) - I use MVVM unless I really am writing some simple PoC thing.

    Microsoft has always given us developers a myriad of frameworks to allow us to create our solutions - I certainly don't think one framework will ever fit every scenario and lets face it - as developers it is how we approach a problem choosing the right set of tools that makes us and our jobs so interesting - infact it is probably what keeps us in a job!

    If the landscape changes again in 5 years - big deal - personally I'm looking forward to it - so I say embrace WPF AND Silverlight - take a look at MVC Razor, try to learn F#, check out Script# and play with the C# Async CTP - the more tools you are aware of - the better chance you have of selecting the right one for your next job.
  69. Shimmysays:
    I am so upset to read Microsoft's comment here
    http://connect.microsoft.com/VisualStudio/feedback/details/621763/support-wcf-ria-service-and-mvvm-generators-for-wpf-projects-add-project-templates-for-it

    I asked for WCF RIA Service support and generation in WPF projects.
    This leaves WPF a lot behind Silverlight. I have to redocorate all my validation attribute and make a lot of work!

    This is very disapointing. So definitely, Microsoft is giving much more love for Silverlight.

  70. Milansays:
    WPF and it's subset Silverlight is one of the cleanest designed UI frameworks that ever existed on the face of earth. As a delivery of that design enormous capabilities are exposed.

    If Microsoft didn't start over and over again, evolving and picking up good bits and abandoned those that didn't have bright perspective, we would never have this level of abstraction to build upon.

    However, it's really amazing that even after more than 5 years since Avalon, developers are not educated enough to figure out where's the place of this technology stack and where it's not.

    On top of that, WPF requires understanding of certain concepts that it builds on and the other modern software development principles in general. Lacking understanding of those, it's easy to have the framework working against you.

    Saying all this, it's clear why developers end in discussions like the ones above i.e. either because Microsoft didn't educate them well enough or they don't understand that you cannot do software development for living without climbing from one learning curve to another one.

    Keep educating Pete...

    --- Milan
  71. ovabussays:
    @Milan: You totally miss the point...We do not need Microsoft to "start over and over again" every now and then, we need Microsoft to build a solid foundation for the forseeable years to come. We need Microsoft to give us ONE way to do the UI stuff and not 5 or 6.

    And most of all, we need Microsoft to stop creating confusion ("our strategy has shifted") about it's UI technologies, as simple as that.
  72. Sylvainsays:
    Well, i personally use WPF and HTML for my work. And it think what people miss here, is that each of those technologies are build to answer a range of differents scenario/problems.

    As exemple, trying to use HTML5 to mimic a desktop business application is possible, but will require much more time and more investements. Beside that HTML 5 is far from having all the animation, rendering power,and performance of WPF.

    Things are moving fast, and to be competitive require us to be flexible. And to be flexible for a developer is to be able to learn new technology quickly.

    Im not affraid at all about WPF futur , because its a great technology, the best i ever used to build nice powerfull user interface.

    Beside that its really really really fun to use WPF, once u understand it.
  73. Darrensays:
    The biggest issue with everyone is that they don't know what Microsoft's plans are so they don't know what platform to build on. It's not about the technology itself, so Pete as a techy your doing a good job at Microsoft. However the MS marketing team suck big style.

    Everyone know's the score; companies large and small all around the world don't know what Microsoft tech is worth investing in and the same goes for individuals (too many options and we have no idea what is around the corner). I guess all will be revealed (hopefully) in September but it's a poor show from Microsoft to leave everyone in a 'grey area'. To the customer it feels like MS has buried it's head in the sand and are keeping their mouths shut and this is obviously making a lot of people very nervous. A fair few have left to work with your competitors, which I think isn't helping - it's a big issue.

    It's encouraging that MS have built their own tools using WPF, which backs up the theory that the huge investment made by Microsoft is unlikely to be suddenly dropped considering WPF is pretty new (as with Silverlight).

    It all boils down to a solid statement about what technology MS is commited to for at least the next 5 years. As soon as we hear that everyone will have their heads down coding away, like what many are doing with Apple's xCod, Java, PHP, etc. People are working on these not neccessarily because they are the best, but because they know they have a solid future and they get the job done, so we're not saying the actual tech part is bad. It's about your communication...
  74. vinothsays:
    If developers dont learn WPF and get the skills , no one is going to use WPF even if Microsoft stands by WPF.
    WPF came out in 2006 ( if i remember correctly), its been 5 yrs and still its not main stream UI development technology for Windows. The core concepts of WPF may be really great engineering but its not solving the issues. I worked with Adobe Flex ( MXML) and i personally think MXML or XAML is a bad idea. Debugging MXML or XAML data binding is a mess and shifting between code and XML is not intuitive. I would rather create WPF totally out of code than use XAML.

    Windows developers dont like XML based UI. Shift to WPF from Winforms is too much , people would rather shift to HTML 5/SVG or C++.

    Most probably. Microsoft has to go back to enhancing Winforms or C++ will gain popularity again along with Direct3D/OpenGL UI libraries. (Take a look at Objective C / Open GL apps (not games) )
  75. Paulsays:
    vinoth, i suggest you take a deeper look at what WPF can do for you. I have been a programmer since i can think, wrote in all major languages and ventured into plenty UI approaches, including HTML/CSS/JS, Win32API, VB, MFC, WinForms, etc. Now the company i work for decided to go WPF. I totally did not like the decision because it seemed big and complicated but eventually i started to learn the MVVM pattern and it blew my mind how elegant it is after you get the hang of it. It takes away 90% of the work you traditionally have to do to represent your software's innards. You don't fill anymore, you don't set, you do not populate Lists, etc. You bind your UI component, which you design visually in Blend, to your class, put templates in between which conditionally shape and mold the data into form and that's that. Your Class changes, your UI reflects, your UI changes, your class reflects. And XAML ... it is the cleanest, richest markup i have ever encountered.

    I personally do not understand what's the big deal, JS is and always was a clumsy programming language. JQuery is actually really nice, i love it, but it's still an addition. Have you seen it's implementation? Fixing all the problems that each and every JS developer knows? If JQ were a language on its own, without the conditions, fixes and hacks to mold ugly JS into something fine, then you'd have a point.
    CSS was a good idea but still makes it practically impossible to simply swap themes because it is too much interwoven with the code. A designer *must* know how to code, and not only that, he must know a bazillion cross-browser exceptions and hacks to get his code going on all major browsers.
    HTML is a mere collection page-layout-blocks and simple controls. And it's not even very precise or elegant. Look at the ENORMOUS code to show something simple as this page right here, the cross-browser-hacks, the browser-conditions, the CSS/JS code that fill pages and pages (mabye even books), the HTML that is unreadable and sprinkled with JS here, CSS there, JQ hops in, fixed value HTML blocks, styled HTML blocks, the server backend, probably written in a slow script-language that doesn't know we're in the 21'st century, etc.

    Don't get me wrong, i had to code many Web-projects and i never complained (so much), but sometimes it just feels weird to see how much it's getting all hyped. It makes no sense. The practical clumsiness of it even made me loose my heart (a bit) for open-source implementations, to the point of wishing a bold company came along setting a fresh proprietary standard that actually works. WPF+XAML as the new all-around Web and Desktop standard, locally or distributed from server to client, cross-browser and cross-plattform capable, hardware rendered and driven by a fresh and elegant language like C# - that would be pretty cool actually. : P
  76. Burton Robertssays:
    Silverlight is caught in the middle between WinRT and WPF. The good news is that, theoretically, this should be good for WPF. Why build a cross-browser cross-platform app with Silverlight if it doesn't cross as many platforms and browsers as an HTML5 app? And if you're building an LOB apps, and the company has standardized on Windows, why not use WPF instead of SL? WPF is richer and more capable! Microsoft should start putting more resources into WPF rather than SL. Long live WPF!
  77. chucksays:
    Over the years, I have developed the same app for the same client through many MS technologies and WPF produces such a well-structured app with a fast development cycle. It would be a shame to see it not be under continuous improvement by MS.

    I also develop RIAs with javascript and JQuery and WCF and love those technologies but I cannot imagine doing my WPF app in HTML5. The highly interactive UI in WPF and TPL in .net would just be a mess in HTML5 and fighting my way out of the sandbox. But I bet in 1 year there will be MS extensions that let me do the same thing just as easy as a native Windows7 HTML5 app.

    Interesting how the V in MVC (or what have you) in a SOA is where all the dev time is spent. That is the thing that is getting recycled all the time. The backend (CRUD, calcs and rules) does not take that much time to develop and the code seems to be left untouched for years.

    I am guessing WPF will wither and be replaced by Yet-Another-MS-Technology – cobbled with their extensions.

    When all I really wanted was the best app dev platform to produce a native app for a platform I could expect the majority of my customers to have available at a reasonable price.

    Do not care if it can run in a browser, internet.

Comment on this Post

Remember me