Upload
gyuwon-yi
View
555
Download
1
Embed Size (px)
Citation preview
C# 3.0 (2007)Java 8 (2014)
C# 5.0 (2013)
C# 4.0 (2010)
Lambda
Expression Trees
LINQ
Lambda
Streams
Dynamic
Asynchronous
App Logics
Cross-platform Natively Backed UI
Platform-specific API
iOS
Platform-specific API
Android
Platform-specific API
Windows Phone
MVVM(Model-View-ViewModel)
• In 2005, John Gossman(Microsoft)
• A Variation of MVC
• Separation of Presentation and Presentation Logic
• 2-way Binding
• Testability
• WPF, Silverlight, Xamarin Forms, AngularJS, EmberJS, KnockoutJS, RoboBinding
• Introduction to Model/View/ViewModel pattern for building WPF apps
• WPF Apps With The Model-View-ViewModel Design Pattern
Unit Testing
Pros
• Cheap
• Finds problems early
• Living Documentation
• As a Design Element
Cons
• Not catch integration errors
• Not catch system-level errors
• Can’t write for user interfaces
Presentation Layer
View(UI)
ViewModel(Presentation Logic)
• No Reference to Views
• No Lifecycle Constraint
Testable
Collections and Templating
<ListView ItemsSource="{Binding Users}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Name}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>