B
B
BlueStackWPF2016-09-22 15:33:33
.NET
BlueStackWPF, 2016-09-22 15:33:33

How to become a professional WPF developer?

Hello.
I have been developing ASP.NET MVC applications all my life, and then only the back-end part. Knowledge of standard HTML / CSS is very low - I can’t write everything beautifully. I decided to go into desktop development. Therefore, I ask a question.
Decided to study WPF, XAML. Then he suddenly discovered that WPF without MVVM cannot exist. And MVVM has no general rules, everyone implements it differently. And I have not seen really good, multifunctional and understandable projects on WPF + MVVM. The situation is aggravated by MVVM frameworks, all sorts of Prisms (sort of like a big monster), and so on. And I have a dissonance - what to study first, where to dig, what to do in general, what is worth studying and what is not. It would be great if they gave materials / tips / examples and an exemplary application (task) with rich functionality (in terms of WPF) that needs to be implemented.
Dear developers who have extensive experience in WPF / MVVM development, please share materials and advice on how to quickly get into this business. How to sort through this pile of information and select only what is needed and correct, namely:

  1. Where to start learning WPF?
  2. What materials are needed for this? (It is desirable to immediately link / name)
  3. Where and what do you need / can you learn about MVVM, simple, without junk?
  4. Where can I get WPF projects made in the framework of MVVM that have rich functionality and show how to do it right?
  5. Are MVVM Frameworks Necessary? Why is there so much discussion. Some say yes, others no.
  6. And is Blend needed at all? Can't do without it at all or can you live?

Answer the question

In order to leave comments, you need to log in

6 answer(s)
S
Stanislav Makarov, 2016-09-22
@Nipheris

And MVVM has no general rules, everyone implements it differently.

Well, I wouldn't say they don't exist. There are bindings, there is INotifyPropertyChanged, there are recommendations from MS. Yes, you are correct in the sense that WPF is a library, but NOT a development framework, ie. it does not regulate the structure of the application.
A couple of days ago I recommended a book: Raffaele Garofalo, "Building Enterprise Applicatio... - if you haven't read anything yet, start with it.
No wonder: WPF applications are usually line-of-business, which is not open-source by definition.
Make sure you more or less understand the .NET platform and OOP in it, otherwise it will be difficult.
You will need to understand:
a) the system of dependent properties (dependency property);
b) with MVVM and INotifyPropertyChanged;
c) by itself with XAML and controls, the principles of writing your controls;
d) with styles and styling;
e) with a system of commands (ICommand) and others.
Discussions arise because a) some things can be done in different ways; b) developers deal with applications of different sizes and complexity, but rarely think about it in disputes; c) experienced developers have often already provided themselves with the necessary "library" while developing applications (ViewModelBase, huh :) ). It’s better to figure out for yourself how it works, then you will understand which framework is useful to you.
Subsequently, I also advise you to get acquainted with IoC containers, if you have not used them yet. This is general advice for large applications, not just WPF. Some have special integration libraries to work with frameworks, such as Autofac : Prism.Autofac .

R
Rifat, 2016-09-22
@serber

1. Start by reading the book and understanding the basics: routed events, data binding, comands, styles & triggers. Metasite has a section on WPF
2. Books, articles
3. For example, here is an example of a simple MVVM
4. Search on codeproject, github
5. I would advise looking towards caliburn micro . Look at the source code of the project.
6. In my understanding, making an interface on Blend is the same as creating a page on FrontPage. Personally, I don't like him.

A
AxisPod, 2016-09-23
@AxisPod

I will not answer in detail, they already answered normally.
5. The only thing you can look at at the start is MVVM Light, it will simplify the routine, but at the same time leave the standard architecture. You can’t take Prism at the start at all, the brain can break, and at the same time it allows you to implement only typical projects, again with a lot of magic. Catel is also a monster, I like it much more than Prism, more flexible. Caliburn Micro is the main evil of MVVM, it may be suitable for small projects, but it will be very difficult to support large projects with it, because there are no obvious connections, everything is built on the magic of internal implementation.
It is necessary to get acquainted with Prism and Catel, but not immediately. Caliburn Micro is better not to even touch, not to clog the brain.

D
Daniil Danilov, 2016-09-22
@kempendyi

Hello,
1. MSDN + professorweb.ru (a good resource for beginners)
2. Online resources and a desktop reference, for example ( https://www.ozon.ru/context/detail/id/7589270/)
3. Classics of the genre: https://msdn.microsoft.com/en-us/magazine/dd419663.aspx
4. It doesn't come to mind, see https://github.com/MarkWithall/worlds-simplest-csh...
5. Use or not, you will understand after you dive into topic
6. At this stage, it is not needed. In the future, everything will depend on you.

D
Dmitry Gavrilenko, 2016-09-26
@Maddox

I'm also learning WPF at the moment. Half a year ago, I considered the technology half dead, until I found out that Microsoft bought Xamarin. The prospect of developing multi-platform applications in the "native" language blew my mind and strongly motivated me to finally start learning. As colleagues have already mentioned, WPF is in demand only in the enterprise. Working in a startup, I begin to understand the future value of my knowledge of WPF. In-house development of a desktop application is planned.
At the moment, not all the components of WPF have been comprehended by me. I study at ITVDN courses. Everything is superficial, but for an initial understanding of WPF components, it’s very normal IMHO.

A
Alexander Ryzhov, 2016-09-29
@RyzhovAlexandr

I recommend the free book from SyncFusion WPF Succinctly . You can also download it for free from their official website, but you need to register.
As my experience has shown, the use of Prism is from a cannon to sparrows. Even in large projects, I managed with my own abstractions, I agree with the previous comments, I highly recommend Autofac. An example of using it with MVVM is described here .
The main thing is to inject all dependencies through the constructor, and ViewModel into View, and Autofac will do the rest for you.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question