Object-2-Object mapping, как приправа к вашему проекту
-
Upload
alex-tumanoff -
Category
Technology
-
view
3.611 -
download
3
description
Transcript of Object-2-Object mapping, как приправа к вашему проекту
![Page 1: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/1.jpg)
OBJECT-T
O-OBJE
CT
MAPPIN
G
© O L E K S I I D U K H N O @ L O H I K A S Y S T E M S
![Page 2: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/2.jpg)
COMPLEXITY OF SOFTWARE
![Page 3: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/3.jpg)
ABSTRACTIONS AND MODEL
![Page 4: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/4.jpg)
ABSTRACTIONS AND MODEL
Модель представ ляет собой специально отобранный и сознательно упрощенный запас знаний (набор данных) Представленный в структу рированной форме.
![Page 5: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/5.jpg)
DDD AS THE TOOL
![Page 6: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/6.jpg)
DTO AND VIEW MODEL
DTO• Model data only
View Model• Model data and behavioral
aspects
![Page 7: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/7.jpg)
WHY USING O-2-O WITH DDD?
Layers are independent
Code aligning
Flattening logic encapsulation
![Page 8: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/8.jpg)
RESULTS USING DDD WITH O-2-O ?
Neater code
Simpler support
Better understanding
![Page 9: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/9.jpg)
SAMPLES - DATA LAYER
![Page 10: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/10.jpg)
SAMPLES – SERVICE LAYER
![Page 11: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/11.jpg)
SAMPLES – APPLICATION LAYER
![Page 12: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/12.jpg)
MODELS, DATA TRANSFER OBJECTS AND VIEW MODELS
![Page 13: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/13.jpg)
HOME-GROWN OVER “OPERATOR” KEYWORD
Code template:• public static implicit operator DTO_Type ( Entity_Type
entity)
Open sample
![Page 14: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/14.jpg)
HOME-GROWN OVER EXTENSION METHODS
Code template:• public static DTO_Type ToDTO ( this Entity_Type photo
)
Open sample
![Page 15: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/15.jpg)
HOME-GROWN OVER SEPARATE CLASS
Instructions:• Define static or singleton class• Implement conversion methods explicitly
Open sample
![Page 16: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/16.jpg)
EMIT MAPPER KEY SUFFICIENCIES
Fast (close to hand written code)
Supports mono
Pretty extensible
![Page 17: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/17.jpg)
EMIT OBJECT MAPPERS
![Page 18: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/18.jpg)
EMIT MAPPERS FACTORY
![Page 19: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/19.jpg)
EMIT MAPPER CONFIGURATION
![Page 20: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/20.jpg)
EMIT MAPPER
Standard
Custom converter
Post processing
Custom configurator
![Page 21: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/21.jpg)
OTIS
Metadata
Configuration file
Custom mapping providers
![Page 22: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/22.jpg)
OTIS
Metadata
Configuration file
Custom mapping providers
No DateTime and nullable value types support!
![Page 23: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/23.jpg)
AUTOMAPPER
Mapping Through
Convention
Source/Destination Properties Names Convention
Mapping Through
Configuration
Projection
Type Converter
Value Resolver
Ignore
Test Mapping
Validate Configurati
on
![Page 24: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/24.jpg)
USING AUTOMAPPER IN THE ALLOCINE-CMS
![Page 25: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/25.jpg)
USING AUTOMAPPER IN THE ALLOCINE-CMS
![Page 26: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/26.jpg)
THE OTHERS OPTIONS
Entities to DTOs
T4 templates – To be continued
![Page 27: Object-2-Object mapping, как приправа к вашему проекту](https://reader033.fdocuments.us/reader033/viewer/2022051412/549fd806ac795977328b4600/html5/thumbnails/27.jpg)
MAPPERS SUMMARY TABLE
/// Style Facade
Speed
Open Source
Reliability
Silverlight
Manuals
Cost
Emit Mapp
er
Procedural
No The Best
Yes Low Yes Poor Mid
Auto Mapp
er
Object Oriented
Yes Good Yes High Yes Good Low
Home-
grown
Any Depends
Depends
Could be
Depends Yes Depends High