Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

adding more to the section on MVVM history

  • Loading branch information...
commit 5ebae099b07462946e90c86b0e7dafd98222eb12 1 parent ee215d7
@addyosmani addyosmani authored
Showing with 6 additions and 2 deletions.
  1. BIN  .DS_Store
  2. +1 −1  README.md
  3. +5 −1 book/index.html
View
BIN  .DS_Store
Binary file not shown
View
2  README.md
@@ -4,7 +4,7 @@
This is the repo for an in-progress creative-commons book I've written called 'Essential JavaScript Design Patterns'. Design patterns are reusable solutions to commonly occurring problems in software development and are a very useful tool to have at your disposal. You can read the latest version [online](http://addyosmani.com/resources/essentialjsdesignpatterns/book/ "Read Online") at
any time.
-Version 1.5.2 of the book is currently over 170 A4 pages in length and 1.0 was downloaded approximately 260,000 times (rounded) during 2011. Additional formats of the book are available in the 'formats' directory.
+Version 1.5.2 of the book is currently over 130 A4 pages in length and 1.0 was downloaded approximately 260,000 times (rounded) during 2011. Additional formats of the book are available in the 'formats' directory.
#### Why is this book needed?
View
6 book/index.html
@@ -2951,7 +2951,11 @@ <h2 id="detailmvvm">MVVM</h2>
<p>MVVM (Model View ViewModel) is an architectural pattern based on MVC and MVP, which attempts to more clearly separate the development of user-interfaces (UI) from that of the business logic and behaviour in an application. To this end, many implementations of this pattern make use of declarative data bindings to allow a separation of work on Views from other layers.</p>
<p>This facilitates UI and development work occurring almost simultaneously within the same codebase. UI developers write bindings to the ViewModel within their document markup (HTML), where the Model and ViewModel are maintained by developers working on the logic for the application.</p>
<h3>History</h3>
-<p>MVVM was originally defined by Microsoft for use with Windows Presentation Foundation (<a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation">WPF</a>) and <a href="http://www.microsoft.com/silverlight/">Silverlight</a>, having been officially announced in 2005 by <a href="http://blogs.msdn.com/b/johngossman/">John Grossman</a> in a blog post about Avalon (the codename for WPF). It also found some popularity in the Adobe Flex community as an alternative to simply using MVC.</p>
+<p>MVVM (by name) was originally defined by Microsoft for use with Windows Presentation Foundation (<a href="http://en.wikipedia.org/wiki/Windows_Presentation_Foundation">WPF</a>) and <a href="http://www.microsoft.com/silverlight/">Silverlight</a>, having been officially announced in 2005 by <a href="http://blogs.msdn.com/b/johngossman/">John Grossman</a> in a blog post about Avalon (the codename for WPF). It also found some popularity in the Adobe Flex community as an alternative to simply using MVC.</p>
+
+<p>Prior to Microsoft adopting the MVVM name, there was however a movement in the community to go from MVP to MVPM: Model View <a href="http://blogs.adobe.com/paulw/archives/2007/10/presentation_pa_3.html">PresentationModel</a>. Martin Fowler wrote an <a href="http://martinfowler.com/eaaDev/PresentationModel.html">article</a> on PresentationModels back in 2004 for those interested in reading more about it. The idea of a <a href="http://blogs.infragistics.com/blogs/craig_shoemaker/archive/2009/11/03/learning-model-view-viewmodel-and-presentation-model.aspx">PresentationModel</a> had been around much longer than this article, however it was considered the big break in the idea and greatly helped popularize it.</p>
+
+<p>There was quite a lot of uproar in the "alt.net" circles after Microsoft announced MVVM as an alternative to MVPM. Many claimed the company's dominance in the GUI world was giving them the opportunity to take over the community as a whole, renaming existing concepts as they pleased for marketing purposes. A progressive crowd recognized that whilst MVVM and MVPM were effectively the same idea, they came in slightly different packages.</p>
<p>In recent years, MVVM has been implemented in JavaScript in the form of structural frameworks such as <a href="http://knockoutjs.com/">KnockoutJS</a>, <a href="http://www.kendoui.com/web/roadmap.aspx">Kendo MVVM</a> and <a href="https://github.com/kmalakoff/knockback">Knockback.js</a>, with an overall positive response from the community.</p>
<p>Let&rsquo;s now review the three components that compose MVVM.</p>
<h3>Model</h3>

0 comments on commit 5ebae09

Please sign in to comment.
Something went wrong with that request. Please try again.