Learning WPF GUI design [duplicate] - wpf

This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
What WPF books would you recommend?
GUI's written using WPF seem to be closer to a Web 2.0 feel than older Winforms development has been; do you know of any good quality references online or books which give a general overview of how to design nice WPF applications?
I saw this StackOverflow question where some GUI design books are mentioned, but am interested in information specifically for WPF.
Is WPF & SilverLight Design worth learning
Thanks!

I found WPF Unleashed to be very UI-centric and WPF Control Development to be like the next step (very advanced GUI stuff). The huge WPF book on Apress is great for in-depth coverage on the topic, but the red books on Sams would probably be better for what you're looking to get out of them.
WPF Unleashed on Amazon
WPF Control Development Unleashed on Amazon

This article gives a good beginning intro. Even though it is for the 3.0 framework, the basics are all still valid.
This one, while not being a very good comprehensive guide, gives some good information on the different WPF controls.
There are many, many resources out there, but your best bet is still probably going to be at MSDN. Now that VS2010 and the .NET framework have been released, MSDN has tons of tutorials and how-to videos on all the new stuff, including WPF.

Related

Looking for source codes of silverlight application that uses PRISM framework

I'm new in silverlight and prism framework and I want to explore some working silverlight applications that are based on prism.
As well as the included samples, there's an interesting set of articles here, complete with source code.
There's also some source at Elegant Code which I found useful, as well as a whole list of examples and tutorials at Patterns and Practices Guidance.
Also be aware that there are many alternatives to Prisim, and you could always write your own simple MVVM architecture if you were interested in learning more about it. For more information, Jeremy Likeness has a great article over at code project about the architecture, entitled MVVM Explained. I found this to be hugely helpful when developing my first Silverlight MVVM application.
Check out Prism hands-on labs and quickstarts (make sure to scroll to the bottom of the page):
Also, you may find this episode on Understanding the Value of Prism useful.

What good resources are available for an experienced ASP.NET developer to learn Windows Forms/WPF programming?

I am a ten-year veteran of ASP.NET and C# development and I'm moving into a position where I will be doing much more Windows Forms and WPF development. I have minimal experience with these technologies.
Can you recommend any good books or resources that will help me ramp up on these technologies quickly? I'd like to find resources that skip over basic .NET programming topics and get right to the heart of good application architecture, design and implementation.
There are many resources on windowsclient.net. This is the official, Microsoft run Windows Forms and WPF site.
That being said, I'd recommend only trying to get a very basic idea of Windows Forms, and instead, focus on learning WPF. This will help for Silverlight development, as well. WPF is the newer technology, and really is a better path going forward for future proofing yourself. By learning it first, you won't have to unlearn many bad habits you'll pick up with Windows Forms development.
Take a look at MEF and Prism if you are looking for good WPF application design. As for books - I'd recommend Apress' Pro WPF in C# 2008 (Don't know when it will be updated for 4.0, but relative few new things to learn here (mostly a few new controls and improvements in existing controls/syntax).
I really liked this video by Jason Dolinger on the MVVM pattern for WPF. It is a really great into what you can do with WPF, how data binding works, and helps get you thinking in the right direction.
http://blog.lab49.com/archives/2650

Learning WPF and MVVM - best approach for learning from scratch [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I've got about three years c# experience. I'd like to learn some WPF and the MVVM pattern.
There are a lot of links to articles on this site but I'm getting a little overwhelmed.
Would a sensible approach for a begginer to be forget mvvm for a while and just quickly learn a bit a of WPF, then come back to MVVM?
I had a leaf through Application=Code+Markup - Charles Petzold in work today, it doesn't seem to mention MVVM (at least not in the index). I was pretty surprised by this as I thought MVVM was supposed to be the "lingua franca" of WPF?
Also I've just started working at a new company and they are using MVVM with WinForms, has anyone come across this before?
Can anyone recommend a book that will teach me both WPF and MVVM?
It depends on your experience.
I personally felt that this was a lacking area in MVVM discussions, which was what led me to write my series on MVVM and WPF from a Windows Forms developer perspective.
I would not try to learn WPF without learning MVVM. You'll end up trying to "unlearn" many aspects, as WPF really doesn't make sense, completely, until you understand the separation of presentation and logic that's pervasive throughout the architecture. MVVM is really just extending this same separation into the application space.
As for "MVVM in Windows Forms" - a lot of people try to do this, but it's not really MVVM. In order to do "MVVM" you need access to a richer form of data binding than Windows Forms provides. "MVVM in Windows Forms" is really, typically, just Model-View-Presenter with a different name (riding the MVVM bandwagon, I'd guess), but not really the same as MVVM in WPF.
Jason Dolinger has an excellent video on the subject. It steps you through the process moving from using code behind files to a full MVVM pattern including Dependency Injection and Testing.
Bill Steele did a 16 part "Soup-to-Nuts" webcast series on WPF. The links on the msevents site are broken. Here is a Google search to find them. This will help with the WPF learning curve. And he does NOT use any MV* patterns in his examples.
EDIT: The MSEvents links are working now, I am leaving the Google search as a backup.
Josh Smith also has an excellent article WPF Apps With The Model-View-ViewModel Design Pattern on MSDN.
Herding Code:
Presentation Patterns with Jeremy Miller, Ward Bell, Rob Eisenberg and Glenn Block
Part 1
Part 2
MIX10:
Laurent Bugnion Understanding the
Model-View-ViewModel Pattern
Rob Eisenberg Build Your Own MVVM Framework
And of course Reed Copsey's MVVM articles are worth a read as well.
I was told a few times that my MIX10 session was explaining the MVVM pattern well enough for beginners (even though some parts are actually quite advanced, so don't worry if you need to re-watch certain parts).
The session is at http://live.visitmix.com/MIX10/Sessions/EX14
Sorry for the self-promotion.
Cheers,
Laurent
There aren't many books covering MVVM but there is one : Advanced MVVM
But there are lots of online resources and this one is a must read : WPF Apps With The Model-View-ViewModel Design Pattern
After that I suggest looking into frameworks like
MVVM Light Toolkit
Caliburn
To do big things (like learning WPF + MVVM) it is better to break the task in smaller steps.
I think that the best approach in this situation is to start by learning the UI part of Wpf. Learn XAML syntax, the layout system, the available controls and forget about binding and how to deliver data to the controls.
Once you know the UI basics of Wpf then it is time to move to MVVM. Learn how bindings work and the MVVM pattern.
In this Web you can find a tutorial focusing on the hands on but with the theory available:
http://www.learnmvvm.com
Here is a tutorial for MVVM http://www.codeproject.com/Articles/819294/Learn-WPF-MVVM-step-by-step-Basics-to-Advance-Leve which goes from basic to the advance level in 5 steps. So its like graduating from a 3 layer to full MVVM.
Try this site. It collects the various resources at one place.
http://learnandmasterwpf.blogspot.com/
I just read this book. It is not really about learning WPF, but it should be useful once you already know a bit of WPF and want to progress your understanding of MVVM.
http://www.amazon.co.uk/Pro-WPF-Silverlight-MVVM-Model-View-ViewModel/dp/1430231629

WPF vs WinForms or Rich UI vs Stable Applications? What do you think about the future of the Windows Forms platform? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
WPF vs WinForms. What do you think about the future of the Windows Forms platform?
Count the # of times VS.NET 2008 crashes on you during a day of WPF UI development and how many times it crashes on you during winforms development. (here it's almost impossible to do serious wpf development, it crashes alot even after sp1). Winforms also has a lot of mature controls. Sure it doesn't have the fancy shiny 3d stuff of wpf, but for LoB apps, you don't need these anyway. Add to that the blurry text issue of wpf, and you'll understand that wpf has a long way to go before it's mature enough to replace winforms.
I am currently working with my third client to deploy develop a WPF application. The first was a LOB application for one of the 3 major shipping providers in the US, the other two for smaller companies.
I find Visual Studio to be perfectly stable, but I also never use the designer in Visual Studio. Expression Blend is perfectly stable, if not missing many features expected by designers.
WPF uptake is surely slower than language features introduced into Visual Studio & .Net, but it is far superior to WinForms in many ways and will be the future.
Go learn the WPF mindset and you'll never go back.
Windows forms is Honda.
WPF is Orange County Chopper.
It costs more to build a custom hand made chopper, it takes a lot more skill for a worker to do all those components by hand, it requires artistic sense, dedication and allot of work, compared to a worker in a Honda factory that only presses 3 buttons and a bike comes out.
The result?
An Orange County Chopper is unique, beautiful, stands out of the crowd, and makes it's owner prowd, but it is also harder to manufacture, costs more, requires more talent on the builders side and not everyone can do it.
And the point of this rant is?
Use WPF if you want to stand out of the crowd and your clients can afford it ;-)
My own opinion is that the adoption of WPF is pretty slow at the moment.
I have to agree with both posts above. Further, until Microsoft starts really pushing WPF in its own products, it's not really going to take off. In my mind, Microsoft dogfooding WPF is what will lead them to really address the issues that are holding it back: the crashes, text issues, and lack of pre-built controls.
I gave up on WPF because the visual editor in VStudio 2008 is so unbelievably slow!
I think WPF is firmly targeted at a group of developers who are not inclined to adopt it. I don't believe WPF was made for CRUD apps. CRUD is much harder in WPF than WinForms. I have seen examples of databinding which I just don't like. You have to run through an intermediate technology (like CSLA) to make it work well.
No, I think WPF was designed for developers who want to ship super slick, super fancy media IDEs to the public. Unfortunately, this is precisely the group which is most stuck on C/C++ and most unreceptive to managed code. For this reason, you have to question Microsoft's market-thinking.
On the other hand, Microsoft eats its own dog food, and new flavors of puppy chow are often a response to strong internal presures for better stuff. You can see why the Windows Media group and the Zune group both would like and want WPF.
I have worked with WPF on a couple of applications (one LOB, one controller UI) and I find it is very elegant and a productive tool to use. The databinding and nested control element container model are very powerful.
It is very different from Winforms and has a big learning curve. Once you have made some progress along that learning curve, though, you will never go back to WinForms - at this point when I think of using WinForms I think, "ugh!"
I guess you have to look at what WPF offers over Webforms. The only thing that comes to mind is more possibilities GUI wise, but that again make WPF a bit more complex. Most Webforms applications aren't made to look good, they are meant to perform certain operations in an easy and understanding way and there WPF doesn't really give you much over Webforms.
Maybe silverlight could give wpf a push. There are a lot of interesting possibilities with full screen siverlight apps(Photo apps, office apps, report apps...) and they would of course be easily ported to WPF apps.
I have used both WinForms and WPF and I will have to agree that WPF still needs a lot of work in order to become the UI platform of choice for LoB applications. Currently WPF is useful for creating UI with rich effects and animations, but even then there are problems.
I've seen MS's demo of a healthcare app using Silverlight and it is gorgeous. I would say that without a doubt it is the future as it builds upon the experiences of WinForm and restructures things to get around the problems of WinForm.
That said, at present WinForm is obviously more mature and probably has a shorter time to market due to the stability of the platform and wealth of resources, tools and knowledge.
I would expect that WinForm apps will slowly peter out within another decade but for now it is still a very viable platform.
Although the learning curve for WPF is a bit long I think people have started to take it under serious consideration for building new applications. But still we need a serious motivation for migrating from Winforms to WPF.

What WPF books would you recommend? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
Locked. This question and its answers are locked because the question is off-topic but has historical significance. It is not currently accepting new answers or interactions.
Well, i've got a nice WPF book its called Sams Windows Presentation Foundation Unleashed.
I really like to read and learn with it. Are there any other WPF books you could recommend?
I've found the following books very useful:
Windows Presentation Foundation Unleashed - Adam Nathan
You mention you already have this book, however I wanted to give my opinion on it. It is a great book for the newcomer - it is printed in full color which is a great help for visualizing both xaml and concepts for WPF.
Essential Windows Presentation Foundation - Chris Anderson
This is also another great book for the newcomer. While it is not printed in color, it does give a great insight into how WPF works.
Pro WPF in C# 2008 - Matthew Macdonald
This is a great reference book - one that sits on my desk and is constantly referred too. However, I didn't feel is was as newbie friendly as the other two books above. This is the most recently released book (at the time of this posting), and has been updated for VS2008. This is useful, as there are some changes with the versions of WPF. I believe there is a VB.NET version available.
Programming WPF - Chris Sells & Ian Griffiths
Another great book - I wish this was available when I was first learning the framework.
Application = Code + Markup - Charles Petzold
This was the very first WPF I purchased. It is not very newbie friendly, and I wouldn't recommend it for a first-time-wpf'er. The fact that Xaml is not introduced until page 457 makes learning the technology for the real world very difficult. That said, this book is invaluable if you really want to understand how things work at a very deep level (which is also important to get the most of the framework.
The only book I would totally avoid is:
Professional WPF Programming - Chris Andrade et al.
While the content was Ok in this book, I just found the other books to be much clearer and delve to a much deeper level.
Hope this helps! WPF has a steep learning curve, but once you "get it", UI programming can actually become "fun"!
Sams Teach Yourself WPF in 24 Hours.
I'm one of the authors, so my opinion is biased.
Our book is structured around building four applications. It's not as in-depth as Nathan's or Petzold's books. Its intent is not to be exhaustive (or a reference), rather it is a means to coming up to speed quickly on WPF. Likewise, to provide a foundation so that you won't feel overwhelmed when you encounter some of the various nooks and crannies in the technology.
WPF in Action with Visual Studio 2008
It is in print now.
Adam's book is fantastic - http://blogs.msdn.com/adam_nathan/archive/2006/05/17/599301.aspx
Also Petzold's is good although a little chewey to get through :-) http://www.charlespetzold.com/wpf/
MCTS Self-Paced Training Kit - Microsoft .NET 3.5 Windows Presentation Foundation (70-502)
I personally find that I become much more motivated to read and learn about a topic if the learning process culminates with a Microsoft Certification. If you're anything like me, you may find it more rewarding to dive into this certification study guide that just came out a week or two ago.
A new book just came out by notable WPF expert, Pavan Podila (with a little help from Kevin Hoffman). It's all about building controls in WPF and is aptly called:
WPF Control Development Unleashed
If you're going to be building visuals, elements, or controls in WPF, you will want this book on your shelf. Getting to the point where you understand enough of the WPF API and concepts to write a decent control, takes enough time ... this book will ease your journey!
I am with KiwiB* awesome book. Although you need to now .net to get some of the examples, as they miss some of the using statements for the code examples.
I'm currently starting in on "Pro WPF with VB 2008: Windows Presentation Foundation with .NET 3.5 (Paperback)" and so far am pretty happy with it. Good for us VB'ers... :)
Yes, I highly recommend this one

Resources