I'm not familiar with WPF but I've seen things I like about it for web development. I wonder which advantages has developing a WPFbrowser application over asp.net (webforms/MVC) and viceversa. are there things you can do or use in asp.net you can't do in a WPFbroser application?
views:
45answers:
3I would say the main difference is with ASP.net there are no addons for the client side to download from. Which can be considered an upside especially when dealing with large companies who restrict their users. Meaning users can forgo the messy work in getting their IT departments to add a plugin such as Silverlight.
The advantage that WPF has, is that it does have a robust addon for client side. You can do a lot more with a Silverlight Application than that of an ASP.net.
The difference is fundamental.
ASP.NET is pure web, with a Web Server where you have to host your code and the browser client where your html code generated by the server will work.
In case of WPF, is a stand alone binary that will be downloaded from the server and it will work with a plugin on some browser and it will run the application.
ASP.NET will do whatever a web application can do and on different browser / OS.
WPF will do almost anything you can do with a desktop (expect some limitation ex: printing that you can manage to activated if the user accept it) and it will work only in Windows that have the appropriate .Net framework installed in it.
If you're doing web development you'll almost certainly be using Silverlight rather than WPF.
WPF browser applications (XBAPs) are just ClickOnce WPF applications that are hosted in the IE shell and use forward and back page navigation. They are little used and at this point fill such a small gap between a standard WPF app and Silverlight that you may never encounter one.
Silverlight is not WPF, although they use the same general development methods and Silverlight has been written to use APIs that mirror WPF in many cases so that code can often actually be moved back and forth between them.
WPF is part of the standard .NET Framework (3+) and is a Windows only client technology that serves as a replacement for WinForms and some native Win32 applications (i.e. parts of Visual Studio 2010). Silverlight is a RIA (Rich Internet Application) runtime that is hosted in a cross-platform browser plug-in similar to Flash. It uses its own version of the .NET Framework that shares APIs but not actual libraries with the full version.
In addition to the considerations mentioned in the other answers, since Silverlight runs in the browser, you can actually use it as part of an ASP.NET page and mix the two technologies.