tags:

views:

330

answers:

4

i've been learning wpf for about a week now.. and i have a basic question:

From a business view and development view (out of your experience).. what can and what cant be done with wpf(capabilities) ..

please try to be illustrative..

examples of undesired answers:
"Fully functioning stand alone applications with alot of animation and Glittering images"

A second question:
if i build a XBAP UI for my application, can i make the UI "not show" in a browser!

if u r going to answer from tutorials/websites/books.. please dont copy paste them directly, try to write it in your own words...

+1  A: 

You can in theory do anything in WPF what you want. Compare it with a WinForms application. Is there anything that you can't build with that? Not really. The same goes for WPF. It's just that WPF is better suited for some things, like animations, video, graphics, etcetera. As it is xaml based, it is also better suited for databinding against XML for example. See also this related question.

As for your second question, I'm not sure what you mean by that. Do you mean if you can show websites using WPF? Yes of course, just like WinForms.

Razzie
@razzie: thx for ur answer,i edited the 2nd question trying to make it clearer..and as i answered "Binary", i already know that i can do the same stuff with wpf as winforms (after all they r both still .Net) .. so unless i want to add alot of animation/video/graphics to my UI, winforms can do the job ?
Madi D.
yes of course you can stick with WinForms, especially if you do not need WPF's advanced media capabilities. However, if you want your app to *also* run in a browser, then go WPF.
Razzie
lol it is the opposite i want "not" to run in a browser.. in other words i wanna use the webnavgiation View (next and back pages) without the "xbap" page needing a browser to show it..
Madi D.
+1  A: 

You can host anything built to the Win32 GDI/USER API (WinForms, ActiveX controls) inside a WPF application, so even if you hit some limitation with an app that is mostly WPF, you can always host some old controls inside it.

And since 3.5 SP1 you can even host animated DirectX graphics pretty seamlessly as well (although WPF's 3D support provides its own much simpler ways of achieving the most commonly done things).

As for comparison, the major advantage of WPF over WinForms is the way it keeps closely to its own component-based model, so a very large proportion of controls are able to act as containers for other controls. Want to put a combo box in a menu item? Not sure why you would, but you can. More usefully, you can put a button in a list box (or tree view). These kinds of thing are not possible unless you implement every standard control from the ground up (which is what WPF does).

The disadvantages are probably temporary: it can be a little unstable on some machines (the rendering code seems vunerable to display driver incompatibility) but this gets better with each service pack. Also the text rendering has been heavily criticised - it goes a bit further with ClearType anti-aliasing than Windows normally does, so some people complain that it looks blurry.

(The reason these are likely to be temporary issues is that Microsoft's Visual Studio 2010 is adopting WPF. So they are now "eating their own dogfood".)

Daniel Earwicker
thx alot for the answer.. you've put the stuff i know..in a much simpler nicer way.. now i can think more clearly about considering wpf ..
Madi D.
A: 

Oh, in WPF some things are still not implemented. DataGridViews as popular example are only in the codeplex preview. YOu have alot of things like theExpander which work in a differnet way, and you can have a lot of problems with autosized content.

+1  A: 

You can pretty much do anything in WPF that you'd need from a GUI app. But that's not the real benefit, IMHO.

One of the real benefits of WPF is development speed and simplicity, once you get past the learning curve (and there is a learning curve!)

The other major benefit, and probably the biggest one, is that it allows designers to work on the presentation, do lots of interactive things, all using a designer-friendly (friendlier, anyway) tool and not having to submit requests to the coders. Just by changing the .xaml, a designer can make an application look almost completely different, and add all kinds of behaviors (panels disappearing, expanding, all kinds of neat stuff). Without changing a line of code.

kyoryu
+1 for illustration and useful info :)
Madi D.