This document provides an overview of the Model-View-ViewModel (MVVM) pattern for building WPF and Silverlight applications. It discusses UI patterns, why they exist, and the MVVM pattern specifically. It then covers key WPF concepts like data binding, commanding, and notifying property changes that are foundational to MVVM. Available frameworks that can help with MVVM are presented, followed by a demo of writing a simple ViewModel and dashboard using MVVM principles. Resources for further reading on MVVM and WPF/Silverlight development are provided at the end.
The Model View ViewModel (MVVM) is an architectural pattern originated by Microsoft as a specialization of the Presentation Model (Martin Fowler). Similar to MVC, MVVM is suitable for client applications (Xaml-based, Xamarin, SPA, ...) because it facilitates a clear separation between the UI and the Business Logic. Examples with WPF, MvvmCross, AngularJs. It also contains solutions for common use cases.
How to Build Composite Applications with PRISMDataLeader.io
Created by Emil Stoychev (The Silverlight Show) from Bulgaria at my Microsoft "Pre-MIX!!" ROCK! event.
Topics covered include design & technical concepts in PRISM, composite apps vs. monolithic apps, prism is a set of guidelines not a framework.
Technical Concepts:
1. Bootstrapper is responsible for app initialization
2. CAL includes UnityBootstrapper
3. XAML
4. Configure RegionAdapter Mappings
5. Creating the Shell
6. Initializing Modules
7. Windows Presentation Foundation (WPF)
8. Module Options
1. Design Concepts: modularity, dependency injection container, multi-targeting
2. UI Composition: commanding, eventing
3. View Composition = View Injection = View Discovery
How difficult is it to port Flex and Silverlight applications to HTML5? That is the question we hear every day at ComponentOne. Instead of speculating about it, we decided to sit down and try it. Today we will discuss the process and tools we used when doing so. The approach we took was to use the MVVM pattern (from Silverlight) when developing the HTML5/JavaScript version. By choosing this method we were able to port our data access and UI layers quite easily. Our developers were able to minimize the cost of learning new paradigms in this migration by reusing most of their knowledge. What we ended up with was nearly identical applications in Silverlight and HTML5. Come learn how you can smoothly transition to HTML5!
A Smooth Transition to HTML5 Using MVVMChris Bannon
How difficult is it to port Silverlight applications to HTML5? That is the question we hear every day at ComponentOne. Instead of speculating about it, we decided to sit down and try it. Today we will discuss the process and tools we used when doing so. The approach we took was to use the MVVM pattern (from Silverlight) when developing the HTML5/JavaScript version. By choosing this method we were able to port our data access and UI layers quite easily. We take advantage of tools like KnockoutJS and Wijmo to make the process even easier. Our developers were able to minimize the cost of learning new paradigms in this migration by reusing most of their knowledge. What we ended up with was nearly identical applications in Silverlight and HTML5. Come learn how you can smoothly transition to HTML5!
The Model View ViewModel (MVVM) is an architectural pattern originated by Microsoft as a specialization of the Presentation Model (Martin Fowler). Similar to MVC, MVVM is suitable for client applications (Xaml-based, Xamarin, SPA, ...) because it facilitates a clear separation between the UI and the Business Logic. Examples with WPF, MvvmCross, AngularJs. It also contains solutions for common use cases.
How to Build Composite Applications with PRISMDataLeader.io
Created by Emil Stoychev (The Silverlight Show) from Bulgaria at my Microsoft "Pre-MIX!!" ROCK! event.
Topics covered include design & technical concepts in PRISM, composite apps vs. monolithic apps, prism is a set of guidelines not a framework.
Technical Concepts:
1. Bootstrapper is responsible for app initialization
2. CAL includes UnityBootstrapper
3. XAML
4. Configure RegionAdapter Mappings
5. Creating the Shell
6. Initializing Modules
7. Windows Presentation Foundation (WPF)
8. Module Options
1. Design Concepts: modularity, dependency injection container, multi-targeting
2. UI Composition: commanding, eventing
3. View Composition = View Injection = View Discovery
How difficult is it to port Flex and Silverlight applications to HTML5? That is the question we hear every day at ComponentOne. Instead of speculating about it, we decided to sit down and try it. Today we will discuss the process and tools we used when doing so. The approach we took was to use the MVVM pattern (from Silverlight) when developing the HTML5/JavaScript version. By choosing this method we were able to port our data access and UI layers quite easily. Our developers were able to minimize the cost of learning new paradigms in this migration by reusing most of their knowledge. What we ended up with was nearly identical applications in Silverlight and HTML5. Come learn how you can smoothly transition to HTML5!
A Smooth Transition to HTML5 Using MVVMChris Bannon
How difficult is it to port Silverlight applications to HTML5? That is the question we hear every day at ComponentOne. Instead of speculating about it, we decided to sit down and try it. Today we will discuss the process and tools we used when doing so. The approach we took was to use the MVVM pattern (from Silverlight) when developing the HTML5/JavaScript version. By choosing this method we were able to port our data access and UI layers quite easily. We take advantage of tools like KnockoutJS and Wijmo to make the process even easier. Our developers were able to minimize the cost of learning new paradigms in this migration by reusing most of their knowledge. What we ended up with was nearly identical applications in Silverlight and HTML5. Come learn how you can smoothly transition to HTML5!
Mobile App Architectures & Coding guidelinesQamar Abbas
Better coding guidelines and application architectures
SOLID principles by Uncle Bob
Model View Controller
Model View Presenter,
Model View ViewModel
Best practices for Android developers
Best practices for iOS developers
Download original slides http://bit.ly/2HNCcMX
E-Commerce Applications Development,
Definition
a basic structure underlying a system, concept, or text.
In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful.
Model
Represents an object. It can also have logic to update controller if its data changes.
View
Represents the visualization of the data that model contains.
Controller
Acts on both model and view. It controls the data flow into model object and updates the view whenever data changes. It keeps view and model separate.
Nate Rickard takes you on a deep dive into Xamarin.Forms, providing a brief overview, a practical application analysis of this took, and how to extend Xamarin.Forms.
You will be able to answer the following questions:
1. What are some considerations when deciding whether to use Xamarin.Forms?
2. When does it make sense to use Xamarin.Forms?
3. How can I use built in features/tactics to improve development on Xamarin.Forms?
4. How can I supplement Xamarin.Forms with additional (or changed) functionality?
Mobile App Architectures & Coding guidelinesQamar Abbas
Better coding guidelines and application architectures
SOLID principles by Uncle Bob
Model View Controller
Model View Presenter,
Model View ViewModel
Best practices for Android developers
Best practices for iOS developers
Download original slides http://bit.ly/2HNCcMX
E-Commerce Applications Development,
Definition
a basic structure underlying a system, concept, or text.
In general, a framework is a real or conceptual structure intended to serve as a support or guide for the building of something that expands the structure into something useful.
Model
Represents an object. It can also have logic to update controller if its data changes.
View
Represents the visualization of the data that model contains.
Controller
Acts on both model and view. It controls the data flow into model object and updates the view whenever data changes. It keeps view and model separate.
Nate Rickard takes you on a deep dive into Xamarin.Forms, providing a brief overview, a practical application analysis of this took, and how to extend Xamarin.Forms.
You will be able to answer the following questions:
1. What are some considerations when deciding whether to use Xamarin.Forms?
2. When does it make sense to use Xamarin.Forms?
3. How can I use built in features/tactics to improve development on Xamarin.Forms?
4. How can I supplement Xamarin.Forms with additional (or changed) functionality?
iOS & Android Dev in C# & Visual Studio using XamarinNish Anil
Rarely does a developer have the luxury of building mobile apps for a single mobile platform. The fact is, the smartphone and tablet space is dominated by three big platforms: iOS, Android and Windows. Traditionally, this means using each platform's provided technology and SDK, i.e. Objective-C for iOS, Java for Android and .NET for Windows, or choosing a write-once/run-anywhere cross-platform toolkit which provides a lowest-common-denominator experience on all platforms, and prevents developers from going "to the metal" on any given platform to take advantage of the native features that make a mobile platform great.
With Xamarin, however, this limitation does not exist. Not only do you get a single, modern language (C#) and framework (.NET) across all three platforms, but you also get a native experience on each, giving your code direct access to the underlying SDK and device metal, including platform-specific UI and device capabilities, so that you can deliver a truly amazing native experience on every platform you target.
iOS & Android Dev in C# & Visual Studio using Xamarin
Infragistics: Getting Started with MVVM in WPF & Silverlight
1.
2. Getting Started
with MVVM in
(WPF / Silverlight)
NISHANTH ANIL
TECHNICAL EVANGELIST
@nishanil | nanil@infragistics.com | nnish.com
facebook.com/InfragisticsIndia
3. Agenda
– Patterns
– What’s MVVM?
– Foundation (WPF concepts)
– Available Frameworks
– Your First ViewModel (demo)
– Simple Dashboard (demo)
@nishanil
4. Patterns – are guidelines not rules!
• UI patterns
– Model – View – Controller
– Model – View – Presenter
– Presentation Model
– Model – View – ViewModel
• Why do they exist?
– Separation of concerns
– Testability
– Maintainability
@nishanil
7. Foundation – WPF Concepts
• INotifyPropertyChanged
– Not a WPF only concept (part of an implementation of GOF Observer pattern)
• Observer Pattern in brief: When one object changes state, all its dependents are notified and updated automatically.
– Implement INotifyPropertyChanged in your ViewModels
– And Notify when property changes
• INotifyCollectionChanged
– Similar to INotifyProperyChanged, but it applies to collections of objects
– Use ObservableCollection<T> instead of manually implementing
@nishanil
8. Foundation – WPF Concepts
• DataBinding
– A View binds to properties on a ViewModel
• DataContext
– Set ViewModel to the DataContext of the View
– This property is meant to be set to the data object it visualizes.
@nishanil
9. Foundation – WPF Concepts
• Commanding
– Is an input mechanism
– Without command MVVM will be less powerful
– Commands in WPF are implemented using ICommand interface
ICommand Implementation
ViewModel
Binding the command in the View
@nishanil