@glasslu @mikeedwards83 glass v4, more info for your glass ... 2015 - glass v… · sitecore user...
TRANSCRIPT
![Page 1: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/1.jpg)
Glass V4, More Info For Your Solution
Mike Edwards
Glass
@mikeedwards83
@glasslu
Sitecore User Group Conference 2015 1
![Page 2: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/2.jpg)
Glass V4, More Info For Your Solution
ModelingMike Edwards
Glass
@mikeedwards83
@glasslu
Sitecore User Group Conference 2015 2
![Page 3: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/3.jpg)
Hello!
Sitecore User Group Conference 2015 3
Mike EdwardsSitecore MVP@mikeedwards83@glasslu
![Page 4: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/4.jpg)
Modelling
Sitecore User Group Conference 2015 4
NOT THIS KIND
![Page 5: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/5.jpg)
Modelling
Sitecore User Group Conference 2015 5
THIS KIND
![Page 6: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/6.jpg)
Modelling
• Different Patterns
• Common Mistakes
• Techniques
Sitecore User Group Conference 2015 6
![Page 7: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/7.jpg)
Common Patterns
• Active Record
• Data Mapping
• Wrapping
Sitecore User Group Conference 2015 7
![Page 8: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/8.jpg)
Active Record Pattern
In software engineering, the active record pattern is an
architectural pattern found in software that stores in-memory
object data in relational databases. The interface of an object
conforming to this pattern would include functions such as
Insert, Update, and Delete.
- Wiki, Martin Fowler
Sitecore User Group Conference 2015 8
![Page 9: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/9.jpg)
Active Record Pattern
Sitecore User Group Conference 2015 9
The Example
![Page 10: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/10.jpg)
Active Record Pattern - Pro’s
Simple to use:
Sitecore User Group Conference 2015 10
![Page 11: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/11.jpg)
Active Record Pattern - Pro’s
Simple to pass around:
Sitecore User Group Conference 2015 11
![Page 12: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/12.jpg)
Hidden side effects:
Active Record Pattern - Con’s
Sitecore User Group Conference 2015 12
Surprise!!Pointless
![Page 13: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/13.jpg)
Active Record Pattern - Cons
Coupled to data source:
Sitecore User Group Conference 2015 13
![Page 14: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/14.jpg)
Active Record Pattern - Con’s
Complex:
Sitecore User Group Conference 2015 14
![Page 15: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/15.jpg)
Active Record Pattern - Con’s
Hard to test:
Sitecore User Group Conference 2015 15
How do we mock this??
Ask the FakeDBGuys
![Page 16: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/16.jpg)
Data Mapper Pattern
Data Mapper is a Data Access Layer that performs bidirectional
transfer of data between a persistent data store (often a
relational database) and an in memory data representation (the
domain layer). The goal of the pattern is to keep the in memory
representation and the persistent data store independent of
each other and the data mapper itself.
- Wiki, Martin Fowler
Sitecore User Group Conference 2015 16
![Page 17: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/17.jpg)
Data Mapper Pattern
Sitecore User Group Conference 2015 17
The Example
![Page 18: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/18.jpg)
Data Mapper Pattern
Sitecore User Group Conference 2015 18
The Example
![Page 19: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/19.jpg)
Data Mapper Pattern
Sitecore User Group Conference 2015 19
The Example
![Page 20: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/20.jpg)
Data Mapper Pattern
Simple Models
Sitecore User Group Conference 2015 20
![Page 21: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/21.jpg)
Data Mapper Pattern - Pro’s
Easy Testing
Sitecore User Group Conference 2015 21
![Page 22: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/22.jpg)
Data Mapper Pattern - Pro’s
Clear Separation
Sitecore User Group Conference 2015 22
My World Their World
![Page 23: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/23.jpg)
Data Mapper Pattern - Pro’s
Store Anywhere
Sitecore User Group Conference 2015 23
![Page 24: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/24.jpg)
Data Mapper Pattern - Pro’s
Clear Control
Sitecore User Group Conference 2015 24
Hello!!
![Page 25: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/25.jpg)
Data Mapper Pattern - Con’s
Map Unused Data
Sitecore User Group Conference 2015 25
![Page 26: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/26.jpg)
Data Mapper Pattern - Con’s
Expensive Upfront
Sitecore User Group Conference 2015 26
![Page 27: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/27.jpg)
Data Mapper Pattern - Con’s
Disconnection from source
Sitecore User Group Conference 2015 27
Where the hell did youcome from?
![Page 28: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/28.jpg)
Wrappers Models
Wraps the underlying data source and converts the data on
demand. The internal model contains a reference to the original
data source which it uses to perform data conversion.
Sitecore User Group Conference 2015 28
![Page 29: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/29.jpg)
Wrappers Models
Sitecore User Group Conference 2015 29
![Page 30: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/30.jpg)
Wrappers Models - Pro’s
Cheap Up Front
Sitecore User Group Conference 2015 30
No work done here!
Only accessed propertiesrequire conversion.
![Page 31: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/31.jpg)
Wrappers Models - Pro’s
Hidden State Changes
Sitecore User Group Conference 2015 31
What happens if this changes
![Page 32: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/32.jpg)
Wrappers Models - Pro’s
Hidden State Changes
Sitecore User Group Conference 2015 32
Are these the same?
![Page 33: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/33.jpg)
Wrappers Models - Con’s
Testing Difficulty
Sitecore User Group Conference 2015 33
Can’t test becauseof this.
Have to write data conversion code
Need to understandthis
![Page 34: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/34.jpg)
Wrappers Models - Meet my partner
Coupling
Sitecore User Group Conference 2015 34
I ask for this
![Page 35: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/35.jpg)
Wrappers Models - Meet my partner
Coupling
Sitecore User Group Conference 2015 35
I get this
![Page 36: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/36.jpg)
Common Problems
• Anemic domain model
• Bloated domain model
• Skinny domain model
• Indiscreet domain model
Sitecore User Group Conference 2015 36
![Page 37: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/37.jpg)
Anemic Domain Model
Anemic domain model is the use of a software domain model
where the domain objects contain little or no business logic
(validations, calculations, business rules etc).
- Wiki, Martin Fowler
Sitecore User Group Conference 2015 37
![Page 38: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/38.jpg)
Anemic Domain Model - Example
Sitecore User Group Conference 2015 38
Feed Me!!
![Page 39: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/39.jpg)
Anemic Domain Model
Sitecore User Group Conference 2015 39
![Page 40: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/40.jpg)
Bloated Domain Model
A Bloated Domain Model is the use of a software domain model
that contains a large number of properties that are never access
or required by the application.
- Mike E
Sitecore User Group Conference 2015 40
![Page 41: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/41.jpg)
Bloated Domain Model
Sitecore User Group Conference 2015 41
![Page 42: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/42.jpg)
Bloated Domain Model
Fixed
Sitecore User Group Conference 2015 42
![Page 43: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/43.jpg)
Skinny Domain Model
A Skinny Domain Model is the use of a software domain model
that contains one or very few properties.
- Mike
Sitecore User Group Conference 2015 43
![Page 44: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/44.jpg)
Skinny Domain Model
Skinny Domain model
Sitecore User Group Conference 2015 44
![Page 45: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/45.jpg)
Skinny Domain Model
Fixed
Sitecore User Group Conference 2015 45
USE THE RAW API!
![Page 46: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/46.jpg)
Indiscreet Domain Model
A Indiscreet Domain Model is the use of a software domain
model that exposes all it’s properties publically even if they
should or should not be accessed by external code.
- Mike E
Sitecore User Group Conference 2015 46
![Page 47: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/47.jpg)
Indiscreet Domain Model
Sitecore User Group Conference 2015 47
![Page 48: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/48.jpg)
Indiscreet Domain Model
Fixed
Sitecore User Group Conference 2015 48
![Page 49: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/49.jpg)
Techniques
Sitecore User Group Conference 2015 49
• Interface Models
• Template Models
• Rendering Models
• MVC
• MVP
![Page 50: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/50.jpg)
Interface Models
Sitecore User Group Conference 2015 50
Domain models defined using interfaces only. Interface are
dynamically implemented at run time using a proxy framework.
![Page 51: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/51.jpg)
Interface Models
Sitecore User Group Conference 2015 51
![Page 52: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/52.jpg)
Interface Models
• Multiple Inheritance
• Very little code
• Often Anemic
• Indiscreet
Sitecore User Group Conference 2015 52
![Page 53: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/53.jpg)
Interface Models
Sitecore User Group Conference 2015 53
Spoofing Logic
![Page 54: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/54.jpg)
Template Models
Sitecore User Group Conference 2015 54
![Page 55: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/55.jpg)
Template Models
• Code generation friendly
• Easy to sync
• Bloated
• Indiscreet
• Anemic
Sitecore User Group Conference 2015 55
![Page 56: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/56.jpg)
Rendering Models
Sitecore User Group Conference 2015 56
![Page 57: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/57.jpg)
Rendering Models
• Use case specific
• Minimum number of properties
• Custom methods
• Model explosion
• Magic Properties Problem
• Skinny
Sitecore User Group Conference 2015 57
![Page 58: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/58.jpg)
MVC Models
Model–view–controller (MVC) is a software architectural
pattern for implementing user interfaces. It divides a given
software application into three interconnected parts, so as to
separate internal representations of information from the ways
that information is presented to or accepted from the user.
- - Wiki
Sitecore User Group Conference 2015 58
![Page 59: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/59.jpg)
MVC Models
What do we pass to the view?
Sitecore User Group Conference 2015 59
![Page 60: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/60.jpg)
MVC Models
The View Model
• Explicitly defines the contract
• Easy to expand
• Use convention
• Separates Domain from View
Sitecore User Group Conference 2015 60
![Page 61: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/61.jpg)
MVC Models
Sitecore User Group Conference 2015 61
Easy to find
![Page 62: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/62.jpg)
MVC Models
Sitecore User Group Conference 2015 62
Easy to identify!
![Page 63: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/63.jpg)
And don’t forget MVP!
MVP is a user interface architectural pattern engineered to
facilitate automated unit testing and improve the separation of
concerns in presentation logic.
- Wiki
Sitecore User Group Conference 2015 63
![Page 64: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/64.jpg)
MVP
Sitecore User Group Conference 2015 64
![Page 65: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/65.jpg)
MVP is similar to MVC
Sitecore User Group Conference 2015 65
![Page 66: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/66.jpg)
MVP or MVC?
Sitecore User Group Conference 2015 66
![Page 67: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/67.jpg)
Finished!!
Questions?
Sitecore User Group Conference 2015 67
![Page 68: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/68.jpg)
68
Find Me:
Sitecore User Group Conference 2015 68
Mike EdwardsSitecore MVP
@mikeedwards83@glasslu
![Page 69: @glasslu @mikeedwards83 Glass V4, More Info For Your Glass ... 2015 - Glass V… · Sitecore User Group Conference 2015 1. Glass V4, More Info For Your Solution Modeling Mike Edwards](https://reader033.vdocuments.us/reader033/viewer/2022043008/5f99b1c5b94f2b29793e15ef/html5/thumbnails/69.jpg)
[Reserved for sponsor logo’s]
Sitecore User Group Conference 2015 69
Sitecore User Group Conference 2015 69
Thank you