Shailen Sukul Senior Solutions Architect EMC BSc | Mct | Mcpd (.Net 2/3.5) | Mcts (Sharepoint (MOSS/WSS), Biztalk, Web, Win, Dist Apps) | Mcsd.NET | Mcsd.

Slides:



Advertisements
Similar presentations
Expression Blend 4 – deep dive
Advertisements

Developing HTML5 Application using MVVM pattern Pekka Ylenius.
1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Design Patterns and ColdFusion: Exploring Object Based Programming Dan Blackman
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Real world Windows Phone development Igor
Object-Oriented Analysis and Design
Building Silverlight Applications Using the MVVM pattern An Introduction by Peter Messenger Senior Developer – Qmastor
Structure of a web application1 Dr Jim Briggs. MVC Structure of a web application2.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.

By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
Laurent Bugnion Senior Software Engineer Siemens Building Technologies.
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Chapter 13 Starting Design: Logical Architecture and UML Package Diagrams.
Presenter - Donn Felker.  Senior Consultant for Microsoft Gold Certified Partner- Statêra.  8 years of experience in developing and architecting enterprise.
@benday #vslive Better Unit Tests through Design Patterns: Repository, Adapter, Mocks, and more… Benjamin
NOTE: To change the image on this slide, select the picture and delete it. Then click the Pictures icon in the placeholder to insert your own image. WEB.
Domain-Driven Design using the ADO.NET Entity Framework Tim McCarthy Principal Engineer, InterKnowlogy
MVC and MVP. References enter.html enter.html
Model View Controller (MVC) Rick Mercer with a wide variety of others 1.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Building an Offline Smart Client using Domain-Driven Design Principles Tim McCarthy.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Silverlight Technology. Table of Contents 1.What is Silverlight Technology? 2.Silverlight Overview. 2.1 How it works 2.2 Silverlight development tools.
DaveAndAl.net Do Application Design Patterns Make Sense in ASP.NET? Alex Homer You may like to write these down now...
Object Oriented Software Development 9. Creating Graphical User Interfaces.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Architecture.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 12-5 Software Engineering Design Goals.
3461 Model-View Controller Advanced GUI concepts.
Object-Oriented Software Engineering Practical Software Development using UML and Java Design Patterns – Part 2 Sources: Chapter 6: Using Design Patterns,
Office Business Applications Workshop Defining Business Process and Workflows.
Module 1 Windows Client Application Design. Module Overview Windows Client Technologies Architectural Patterns.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Windows Store apps… lots of choices Windows Store Apps Communication & Data Application Model Devices & Printing WinRT APIs Graphics & Media JavaScript.
Model View Controller (MVC) Bigger than a Pattern: It’s an Architecture Rick Mercer with help from many of others 1.
Overview of the MVVM pattern for Silverlight and WPF.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Model View ViewModel Architecture. MVVM Architecture components.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
MVVM Pattern Mahender Senior Software Engineer United Health Group.
Programming with MVVM Miguel A. Castro Architect -
Understanding Dependency Injection… and those pesky containers Miguel A. Castro Architect -
Working in a Mobile App Development Environment Lesson 2.
Model View Presenter Design Pattern Jay Smith PMO Architect and Evangelist Tyson Foods, Inc.
Adam Schultz MVVM and WPF. MVVM Model, View, ViewModel A software architecture designed to separate out User Interface design, Business Logic, and Data.
Joy Rathnayake Senior Architect – Virtusa Pvt. Ltd.
In Windows 8 Store Applications
Real world Windows Phone development
Structure of a web application
Better Unit Tests through Design Patterns: Repository, Adapter, Mocks, and more… Benjamin
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Software Architecture & Difference from Design
Automated UI Testing with Seleno.
Top 10 mistakes developers do with modern applications
Build Windows 10 UWP MVVM Apps with Prism
Building Web Applications with Microsoft ASP
ADO.NET Entity Framework Marcus Tillett
Unit Testing & Test-Driven Development for Mere Mortals
Introduction to the MVVM Pattern
Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Dr. Awad Khalil Computer Science Department AUC
Rich single page applications with SharePoint
Real World Developer Testing
Starting Design: Logical Architecture and UML Package Diagrams
Unit Testing & Test-Driven Development for Mere Mortals
Dr. Awad Khalil Computer Science Department AUC
Tech Ed North America /6/2019 2:07 PM Required Slide
An Introduction to the Model-View-ViewModel Pattern
Logical Architecture & UML Package Diagrams
Presentation transcript:

Shailen Sukul Senior Solutions Architect EMC BSc | Mct | Mcpd (.Net 2/3.5) | Mcts (Sharepoint (MOSS/WSS), Biztalk, Web, Win, Dist Apps) | Mcsd.NET | Mcsd | Mcad)

In addition to that, the target framework (4.0) on the unit test project in Visual Studio 2010 cannot be changed which makes testing against SharePoint 2010 (.Net 3.5) difficult.

…For your information, there's a lot more to ogres than people think... ….Ogres have layers. Onions have layers. You get it? We both have layers…

Model-view-presenter (MVP) is a user interface design pattern engineered to facilitate automated unit testing and improve the separation of concerns in presentation logic. The model is an interface defining the data to be displayed or otherwise acted upon in the user interface. The view is an interface that displays data (the model) and routes user commands (events) to the presenter to act upon that data. The presenter acts upon the model and the view. It retrieves data from repositories (the model), persists it, and formats it for display in the view.

The Model View ViewModel (MVVM) is an architectural pattern used in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler.

Elements of the MVVM pattern include: Model: as in the classic MVC pattern, the model refers to either (a) an object model that represents the real state content (an object-oriented approach), or (b) the data access layer that represents that content (a data-centric approach). View: as in the classic MVC pattern, the view refers to all elements displayed by the GUI such as buttons, windows, graphics, and other controls. ViewModel: the ViewModel is a “Model of the View” meaning it is an abstraction of the View that also serves in data binding between the View and the Model. It could be seen as a specialized aspect of what would be a Controller (in the MVC pattern) that acts as a data binder/converter that changes Model information into View information and passes commands from the View into the Model. The ViewModel exposes public properties, commands, and abstractions. The ViewModel has been likened to a conceptual state of the data as opposed to the real state of the data in the Model. Controller: some references for MVVM also include a Controller layer or illustrate that the ViewModel is a specialized functional set in parallel with a Controller, while others do not. This difference is an ongoing area of discussion regarding the standardization of the MVVM pattern.

Although MVVM was primarily designed for WPF/Silverlight, the basic principles of modularity and separation of concerns can be applied to SharePoint development, barring some technical challenges. In this article, I will show you how to structure a SharePoint project to derive a lot of the same benefits out of MVVM. Lets take a look at how the sample webpart project can be retrofitted into the MVVM paradigm.

As you can see, with a little refactoring, you can get test coverage for a large percentage of your SharePoint code with little effort. Unit testing is does not depend on having access to the SharePoint context, this is now delegated to the web service. There are still gaps in testing the ViewModel (i.e. the javascript controller). There are fameworks like JSUnit that allow testing javascript and will be explored in a later article.JSUnit