john sotiropoulos chief architect, metastorm – part of opentext @metastorm [email protected]...

28

Upload: annika-hobson

Post on 01-Apr-2015

215 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner
Page 2: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

John SotiropoulosChief Architect, Metastorm – part of OpenText

@metastorm

http://www.processmatters.com

[email protected]

MVVM In Real Life Partner logo to

go here

Page 3: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

MVVM often raises temperatures, causes high spirited debates, and can lead to ruined pub lunches.

Looking at how and why is being used in commercial enterprise

applications may provide a useful insight.

Page 4: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Who is Metastorm?

• A leader in Enterprise Architecture (EA), Business Process Analysis (BPA) and Business Process Management (BPM).

• Brings people, technology, and processes together in order to solve specific problems and connect strategy to execution.

• Recently acquired by leading Content Management vendor OpenText.

Page 5: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Enterprise ArchitectureForrester Wave Q109

Business Process AnalysisForrester Wave Q109

IT PlanningForrester Wave Q109

Business Process Management Suites Forrester Wave Q310

Leaders in all process-related markets

Business Process Analysis Magic Quadrant Q110

Enterprise ArchitectureMagic Quadrant Q410

Business Process Management SuitesMagic Quadrant Q410

Page 7: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

MVVM raised temperatures• Confining the MVVM

discussion to a “design pattern” led to conflicting views.

• But MVVM is not just another technique.

• MVVM liberates the design of User Experience to bring the user and developer together.

Design Patterns are important!

It’s too complex

No pub lunch with you

Why this extra work?

Page 8: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Where we used MVVM?The Silverlight-based Business Workspace, is a common framework for building all our end-user applications

Including our free Azure M3 modeling application.

http://m3.cloudapp.net/

Page 9: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

M3/ Smart Business WorkspaceIntro Demo

Page 10: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Initial Development Workflows

User

DesignerDeveloper

Prototype & Develop

Design Mockups

Review Describe

Page 11: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Some early disconnectsMock up Implementation

Page 12: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

…and pre-MVVM mock ups

Page 13: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Key Concerns

• Developers, and not UI Experts, were designing the UI.

• They were interpreting graphical mockups and it caused disconnects.

• We introduced Silverlight mockups which improved communication and reduced cycles but the interactivity was limited and it the design-abilty was often lost.

• Merging mock-ups caused integration defects and delayed user reviews and acceptance.

Page 14: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

User Designer

Developer

Real / “Live” UI

and so we moved to this workflow

Widget UI (XAML View)ViewModel

ModelREST

Service

Page 15: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Initial MVVM Adoption • Only Notify Property Changed Implemented, e.g

public class GridViewModel : INotifyPropertyChanged{        private IList _rows = new ObservableCollection<object>();        private readonly Func<object> _createNewRow;         public GridViewModel()        {            _createNewRow = () => new GridRowModel(null);            AddGridRowCommand = new DelegateCommand<object>

(ExecuteAddGridRowCommand);} 

Page 16: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Our MVVM Adoption Evolved• Moved towards re-use using base class that only wrapped

INotifyPropertyChange public class ViewModelLight : INotifyPropertyChanged, ICommandManager

    {        public event PropertyChangedEventHandler PropertyChanged;  …… }

• Then Expanded to a home-grown MVVMLight and an MVVM View Model Classpublic class ObservableObject : DependencyObject, INotifyPropertyChanged,

IDataErrorInfo {. Core object.} public abstract class ViewModel : ObservableObject, IViewModel {…}

• Learn from others and re-use: we are now looking to adopt MVVMLight

Page 17: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

It was not all plain sailing…

• Steep learning curve / additional effort.

• Overkill for some simple cases where UI is not all that critical.

• Technical challenges in complex interactions (especially widget to widget events).

• Verbose duplication in data bindings and standard approaches in a large and distributed team– Homegrown equivalent to MVVMLight.

Page 18: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

But we also noticed…• MVVM decoupled UI and facilitated agile responses to changes.

• UIs designed by the UI specialist topped, regularly, user acceptance.

• Using MVVM educated our market-eers and users to what is feasible and made them more educated on the controls available.

• MVVM-designed features were more stable and had more unit tests and automation tests.

Page 19: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Both M3 and the Smart Business Workspace were the highlight of our user conference and have received a great response from analysts and customers alike.

MVVM has been critical in making these products successful.

It forced a user-centric shift in our software development

Page 20: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Taking MVVM further

Page 21: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Dynamic MVVM

• We took MVVM a step further…

• Applied it to business processes to allow end-user mash up extensibility.

• Users can create their own data mash-ups, connected widgets, and interactive storyboards.

Page 22: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Data m

ashups(REST + O

DATA)

User Defined UI – Mock up of needs

Polished UI inBlend

Auto generated ViewModel

Model

DeploymentService

Dynamic MVVM overview

Page 23: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

LWP / Dynamic MVVM Demo

Page 24: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

Some lessons learned• Round tripping too complex for full UI round tripping.

• MVVM Requires Product UI Designer skills to get real value.

• ODATA and a centralized model management helps ViewModel generation.

• REST ODATA Services are easily accessible and help portability of the UI for the developer /designer round-trip.

• Eventing can become complex and needs a central event bus.

Page 25: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

What we think now• The learning, investment, and challenges is worth it, if the UI is important.

• Re-Investing the gains in UI productivity in unit test and robust app logic is a good way to highlight the value of separating concerns.

• MVVM is a product development issue, not just a technical choice.

• Application Design-ability, is a trend that will move to other platforms, including HTML5

Page 26: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

What’s cooking in our research labs• We are looking at using the separation of concerns in more specialised

Business Process Design and management and beyond Silverlight.• Using ODATA and jQuery for MVVM-like approach in HTML/HTML5.

Metastorm BPM Designer

Process-connected HTML

Page 27: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

John SotiropoulosChief Architect, Metastorm – part of OpenText

@metastorm

http://www.processmatters.com

[email protected]

Partner logo to

go here

Page 28: John Sotiropoulos Chief Architect, Metastorm – part of OpenText @metastorm  jsotirop@opentext.com MVVM In Real Life Partner

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Partner logo to

go here