Object-to-
object
mapping


     © Oleksii Dukhno @ Lohika Systems
Complexity of software
Tools for fighting with the
complexity
Abstractions and model
Models, DTO and ViewModels
   data transfer object = model data only

   view model = model data + behavioral aspects

   data transfer object != view model
                    but
   view model = data transfer object
Models, DTO and ViewModels
         Flattening
Why using o-2-o ?
 Encapsulate   Flattening Logic
Why using AutoMapper ?
 Encapsulate   Flattening Logic


 Result = Neater code,
          Simpler support,
          Better understanding
How to use AutoMapper ?
  Mapping                 Mapping
                                              Test
  Through                  Through
                                            Mapping
 Convention              Configuration

                             Projection       Validate
    Source/Destination
                                            Configuration
     Properties Names
        Convention
                           Value Resolver


                           Type Converter

                               Ignore
Mapping Through Convention
Mapping Through Configuration
                                              Ignore




Will throw AutomapperConfigurationException
Mapping Through Configuration
                        Ignore
Mapping Through Configuration
                      Projection
Mapping Through Configuration
                      Projection
Mapping Through Configuration
                   Type Converter
Mapping Through Configuration
                   Type Converter
Mapping Through Configuration
                   Value Resolver
Mapping Through Configuration
                   Value Resolver
Mapping Through Configuration
                   Value Resolver
Using AutoMapper in Allocine-CMS
Using AutoMapper in Allocine-CMS
Emit Mapper Key Sufficiencies
 Really
       fast (close to hand written code)
 Supports mono
Emit Mapper - simplest example
 CODE
Emit Mapper – custom converter
  CODE
Emit Mapper – post processing
 CODE
Emit Mapper vs. AutoMapper

              Style        Facade   Speed      Open Source   Reliability
Emit Mapper   Functional   No       The Best   Yes           Low
AutoMapper    OO           Yes      Good       Yes           High

More Related Content

PPTX
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
PDF
Bdd frameworks code comparison
PDF
Writing Schema based GML with FME
PPSX
Community Tech Days C# 4.0
PPTX
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
PPT
Other Tool
PPTX
Закон про освіту
PPTX
GFX Part 1 - Introduction to GPU HW and OpenGL ES specifications
Bdd frameworks code comparison
Writing Schema based GML with FME
Community Tech Days C# 4.0
Standards-Based Executable UML: Today's Reality and Tomorrow's Promise
Other Tool
Закон про освіту

Viewers also liked (6)

PPT
Деякі проблеми прийняття рішень в освіті
PPT
Описова статистика в R
PDF
Performance in JavaScript
PPTX
Cross-platform interaction
PPT
Оптимізація в освіті і управлінні
PDF
Dansk faktura børs
Деякі проблеми прийняття рішень в освіті
Описова статистика в R
Performance in JavaScript
Cross-platform interaction
Оптимізація в освіті і управлінні
Dansk faktura børs
Ad

Similar to Auto mapper public (20)

PPTX
Object-2-Object mapping, как приправа к вашему проекту
PPTX
AutoMapper
PDF
PPTX
Collaborate12 fce
PPTX
Collaborate12 Fce
PDF
SSTC-2012 BenKBovée 2933 Mapping & Modeling Defense Domain Architectures 26-Apr
PDF
Mapping Manager Datasheetv
PDF
Adaptable Model Versioning using Model Transformation By Demonstration
PPTX
CMIS and Interoperability - AIIM 2009
PDF
Nov 2011 HUG: HParser
PDF
Whats New in FME Desktop 2010
PDF
10 Steps for Managing Cross-System Data Mapping.pdf
PPT
Preparing Your Data for ECM
PPT
Using the BizTalk Mapper
PDF
FAST Search for SharePoint
PDF
Apache Chemistry: The Alfresco Open Source Implementation of CMIS
PDF
EMF.Edit the Force Unleashed!
PDF
45568786 7336983-transformation-20
PDF
MOSKitt Extensibility. Mutatis mutandis
PDF
NHibernate Configuration Patterns
Object-2-Object mapping, как приправа к вашему проекту
AutoMapper
Collaborate12 fce
Collaborate12 Fce
SSTC-2012 BenKBovée 2933 Mapping & Modeling Defense Domain Architectures 26-Apr
Mapping Manager Datasheetv
Adaptable Model Versioning using Model Transformation By Demonstration
CMIS and Interoperability - AIIM 2009
Nov 2011 HUG: HParser
Whats New in FME Desktop 2010
10 Steps for Managing Cross-System Data Mapping.pdf
Preparing Your Data for ECM
Using the BizTalk Mapper
FAST Search for SharePoint
Apache Chemistry: The Alfresco Open Source Implementation of CMIS
EMF.Edit the Force Unleashed!
45568786 7336983-transformation-20
MOSKitt Extensibility. Mutatis mutandis
NHibernate Configuration Patterns
Ad

Recently uploaded (20)

PPTX
Climate Change and Its Global Impact.pptx
PDF
Hazard Identification & Risk Assessment .pdf
PDF
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
PPTX
Module on health assessment of CHN. pptx
PDF
HVAC Specification 2024 according to central public works department
DOCX
Cambridge-Practice-Tests-for-IELTS-12.docx
PDF
Climate and Adaptation MCQs class 7 from chatgpt
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
PPTX
Share_Module_2_Power_conflict_and_negotiation.pptx
PDF
Environmental Education MCQ BD2EE - Share Source.pdf
PDF
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 2).pdf
PPTX
Education and Perspectives of Education.pptx
PPTX
Core Concepts of Personalized Learning and Virtual Learning Environments
PDF
Empowerment Technology for Senior High School Guide
PPTX
Introduction to pro and eukaryotes and differences.pptx
PDF
CRP102_SAGALASSOS_Final_Projects_2025.pdf
PDF
International_Financial_Reporting_Standa.pdf
PPTX
Unit 4 Computer Architecture Multicore Processor.pptx
PDF
Journal of Dental Science - UDMY (2020).pdf
PDF
Race Reva University – Shaping Future Leaders in Artificial Intelligence
Climate Change and Its Global Impact.pptx
Hazard Identification & Risk Assessment .pdf
Skin Care and Cosmetic Ingredients Dictionary ( PDFDrive ).pdf
Module on health assessment of CHN. pptx
HVAC Specification 2024 according to central public works department
Cambridge-Practice-Tests-for-IELTS-12.docx
Climate and Adaptation MCQs class 7 from chatgpt
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 1)
Share_Module_2_Power_conflict_and_negotiation.pptx
Environmental Education MCQ BD2EE - Share Source.pdf
BP 704 T. NOVEL DRUG DELIVERY SYSTEMS (UNIT 2).pdf
Education and Perspectives of Education.pptx
Core Concepts of Personalized Learning and Virtual Learning Environments
Empowerment Technology for Senior High School Guide
Introduction to pro and eukaryotes and differences.pptx
CRP102_SAGALASSOS_Final_Projects_2025.pdf
International_Financial_Reporting_Standa.pdf
Unit 4 Computer Architecture Multicore Processor.pptx
Journal of Dental Science - UDMY (2020).pdf
Race Reva University – Shaping Future Leaders in Artificial Intelligence

Auto mapper public

Editor's Notes

  • #2: Как и в любой другой профессии, прогресс в программировании достигается толь­ко путем обучения (т.е. путём получения получения знаний), причем основынных как на ошибках, так и на удачах — и своих и чужих. В совоём докладе я постараюсь сложить общие знания полученные мной, как из практики, так и из литературы и показать, что иссопльзование инструментов O-to-O маппинга очень полезно в самых разнообразные проектах и системах связанных с разработкой ПО. Целью этого доклада является не глубокий анализ инструментов, а показ их базовых возможностей и представление самой концепции O-to-O маппинга.
  • #3: Безусловно разработка програмного обеспечения - сложный процесс, в течении которого все вовлечённые в него люди сталкиваются с решением разнообразных задач и преодаливают препятсвия разного рода и характера.Но мы также знаем, что не все программные системы сложны. Существует множество программ, которые задумываются, разрабатываются, сопровождаются и используются одним и тем же человеком. Обычно это начинающий программист или профессионал, работающий изолированно.Я не хочу сказать, что все такие системы плохо сделаны или, тем более, усомниться в квалификации их создателей. Но такие системы, как правило, имеют очень ограниченную область применения и короткое время жизни. Обычно их лучше заменить новыми, чем пытаться повторно использовать, переделывать или расширять. Другое дело те программы, которые мы назывемпромышленными программными продуктами. Они применяются для решения самых разных задач, таких, например, как системы с обратной связью, которые управляют или сами управляются событиями физического мира; задачи поддержания целостности информации объемом в сотни тысяч записей при параллельном доступе к ней с обновлениями и запросами; системы управления и контроля за реальными процессами (например, диспетчеризация воздушного или железнодорожного транспорта, медецина), корпоративные приложения (сложность которых обусловленна изо­щренными данными большого объема и бизнес-правилами, логика которых иногда про­сто противоречит здравому смыслу). Системы подобного типа обычно имеют большое время жизни, и большое количество пользователей оказывается в зависимости от их нормального функционирования.Существенная черта промышленной программы - уровень сложности: один разработчик практически не в состоянии охватить все аспекты такой системы. Грубо говоря, сложность промышленных программ превышает возможности человеческого интеллекта. Увы, но сложность, о которой мы говорим, повидимому, присуща всем большим программных системам. Говоря "присуща", я имею в виду, что эта сложность здесь неизбежна: с ней можно справиться, но избавиться от нее нельзя.Конечно, среди нас всегда есть гении, которые в одиночку могут выполнить работу группы обычных людей-разработчиков и добиться в своей области успеха, сравнимого с достижениями Леонардо да Винчи или Исаака Ньютона. Такие люди нам нужны как архитекторы, которые изобретают новые идиомы, механизмы и основные идеи, используемые затем при разработке других систем. Однако, в мире очень мало гениев, и не надо думать, будто в среде программистов их доля выше средней. Несмотря на то, что все мы чуточку гениальны и при нашествии вдохновения многие из нас могут свернуть горы, в промышленном программировании нельзя постоянно полагаться на божественное вдохновение, которое обязательно поможет нам. Поэтому мы исспользуем более надежные способы управления конструированием сложных систем.Основной способуправления конструированием сложных систем был известен еще в древности – и этот способ назыавется divide and conquer (разделяй и властвуй). При проектировании сложной программной системы необходимо разделять ее на все меньшие и меньшие подсистемы, каждую из которых можно совершенствовать независимо. В этом случае мы не превысим пропускной способности человеческого мозга: для понимания любого уровня системы нам необходимо одновременно держать в уме информацию лишь о немногих ее частях (отнюдь не о всех).
  • #4: Я не буду вдаваться в подробности и рассказывать о каждом понятии указанном на этом слайде, я привёл их сдесь, как сгруппированные знания, которые, в моём понимании, являются базой для современной и успешной разработки ПО.Хочется остановиться на следующих и задать вопрос аудитории:OOA, OOD, OOP, DDD, UML, PATTERNS – что объеденяет все эти понятия? Правильно, все эти понятия объяденяются абстрагированием. Абстрагирование является одним из основных методов, используемых для решения сложных задач.
  • #5: Модель представ­ляет собой специально отобранный и сознательно упрощенный запас знаний в структу­рированной форме.
  • #6: DDD layers:PresentationApplicationServiceDomainDTOДостоинства:Спрятанные деталиРазглаживание серии связанных бизнес сущностейУменьшенное колличество вызовов на уровне данныхНедостаткиУвелечение колличества классов и соответсвенно затраты на кодированиеДополнительные вычисленя
  • #7: Flattening – сплющивание, разглаживание. Just a abstract sample.