This post contains links and references to subjects discussed in my MonkeySpace 2013 talk.
Naturally, the talk was grounded in Xamarin Studio.
Xamarin's Field Service App is a reference implementation for cross-platform MVVM.
The Xamarin DCI example source code can be found here.
Essential books on software-architectural patterns:
- Design Patterns: Elements of Reusable Software; Gamma et al.
- Patterns of Enterprise Application Architecture; Fowler
- Pattern-Oriented Software Architecture: Vol. 1; Buschmann et al.
- Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects: Vol. 2; Schmidt et al.
Special mention should be made of:
Which covers Data-Context-Interaction in detail.
- "Models-Views-Controllers"; Reenskaug
- "MVP: Model-View-Presenter"; Potel
- "Introduction to Model/View/ViewModel Pattern for Building WPF Apps"; Gossman
- "The DCI Architecture: A New Vision for Object-Oriented Programming"; Reenskaug, Coplien
It should be noted that DCI advocates now speak of it as a "paradigm" and not simply an architectural style.
More DCI links:
- Full.OO Homepage
- DCI Tutorials - Lean Software Architecture
- The Common Sense of Object-Orientated [sic] Programming
- Clean Ruby
- DCI Example with NRoles
The quote by Joe Armstrong:
I think the lack of reusability comes in object-oriented languages, not functional languages. Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.
If you have referentially transparent code, if you have pure functions — all the data comes in its input arguments and everything goes out and leave no state behind — it’s incredibly reusable.
comes from the book Coders at Work.
I write about software development in my monthly column for SD Times.