1

I am currently deciding whether I should implement a new system with a web application as a front-end, or if I should instead produce an executable file using WPF.

The pattern that I will use is MVVM, since it suits my project needs quite well. However, I keep being told that MVVM is much better suited to WPF development and that evidence on that regard is pretty compelling. I resist myself to believe this, since I believe that in this day and age it makes more sense to have most system run a web front end. The back-end would be in C# either way.

Is it true that the use of MVVM in conjuction with WPF is more widespread than with a web front?

Professionals' and practitioners' take on the matter would be of particular interest.

3
  • 1
    Who are the users of this system? Can you easily deploy .exes to them?
    – Caleth
    Commented Dec 22, 2016 at 16:17
  • Yes I could deploy the application in a shared resource and have users link to that location via a shortcut, or something along those lines. Might not be best practice though.
    – Iliana
    Commented Dec 22, 2016 at 16:23
  • 1
    MVVM is actually quite often used today for web applications as well, considering a lot of web applications are written as SPAs in JavaScript. ReactJS is a variation of MVVM, Aurelia the same.
    – Andy
    Commented Dec 22, 2016 at 17:47

1 Answer 1

5

You choose the framework/patterns after you know what you want to build, not the other way round. Unless doing some exercises, your goal is to produce working software, not implement patterns.

In the world of client side web frameworks, there are countless ones that rely on patterns like MVVM or similar. Thus I keep being told that MVVM is much better suited to WPF development is probably only true in the context of .NET desktop frameworks when comparing it to WinForms where you would need a lot of boiler-plate code to achieve what WPF provides out-of-the-box.

Choosing between a web or desktop front-end requires a lot of answers in regards to questions like:

  • What operating system are the users using?
  • How often do you need to upgrade the UI?
  • Would the users be able/willing to periodically upgrade the entire application?
  • What are your requirements in regards to usability?
  • What are your requirements in regards to performance? (is the user willing to wait 2 seconds for the screen to change?)
1
  • thanks for your answer. We know what we want to build hence the MVVM pattern choice, we are only deciding how to present information to the user, either web or as a GUI.
    – Iliana
    Commented Dec 22, 2016 at 16:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.