"The MVVM Pattern is Highly Overrated"

430 views
Skip to first unread message

Jeremiah Morrill

unread,
Jul 21, 2010, 2:56:13 PM7/21/10
to wpf-di...@googlegroups.com
I was wondering what you guys thought of this post.  I'm not quite the expert on patterns, but this seems to be splitting hairs because to me, MVVM is a model, a view and a VM/PM...which he states he uses. At the end of the day, isn't it all just M-V-Poo?

http://davybrion.com/blog/2010/07/the-mvvm-pattern-is-highly-overrated/


--
Microsoft MVP - Client Application Development
HJT, Inc Software Developer

Peter O'Hanlon

unread,
Jul 21, 2010, 3:05:01 PM7/21/10
to wpf-di...@googlegroups.com
It smacks of "my pattern is better than your pattern" to me.
--
Peter O'Hanlon

John Gossman

unread,
Jul 21, 2010, 3:06:17 PM7/21/10
to wpf-di...@googlegroups.com
Semantics and hair-splitting.  This sort of post is why I always explain MVVM in very general terms...whatever works for people and whatever they want to call it.

CBl...@eki-consulting.com

unread,
Jul 21, 2010, 3:10:45 PM7/21/10
to wpf-di...@googlegroups.com, wpf-di...@googlegroups.com

Actually, sounds like "I like a cat more then I like a felis catus"

Bill Kempf

unread,
Jul 21, 2010, 3:16:45 PM7/21/10
to wpf-di...@googlegroups.com
I responded. This quote got me "All this time, we’ve been using the
MVP pattern (Supervising Controller variant) with a slight twist. That
twist being a slimmed down version of a Presentation Model." Damn it,
they are the same pattern! Toe-mae-toe, toe-mah-toe, let's call the
whole thing off.

--
 Quidquid latine dictum sit, altum sonatur.
- Whatever is said in Latin sounds profound.

War is peace. Freedom is slavery.  Bugs are features.

Philipp Sumi

unread,
Jul 21, 2010, 3:18:01 PM7/21/10
to wpf-di...@googlegroups.com

I guess, the whole discussion is based on the fact that MVVM in its core is quite a simple pattern, which means that MVVM can be a lot of things. This not only tends to lead to confused novice developers, but might only cause oversimplification or "god view models" (aka "if there is a class that is called view, another that's called view model, we're doing MVVM, no matter what unspeakable acts of coding we perform on them"). SOC with a reasonable level of cohesion is something I'm *very* focused on when dealing with enterprise scenarios, and I think MVVM helps a great deal there. You just have to get it right.

 

As a side note: A thing that caught my eye was the first comment, where a developer mentioned MVVMC. I feeling drawn into that direction as well, especially with lots of disconnected view models. Having a controllers to create/locate/wire up my views and view models helped me a lot in my current project. Paul covered quite some ground there with his ASP.NET MVC-influenced Magellan.

Shawn Wildermuth

unread,
Jul 21, 2010, 3:24:52 PM7/21/10
to wpf-di...@googlegroups.com

It comes down to this:  Patterns are not Dogma…deal with it…

 

Thanks,

Shawn Wildermuth

http://wildermuth.com

 

Note: This was typed on a big ole laptop so any misspellings and punctuations are completely my fault…not my phone’s.

Peter O'Hanlon

unread,
Jul 21, 2010, 3:29:23 PM7/21/10
to wpf-di...@googlegroups.com
Damn. I hoped patterns were Dogma. I was looking forward to seeing Salma Hayek as my muse.
--
Peter O'Hanlon

John Gossman

unread,
Jul 21, 2010, 3:33:53 PM7/21/10
to wpf-di...@googlegroups.com
+1 

I especially love the "more catholic than the pope" attitude...such as Josh's classic coffee house encounter :-)

Peter O'Hanlon

unread,
Jul 21, 2010, 3:37:49 PM7/21/10
to wpf-di...@googlegroups.com
I blame Josh. He should have stalked that coffeehouse just to meet them again and direct them to our blogs on their lack-o-cool.
--
Peter O'Hanlon

Josh Smith

unread,
Jul 21, 2010, 3:55:44 PM7/21/10
to wpf-di...@googlegroups.com
Thanks John, now I need to go buy Pope gear to live up to that sentence.  See attached pic for a rough overview of where this is headed.

Josh
JoshAsPope.png

Karl Shifflett

unread,
Jul 21, 2010, 4:33:48 PM7/21/10
to wpf-di...@googlegroups.com

More poop for the pile.  I read some of his other dribble, this is one unhappy critical camper.

 

Next…

Shawn Wildermuth

unread,
Jul 21, 2010, 4:38:19 PM7/21/10
to wpf-di...@googlegroups.com

 

Thanks,

Shawn Wildermuth

http://wildermuth.com

 

Note: This was typed on a big ole laptop so any misspellings and punctuations are completely my fault…not my phone’s.

 

Josh Smith

unread,
Jul 21, 2010, 4:40:07 PM7/21/10
to wpf-di...@googlegroups.com
In addition to Shawn's point...angry people make the most noise, shoot the most bullets, etc.  I'd assume most people using and enjoying MVVM are too busy learning and having fun to write big posts about it.

Josh

Bill Kempf

unread,
Jul 21, 2010, 4:46:21 PM7/21/10
to wpf-di...@googlegroups.com
Really? I think most people on this list have posted numerous big
articles on MVVM, yourself included. ;)

--

Josh Smith

unread,
Jul 21, 2010, 4:47:41 PM7/21/10
to wpf-di...@googlegroups.com
That's why I wrote "most people".  Anyone willing to have a discussion about MVVM in their free time is clearly in the other category. :)

Peter O'Hanlon

unread,
Jul 21, 2010, 5:08:45 PM7/21/10
to wpf-di...@googlegroups.com
I like his tagline:

"Trying to walk that thin line between intelligence and ignorance"

It looks like he fell off.
--
Peter O'Hanlon

Bill Kempf

unread,
Jul 21, 2010, 5:38:33 PM7/21/10
to wpf-di...@googlegroups.com
I won't go that far. He's got some valid concerns in his posting, I
just think he's muddled implementation details with the pattern
definition, which is something that seem too widely spread.

Peter O'Hanlon

unread,
Jul 21, 2010, 5:46:38 PM7/21/10
to wpf-di...@googlegroups.com
My problem is more that he's getting hung up on the terminology and his condescending comment:

(Sidenote: what i don’t really understand is that many people who vigorously advocate adherence to SRP and SoC in their domain and business code don’t seem to hold their UI code to the same standards. I do.)

I don't hold my UI code to the same standard because my UI code is in the hands of the designer. I trust him to make good design decisions - he's a crap coder and I'm a crap designer. That's my classic definition of Separation of Concerns.
--
Peter O'Hanlon

Colin Eberhardt

unread,
Jul 22, 2010, 3:41:43 AM7/22/10
to WPF Disciples
I think he is working under the flawed assumption that there is a
single best pattern for building WPF / Silverlight UIs. He was guided
by the development community towards MVVM, and when it did not tick
all the boxes for his own applications requirements, it was the
pattern that he blamed. That is just silly!

Patterns are just tools, to be used when appropriate. For simple
applications, MVVM may be overkill and codebehind more appropriate,
for more complex apps it works very well, for really complex
applications you might want to look at mixing in other patterns, as he
has found himself.

Either way, I think the MVVM pattern is a very good pattern for a
couple of reasons:
1) It works well in a lot of contexts.
2) It is easy to understand (in contrast to some of the other MV* UI
patterns).

Regards,
Colin E.

On Jul 21, 7:56 pm, Jeremiah Morrill <jeremiah.morr...@gmail.com>
wrote:
> I was wondering what you guys thought of this post.  I'm *not *quite the

John Gossman

unread,
Jul 22, 2010, 11:25:26 AM7/22/10
to wpf-di...@googlegroups.com
I've seen things like this other times.  At some point he was told (more likely inferred from simple examples) that the ViewModel is implemented as a single class.  Rather than reject this fallacy, he rejected the pattern.  What he calls it doesn't matter except for two things:  1)  He is actually perpetuating the fallacy he rejected (ViewModel == single class) in his blog post and 2)  By inventing a new name, making it harder to communicate with others in the community.  Experienced folks aren't going to be inconvenienced by either, but folks still learning WPF/SL development may be confused.

Mike Brown

unread,
Jul 28, 2010, 1:12:01 PM7/28/10
to WPF Disciples
Sorry for joining this conversation so late...it happens when you're
stuck on an island for a week with spotty internet access. Regarding
the "thin line" between intelligence and ignorance...there is no such
thing...they're on opposite sides of the spectrum. You either know
(intelligence) or you don't (ignorance).

I've been writing and rewriting a follow up to my "MVVM Simplified"
blog post. There's just so much to talk about, I want to make
everything clear and concise with out blatantly plagiarizing Fowler.
The "issues" with MVVM that this person described aren't (as others
have mentioned) inherent in the pattern but are in reality the result
of a poorly done implementation. If separation of concerns is
important to you, let the viewmodel be a thin facade that calls the
appropriate service in response to a command.

Someone mentioned having a separate "Controller" to retrieve the
appropriate view based on actions a' la ASP.NET MVC. I see this
scenario as using the Front Controller pattern (http://
www.martinfowler.com/eaaCatalog/frontController.html) to handle the
resolution of the view and it's not at all in conflict with MVVM (the
controller handles the request that returns a view that is supported
by a VM).

I spoke with someone else who advocated MVPVM (model view presenter
view model) but his argument had the same holes that this guy did.
Introducing a presenter does nothing but increase
complexity...offloading logic to a service is the simpler approach and
I subscribe to the Occam's Razor theory of software development.

On Jul 21, 5:08 pm, "Peter O'Hanlon" <pete.ohan...@gmail.com> wrote:
> I like his tagline:
>
> "Trying to walk that thin line between intelligence and ignorance"
>
> It looks like he fell off.
>
> On 21 July 2010 21:47, Josh Smith <flappleja...@gmail.com> wrote:
>
>
>
>
>
> > That's why I wrote "most people".  Anyone willing to have a discussion
> > about MVVM in their free time is clearly in the other category. :)
>
> > On Wed, Jul 21, 2010 at 1:46 PM, Bill Kempf <weke...@gmail.com> wrote:
>
> >> Really? I think most people on this list have posted numerous big
> >> articles on MVVM, yourself included. ;)
>
> >> On Wed, Jul 21, 2010 at 4:40 PM, Josh Smith <flappleja...@gmail.com>
> >> >> On Wed, Jul 21, 2010 at 12:33 PM, John Gossman <gossmans...@gmail.com>
> >> >> On 21 July 2010 19:56, Jeremiah Morrill <jeremiah.morr...@gmail.com>
> >> >> wrote:
>
> >> >> I was wondering what you guys thought of this post.  I'm not quite the
> >> >> expert on patterns, but this seems to be splitting hairs because to me,
> >> MVVM
> >> >> is a model, a view and a VM/PM...which he states he uses. At the end of
> >> the
> >> >> day, isn't it all just M-V-Poo?
>
> >>http://davybrion.com/blog/2010/07/the-mvvm-pattern-is-highly-overrated/
>
> >> >> --
> >> >> Microsoft MVP - Client Application Development
>
> >> >> HJT, Inc Software Developer
>
> >> >> --
> >> >> Peter O'Hanlon
>
> >> --
> >>  Quidquid latine dictum sit, altum sonatur.
> >> - Whatever is said in Latin sounds profound.
>
> >> War is peace. Freedom is slavery.  Bugs are features.
>
> --
> Peter O'Hanlon- Hide quoted text -
>
> - Show quoted text -
Reply all
Reply to author
Forward
0 new messages