Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Should I use Prism for developing simple desktop applications? C#

I want to move on to WPF applications and convert my win-form apps(into WPF)

At the moment there is too much to learn about WPF in order to get nice application...

I found Prism : http://msdn.microsoft.com/en-us/library/gg406140.aspx

And I believe that this can be a shortcut that will allow me to get the cool abilities of WPF by simply adding my business logic.

  1. Do you recommend the Prism for a WPF beginner?
  2. Will it be possible to remove the Prism and build my own UI after I'll get more experienced with WPF?

    • If you have other ideas for creating desktop application that support multiple views and navigation - please let me know

Thanks.

like image 851
Asaf Avatar asked Apr 11 '11 16:04

Asaf


3 Answers

No, Prism is a big layer that sits on top of WPF (or Silverlight). It will not make learning WPF any easier or remove the need to learn how WPF works. Prism is a very powerful abstraction layer that can accelerate the creation/maintenance of large enterprise applications - but it has a steep learning curve beyond the learning curve of WPF. If you are just building a simple application, build it in straight WPF. The things you learn doing that will help you later build things with Prism. To really be effective with Prism, you need to be comfortable with a lot of the more complex aspects of WPF development such as bindings, XAML, and the MVVM design pattern. Start by learning those things in isolation on a small project and then you have a better shot at using Prism effectively on a larger future project.

like image 112
Robert Levy Avatar answered Nov 20 '22 20:11

Robert Levy


The answer which has been provided by Robert Levy is perfect, I would add something that when you move from Windows Forms to WPF try to avoid using same patterns which you can use in Windows Forms. Try to learn how tasks could be accomplished using WPF before starting implementation.

You can find here very good resource to learn MVVM pattern.

like image 39
Homam Avatar answered Nov 20 '22 19:11

Homam


As other answers have suggested, Prism won't shortcut WPF learning. Prism is more about partitioning applications into modules, and developing each module independently.

Here are my suggestions:

  • Don't try to learn all of WPF. You can write great line-of-business apps with relatively little WPF.

  • Learn the MVVM pattern. MVVM is widely used to separate UI concerns from the back-end concerns of an app.

  • Learn Prism. It's useful for all but trivial apps. It does a good job reducing the complexity of WPF applications, and it reduces coupling between the parts of an app. Once you get the hang of it, it really does make apps easier to maintain and develop.

There are articles on CodeProject (including mine) and elsewhere to get you started on all of these topics.

like image 31
David Veeneman Avatar answered Nov 20 '22 20:11

David Veeneman