Hi there i've been into MvvM and modular design the last few days, i find it really nice design principle that be scaled and maintained really well.

But here is the thing, i see there are multiple platforms like Prism that make the whole process automated, they have their own templates, their own observable objects, they provide nice logging information and a lot more things that i dont mention like wrapper for ICommands , messaging and so on.

Now i see those platforms do things more complicated than i need them to, like breaking down the ui into modules and so on.

I was thinking if its worth to just make my own stuff and just live independent of them, considering that i still havent moved into massive projects should i just use my own Homemade Bootstrapping, observable objects/lists etc ?

What are some features that i might miss in the future by not using tested platforms like Prism?

  • Frameworks like Prism just provide some of the heavy lifting for you (albeit in a peer-reviewed, robust way). The implementation objects are essentially the same if you do it yourself. Note that Prism is designed to help you build WPF applications that are loosely-coupled, extensible collections of modules; if you don't need this kind of help, then you might not need Prism. – Robert Harvey Oct 15 '17 at 15:42

You tagged question with C# - so .NET already have some MVVM parts implemented
- ObservableCollection<T>
- BindingList<T> (for Winforms applications)
- Databinding in WPF and Wiforms

For building application with MVVM pattern you need to implement only ICommand interface and maybe create own base class for viewmodels which implements INotifyPropertyChanged.

In case projects doesn't have tight time constraints - suggest to not using frameworks. MVVM pattern is not framework and doesn't require any framework to be used.

By writing own implementation you will learn and understand better needs of MVVM pattern, understand why some frameworks was made and how they work, which will help you later efficiently using any MVVM related framework.

Frameworks should be used in cases when you have known problem and have possible solution, and you find framework which provide required solution in more effective(cost/time) way from project's point of view.


You can do things just fine with the standard IObservable stuff, a framework isn't required.

However, Its probably not worthwhile writing your own framework if you find you want one.

Using the existing popular ones will be good for your CV and they have already done the hard work for you.

Concentrate on making your product and use all the building blocks you can to get it done faster/cheaper/better

  • Using the existing popular ones will be good for your CV - prefer not working for company which selects candidates based on the frameworks they familiar with. – Fabio Oct 15 '17 at 13:41
  • name a company that doesn't though :/ – Ewan Oct 15 '17 at 13:42
  • If you search for open positions you will find 1 from may be 50 which mentioned explicitly that they looking for programmers without constraints to particular framework or even language. Of course important that candidate share same view on how software could be developed and how programmer will maintain and develop their skills and knowledge – Fabio Oct 15 '17 at 13:48
  • That is true, a few companies say this. But most are, I believe, pushed by the system of HR and agencies to specific an easy list of skills they can check against – Ewan Oct 15 '17 at 15:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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