Implementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc.

Similar documents
Prism Composite Application Guidance

03 Model-View-ViewModel. Ben Riga

Prism Composite Application Guidance

Building Loosely Coupled XAML Client Apps with Prism

WPF and MVVM Study Guides

Building Extensible XAML Client Apps

Build Better WPF & Silverlight applications using Prism v2

Blissful Separation of Concerns with Model-View-ViewModel (MVVM)

ArcGIS Pro SDK for.net Intro and Pro Add-in Programming Patterns. Wolfgang Kaiser

Mastering LOB Development

Practical WPF. Learn by Working Professionals

Windows Presentation Foundation (WPF)

04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio. Ben Riga

Developing Rich Internet Applications Using Microsoft Silverlight 4

Configuring and Customizing the ArcGIS Viewer for Silverlight. Katy Dalton

Composite Application Guidance for WPF and Silverlight (AKA Prism 2 )

KnOwledge

ArcGIS Pro SDK for.net Advanced User Interfaces in Add-ins. Wolfgang Kaiser

Learn.Net WPF with Prism & Multithreading. This syllabus is cover WPF with Prism 4.0 & multithreading

ArcGIS Viewer for Silverlight Advanced Topics

Building Extensible XAML Client Apps

ArcGIS Pro SDK for.net: Asynchronous Programming and MVVM Patterns in Pro. Wolfgang Kaiser

AR.04 Composite Application Guidance for WPF (aka Prism ) Brian Noyes IDesign Inc (

Build Loosely Coupled Silverlight Business Applications

ArcGIS Pro SDK for.net: UI Design and MVVM

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill

Build Testable Client and Service Applications

ArcGIS Pro SDK for.net Beginning Pro Customization. Charles Macleod

1: ASP.NET AND JQUERY

Windows Presentation Foundation Programming Using C#

Visual Studio 2015: Windows Presentation Foundation (using VB.NET Language) Training Course Outline

Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018

Sundew. Application Framework

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

Pro Business Applications with Silverlight 4

This tutorial is designed for software developers who want to learn how to develop quality applications with clean structure of code.

Cross-Platform Mobile Platforms and Xamarin. Presented by Mir Majeed

Workspace Desktop Edition Developer's Guide. Best Practices for Views

Test Your XAML-based Windows Store Apps with Visual Studio 2013 Benjamin Day

Xamarin for C# Developers

Developing Rich Internet Applications Using Microsoft Silverlight 4

DEVELOPING WEB APPLICATIONS WITH MICROSOFT VISUAL STUDIO Course: 10264A; Duration: 5 Days; Instructor-led

Pro XAML with C# From Design to Deployment on WPF, Windows Store, and Windows Phone. Buddy James. Lori Lalonde

Application Architecture Guide. Don Smith Community Liaison Microsoft patterns & practices

ArcGIS Pro Extensibility - Building and Deploying Addins with the new DotNet SDK

DI Why? Getting a Grip on Dependency Injection. Jeremy Clark

Author. Publish. Use

Website LinkedIn /

WPF. Source Module 01: Lesson1

10264A CS: Developing Web Applications with Microsoft Visual Studio 2010

Adapting Chronotron Speed Changer to Windows Phone 8.1

ArcGIS Viewer for Microsoft Silverlight An Introduction

Telerik Sales Dashboard: an Extensible Cross-Platform Application

ArcGIS Pro SDK for.net: Advanced User Interfaces in Add-ins. Wolfgang Kaiser

Developing Native Windows Phone 7 Applications for SharePoint

Integrate GIS Functionality into Windows Apps with ArcGIS Runtime SDK for.net

Webspeed. I am back. Enhanced WebSpeed

Portable Class Libraries ---

Real time monitor in SVG, a use case in Machining Technology HMI

Index. Windows 10 running, 199 suspended state, 199 terminate apps,

ArcGIS Runtime SDK for.net: Building Xamarin Apps. Rich Zwaap Thad Tilton

Index. Application programming interface (API), 38. Binary Application Markup Language (BAML), 4

University of West Bohemia. Faculty of Applied Sciences. Department of Computer Science and Engineering MASTER THESIS

Programming in C# for Experienced Programmers

Learn to develop.net applications and master related technologies.

Getting Started with ArcGIS Runtime SDK for the Microsoft.NET Framework. Morten Nielsen Mike Branscomb Antti Kajanus Rex Hansen

Xiaoying Guo Program Manager Microsoft Server and Tools China Session Code: DEV377

Super Powered Dynamo. Dynamo Extensions - with great power comes great responsibility - uncle ben

NE.15 Data Binding In Windows Presentation Foundation

Advance Windows Phone Development. Akber Alwani Window Phone 7 Development EP.NET Professionals User Group

ArcGIS Runtime SDK for WPF

Data Visualization & Dashboards

Android Essentials with Java

Migrating your WPF Apps to the New ArcGIS Runtime SDK for.net. Mike Branscomb Antti Kajanus

Mobile Computing. Xamarin Data Binding MVVM Pattern. Data Binding. XAML binding example. Target Views. In simple apps. For complex or big apps

Mobile Computing Xamarin Data Binding MVVM Pattern

Architectural patterns

Deep Dive on How ArcGIS API for JavaScript Widgets Were Built

Web Mapping Applications with ArcGIS. Bernie Szukalski Derek Law

Fundamentals of XAML and Microsoft Expression Blend

ArcGIS Pro SDK for.net: Add-in Fundamentals and Development Patterns. Wolf Kaiser, Uma Harano

DOT NET SYLLABUS FOR 6 MONTHS

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

Learn to Behave Extend Your XAML with Behaviors

ArcGIS Runtime SDK for Qt: Building Apps. Koushik Hajra and Lucas Danzinger

2310C VB - Developing Web Applications Using Microsoft Visual Studio 2008 Course Number: 2310C Course Length: 5 Days

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Managing. mashup of chapters from. rpafi/jl enterprise88. Packt's bestselling Silverlight. Data and Media in Microsoft Silverlight 4: A.

Building Your own Widget with ArcGIS API for JavaScript

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

--Microsoft-- --Windows Phone--

COPYRIGHTED MATERIAL. Contents. Part I: C# Fundamentals 1. Chapter 1: The.NET Framework 3. Chapter 2: Getting Started with Visual Studio

Advanced React JS + Redux Development

10262A VB: Developing Windows Applications with Microsoft Visual Studio 2010

LVL08 Black Belt Silverlight Business Data Validation

Dissemination Web Service. Programmatic access to Eurostat data & metadata

Software Design COSC 4353/6353 D R. R A J S I N G H

Question: Good Morning from Venezuela! Hello Matt and Andrea, it feels good to be early for a change. Answer: Great to see you again!

Customizing the Operations Dashboard for ArcGIS

Transcription:

Implementing MVVM in Real World ArcGIS Server Silverlight Applications Brandon Copeland LJA Engineering, Inc. 1

Agenda / Focused Topics Application Demo Model-View-ViewModel (MVVM) What is MVVM? Why is it important? MVVM in an ESRI ArcGIS Server application context Further abstraction through a service layer MVVM Next Level - Help from PRISM Modularity, Regions, and UI Composition Decoupled Communication 2

Application Demo Core functionality Basic architecture Key technologies 3

Why MVVM (or any other design pattern) Separation of Concerns - UI independent of presentation logic Single Responsibility Maintainability Scalability Maintain consistent development patterns Promote testable code XAML data binding baked in to Silverlight, WPF, WP7 4

Testing... Who Cares? Testing serves as Documentation Testing promotes better designed, reusable, modular code Refactoring safety net In TDD, test defines scope and feature completion In TDD, test provides instant gratification 5

MVVM View View Model Model Data Domain Logic Validation Class w/ Properties REST Service RIA Services 6

MVVM View Screen / Page/ Control Presentation of Data Bindings Behaviors Animations Themes and Styles View Model Model Data Domain Logic Validation Class w/ Properties REST Service RIA Services 7

MVVM View Screen / Page/ Control Presentation of Data Bindings Behaviors Animations Themes and Styles View Model Presentation Logic Exposes data from model to the view (Data Binding) Properties and Commands View s DataContext Model Data Domain Logic Validation Class w/ Properties REST Service RIA Services 8

ICommand Allow View to bind directly to methods in View Model CanExecute support Delegate to determine Is use of this command supported in the current application state? Button.IsEnabled handled by command Supported out of the box in Silverlight 4 for ButtonBase Framework implementations - DelegateCommand (PRISM) and RelayCommand Simplified further in Silverlight 5 with XAML Custom Markup Extensions 9

MVVM View Model View Model 10

MVVM View Model Receives messages from and interacts with Model INotifyPropertyChanged View Model 11

MVVM View Model XAML data binding to Properties and Commands on View Model Receives messages from and interacts with Model INotifyPropertyChanged View Model 12

Code Demo MVVM in action Communication between layers Commanding 13

Abstraction through Services Service Layer - Reusable interfaces for interaction with Model Load and save data Invoke operations with server (REST, RIA data context, etc...) Dependency Injection in View Model constructor View model does not know about implementation specifics Promotes single responsibility, reuse, and testability Allows implementation changes without dependency concerns 14

Code Demo Service layer in action Dependency Injection 15

Additional PRISM Goodness (or MVVM Light, MVVM Toolkit, Caliburn, choose your framework...) DI container (Unity and MEF in PRISM) Decoupled communication through messenger class (IEventAggregator in PRISM) Regions and UI Composition Modularity 16

Code Demo PRISM Extras 17

Questions??? 18