Sdílet prostřednictvím


ASP.NET, Atlas, Windows Forms and WPF

One of the challenges of trying to write a blog like this is getting the level right. I'm conscious that some of my readers are expert "Avalonians" who have been working with the technology since PDC 2003, whilst others are just coming across this technology for the first time or starting out. I try to post things that are interesting at several levels at once, or at least make sure that there's something for everyone. Anyway, this is an extended preamble into a number of positioning questions I'm frequently asked. I figure that it would be somewhat more efficient for me to handle them here on the blog so I can refer others back to them, rather than writing the same reply via email once a week!

How do Windows Presentation Foundation, XAML and ASP.NET fit together? I've heard you can build web applications using XAML - does that mean that ASP.NET is dead?
Windows Presentation Foundation uses XAML for constructing user interfaces, certainly. And you can use WPF to build applications that run in a standalone window or in-browser, that's true. But both classes of applications are smart client applications, that is to say that they require the WinFX Runtime to execute. The browser application model in WPF allows for really rich, visually immersive applications to be deployed via the web in a secure manner. However, you're not running HTML when you run a XAML Browser Application (XBAP) - instead, you're simply loading a compiled application within the confines of a browser. ASP.NET is very much alive - it's our server platform for building HTML applications.

OK then, so I've seen comments about "Atlas forever changing the way web apps are implemented", how does Atlas fit into the whole WinFX picture?
Atlas is an extension to ASP.NET that makes it simpler to build AJAX applications. It enables web applications to become more dynamic - loading data without requiring a complete page refresh, for instance. We'll ship Atlas as part of "Orcas", the next release of Visual Studio. Atlas is a great way to add greater interactivity to a web application, but it doesn't approach the richness of WPF. For example, it doesn't include support for 3D, animation, or any of the other deep services in WPF - at the end of the day, the browser is still rendering DHTML scripted with JavaScript.

Right, I get it. So WPF is the new rich client technology for building web and standalone applications in WinFX. Where does that leave DirectX and Windows Forms, then?
Well both technologies are alive and healthy. In fact, Windows Presentation Foundation does its rendering via DirectX, so that's not going anywhere. The truth is that since WPF provides an abstraction layer over the underlying technology, DirectX is still the best choice for the highest-intensity 3D applications. For example, I don't think we're going to see games like Far Cry written using WPF any time soon. In applications where the highest priority is 3D performance and coding to the metal is the order of the day, then DirectX is the best choice. Where you're prepared to sacrifice a little performance for developer productivity and great integration across 2D, 3D, text, animation and media then WPF is the perfect tool.

As far as Windows Forms goes, the current release as part of Visual Studio 2005 demonstrates a level of maturity and strength that is enviable. It's the culmination of the last twenty years of development based on the GDI/GDI32/GDI+ platform. It'll be around and supported for many years to come, there's a great ecosystem of controls and plenty of trained developers. WPF sets off in a new direction, building on a new architecture that we hope will last us as long as the GDI world did. The potential with this platform is to build applications that would be completely impossible in Windows Forms, setting a new bar for usability and user experience. We haven't yet released our first version, so there are inevitably a few minor gaps and limitations, but for new applications this is a fantastic emerging platform to build on for longevity. By the way, if you've already built an application with Windows Forms, it's not an either/or choice - we have good interop support and you can embed a Windows Forms control into a WPF application or vice versa. Some early adopters have dipped their toes into the water by building a new WPF visualization or component for their existing application using the interop layer.

Last question. Windows Forms, ASP.NET/Atlas, DirectX, WPF, Win32 - that's five UI technologies to choose between. How do I decide?
Really the variety of choice isn't such a bad thing - it enables you to pick the best technology for the job rather than having to pick a lowest common denominator that tries to serve all masters and ends up serving none.

  • Building a forms-based application and looking for a mature technology to use with good tools and component support? Check out Windows Forms - it's got everything you'll need to turn out a well-designed, service-orientated client application.
  • Is platform ubiquity or wireless mobile device support the high order bit? ASP.NET with or without the Atlas extensions is a good technology to choose. (Don't forget about the .NET Compact Framework for rich mobile devices, of course.)
  • Want to build a first-person shooter game, a CAD/CAM workstation application or something similar where polygon count is the major technical requirement? DirectX is a natural choice - don't forget that the .NET managed APIs for DirectX are maturing rapidly and starting to be worthy of serious consideration.
  • Looking for complex data visualization, superb text flow content rendering or dynamic interactive experiences? WPF should probably be your top choice. I'll be posting in future entries about a few sweet spots that early adopter customers have been exploiting to great business gain.
  • Lastly, don't let all this talk of managed code convince you that Win32 is anything other than a vibrant general-purpose way to build applications. There are thousands of new API functions in Windows Vista for Win32 developers to do everything from integrating with the Aero Glass theme to implementing live preview icons and ink-enabled applications. Don't write off Win32, or let others convince you that it's no longer core to Microsoft. It's the platform of choice for tens of thousands of applications. Long may it continue!

Comments

  • Anonymous
    February 24, 2006
    There are more choices: Infopath forms (and with Infopath 2007) you will be able to host those in your own apps, which might be very interesting. And then there is the mysterious WPF/E. I guess we have to wait until MIX06 to learn what that really is...

  • Anonymous
    February 24, 2006
    PingBack from http://techgrrl.wordpress.com/2006/02/24/dont-discount-the-good-old-standbys/

  • Anonymous
    February 24, 2006
    From a technologist perspective I certainly agree, the challenge is convincing an organisation to invest in the right technology for the application versus the Web based application is good enough approach, and others such as that is all our developers know, deployment is hard, that will cost too much. They seem to forget the poor users, and end up providing them with a less than optimal solution. We need a better means to sell the technologies and benefits at the senior management / CIO level - thoughts?

  • Anonymous
    February 27, 2006
    Are you unsure of what the right presentation layer technology is for your applications?  Tim Sneath...

  • Anonymous
    March 01, 2006
    There are so many choices for your presentation layer. 
    Windows Forms is mature, reliable, tried...

  • Anonymous
    March 03, 2006
    Tim Sneath has a great post that clearly articulates the choices available when designing user...

  • Anonymous
    March 04, 2006
    Hi Tim, great post on describing presentation layer technologies.  Makes sense to me as a long time MS developer.

    However, the issue I have is the fact that there are 5 (actually 7 if you count SharePoint Designer and InfoPath) technologies provided by one vendor (i.e. Microsoft) to develop user interfaces.  Worse yet, for each technology are multiple tools.  Even XAML for WPF has Cider and Expression Interactive Designer, which are two totally different tools, yet produce the same output.

    With only so many hours in the day, it makes it really difficult for developers that not only have to develop user interfaces, but business logic, workflow, web services and data access to learn any of these technologies in any depth to become real proficient at it.  It took me 4 years and 25 projects later (in a professional services setting) to become proficient at BizTalk Server (all 4 versions, 5 if you count the jumpstart toolkit).

    I am hoping one day that Microsoft and other vendors start consolidating their technologies so there is one user interface technology to learn, then maybe I will have a chance at becoming proficient at it :-)

    Cheers,

    Mitch

  • Anonymous
    March 04, 2006
    You wrote that WPF enables: "complex data visualization, superb text flow content rendering or dynamic interactive experiences".

    I have a personal project that ideally will exploit all three of the above in equal measure. I look forward to reading about the early adopter customers you alluded to.

    Thanks,
    Evan

  • Anonymous
    March 05, 2006
    Hi Tim,
    Thats very informative blog!!

    I need information about a couple of features in WPF. Do let me know if you have come across such scenario...

    Could you please let me know how can I implement
    1. Aero Glass feature for my wndows forms.
    2. Transperent look of drop down list in address bar of IE in vista in my windows form.
    3. TreeView control in Vista on to windows forms.

    Thanks in advance...

  • Anonymous
    March 07, 2006
    Hi,
    I'm interested in use of Atlas in ASP.NET development for commercial use. You said:We'll ship Atlas as part of "Orcas", the next release of Visual Studio. Maybe it is secret or not clear now, but when will be usable ATLAS for commercial use? At time of release of ORCA, or earlier?
    Thanx.

  • Anonymous
    March 09, 2006
    Just for clarification.  My understanding is that Atlas will be made available (soon) as an add-in to Visual Studio 2005.  With the "Orcas" release of Visual Studio (i.e. VS2007) it will be part of the standard install.

  • Anonymous
    March 11, 2006
    What’s of interest to Canadian Developers? That’s the question I’m always contemplating. I can’t say...

  • Anonymous
    March 14, 2006
    Simon and Tomas, we'll announce more about Atlas at the mix06 conference next week in Las Vegas - check http://asp.net for updates.

    Crish, that's a great set of questions. I'm currently working on a post covering the first of those questions at least, and we're working in general on a whole set of content topics on this area for the SDK. Stand by...

  • Anonymous
    March 20, 2006
    Qu’est-ce qui intéresse les développeurs canadiens? C’est la question que je me pose toujours. Je ne...

  • Anonymous
    March 23, 2006
    The comment has been removed

  • Anonymous
    March 26, 2006
    When will the final WinFX bits be available? 
    WinFX is included as part of the Windows Vista (the...

  • Anonymous
    April 06, 2006
    Will VS2007 still on .NET 2.0?

  • Anonymous
    April 12, 2006
    I have been playing with WPF for quite some while now and have been involved with several applications...

  • Anonymous
    April 24, 2006
    Will the Expressions Web Designer allow/ use WebDAV for publishing or will it require sharepoint or Front Page Server Extensions? We're looking to replace Front Page at work and Expressions Web Designer is one we're looking at possibly going to but we use WebDAV almost exclusively to work with files on the web server.

  • Anonymous
    September 12, 2006
    Jeg bliver tit spurgt om hvordan man vælger den rette teknolgi til sin klient applikation. Hvor skal...

  • Anonymous
    April 12, 2007
    WPF(/E) Part 4 – When to use WPF and WPF/E Borrowing from Tim Sneath’s...

  • Anonymous
    January 21, 2009
    PingBack from http://www.keyongtech.com/1062247-how-will-this-work-with