wałdis iljuczonok (aka technical fellow)

Size: px
Start display at page:

Download "wałdis iljuczonok (aka technical fellow)"

Transcription

1

2 wałdis iljuczonok (aka technical fellow) tech guy at getadigital.com (Microsoft.Net + Episerver)

3 Dependency Injection in Episerver

4

5

6 Why?

7

8 Definition

9 What is

10 public class Class1 { public Class1() { } public Answer Method1(string directory) { //... } } return...;

11 «DI is a set of principles and patterns that enable loose coupling *» * -

12

13

14 Patterns

15 public class Class1 { private readonly ISomeService _service; public Class1(ISomeService service) { _service = service; } Constructor Injection Property Injection Method Injection } public IAnotherService AnotherService { private get; set; } public Answer Method1(IThirdService thridservice) { return thridservice.couldbe()? Answer.Yes() : Answer.No(); }

16 public class Class1 { private readonly ISomeService _service; public Class1(ISomeService service) { _service = service; } } public IAnotherService AnotherService { private get; set; } public Answer Method1(IThirdService thridservice) { return thridservice.couldbe()? Answer.Yes() : Answer.No(); } Ambient Context

17

18 Composition

19 Layered

20 Onion

21 hexagonal

22 pizza

23 Main(string[] args) Global.asax & IControllerFactory Startup.cs & RouterMiddleware Application.OnStartup..rely on

24 RRR

25 Anti-Patterns

26 Control

27 public class Class1 { private readonly ISomeService _service; public Class1(ISomeService service) { _service = service; } } public IAnotherService AnotherService { private get; set; } public Answer Method1(IThirdService thridservice) { return thridservice.couldbe()? Answer.Yes() : Answer.No(); }

28 public class Class1 { private readonly ISomeService _service; public Class1() { _service = new SomeService(); } } public IAnotherService AnotherService { private get; set; } public Answer Method1() { var thridservice = new ThirdService(); return thridservice.couldbe()? Answer.Yes() : Answer.No(); }

29 Control Freak Bastard

30 public class Class1 { private readonly ISomeService _service; public Class1() { _service = new SomeService(); } } public IAnotherService AnotherService { private get; set; } public Answer Method1() { var thridservice = new ThirdService(); return thridservice.couldbe()? Answer.Yes() : Answer.No(); }

31 public class Class1 { private readonly ISomeService _service; public Class1(ISomeService service) { _service = service; } public Class1() : this(new SomeService()) { _service = new SomeService(); } } public IAnotherService AnotherService { private get; set; } public Answer Method1() { var thridservice = new ThirdService(); return thridservice.couldbe()? Answer.Yes() : Answer.No(); }

32 Control Freak Bastard Injections Constrained

33

34 Control Freak Bastard Injections Constrained Construction Service

35

36

37

38 Don t ask, we will call you! Hollywood Principle

39 @tech_fellow

40 DI (IoC)

41 Autofac Caliburn.Micro Catel DryIoc DryIocZero Dynamo ffastinjector Funq Grace Griffin HaveBox IfInjector LightCore LightInject LinFu Maestro Mef Mef2 MicroSliver Microsoft.Extensions.DependencyInjection Mugen Munq Ninject Petite SimpleInjector Spring.NET Stashbox StructureMap StyleMVVM TinyIoC Unity

42 Personal Experience with DI (Episerver)

43 Scheduled

44 Initialization

45 Episerver Forms

46 Razor

47 Extension

48 Episerver DI

49 Episerver Developer Tools

50 DI Friendly Libraries

51 Conforming

52

53 *.Ninject *.StructureMap *.Unity *.<your-container>

54 *.Ninject *.StructureMap *.Unity *.<your-container>

55 Constructor

56 DI Friendly Frameworks

57 [ServiceConfiguration(

58

59

60

61 Extra Bonus with DI

62

63 russian doll model

64 Validation Pre/post processing Authorization Logging Auditing Event dispatching Notifications Unit of

65 Decorators vs

66 Create loose-coupling code Demand dependencies from consumer Leverage DI container features Look for

67 Be a BOY

68

69

DI Why? Getting a Grip on Dependency Injection. Jeremy Clark

DI Why? Getting a Grip on Dependency Injection. Jeremy Clark DI Why? Getting a Grip on Dependency Injection Jeremy Clark www.jeremybytes.com @jeremybytes What Is Dependency Injection? Dependency Injection is a software design pattern that allows a choice of component

More information

Build Testable Client and Service Applications

Build Testable Client and Service Applications Build Testable Client and Service Applications Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director MVP

More information

Dependency Injection with ObjectPoolManager

Dependency Injection with ObjectPoolManager Dependency Injection with ObjectPoolManager Recently I got my hands over some of the IOC tools available for.net and really liked the concept of dependency injection from starting stage of application

More information

Presented by Jeremy Clark ABSTRACT ART GETTING ABSTRACTION JUST RIGHT

Presented by Jeremy Clark   ABSTRACT ART GETTING ABSTRACTION JUST RIGHT Presented by Jeremy Clark www.jeremybytes.com ABSTRACT ART GETTING ABSTRACTION JUST RIGHT A Good Design is like A Piece of Art Geek & Poke http://goo.gl/ifd53l ABSTRACTION IS AWESOME! Maintain Extend Test

More information

AR.04 Composite Application Guidance for WPF (aka Prism ) Brian Noyes IDesign Inc (www.idesign.net)

AR.04 Composite Application Guidance for WPF (aka Prism ) Brian Noyes IDesign Inc (www.idesign.net) AR.04 Composite Application Guidance for WPF (aka Prism ) Brian Noyes IDesign Inc (www.idesign.net) brian.noyes@idesign.net About Brian Chief Architect, IDesign Inc. (www.idesign.net) Microsoft Regional

More information

Composite Application Guidance for WPF and Silverlight (AKA Prism 2 )

Composite Application Guidance for WPF and Silverlight (AKA Prism 2 ) Composite Application Guidance for WPF and Silverlight (AKA Prism 2 ) Brian Noyes www.idesign.net About Brian Chief Architect, IDesign Inc. (www.idesign.net) Microsoft Regional Director / MVP Publishing

More information

Clean Code Why Clean Code matters

Clean Code Why Clean Code matters Silicon Valley Code Camp Clean Code Why Clean Code matters Foothill College, October 9 nd 2011 Theo Jungeblut Senior Software Developer at Omnicell Inc. in Mountain View Has been designing and implementing.net

More information

Design patterns using Spring and Guice

Design patterns using Spring and Guice Design patterns using Spring and Guice Dhanji R. Prasanna MANNING contents 1 Dependency 2 Time preface xv acknowledgments xvii about this book xix about the cover illustration xxii injection: what s all

More information

Design Patterns. CSC207 Fall 2017

Design Patterns. CSC207 Fall 2017 Design Patterns CSC207 Fall 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe the

More information

GitHub code samples. Appendix B

GitHub code samples. Appendix B Appendix B GitHub code samples The vast majority of the code samples in this book were taken from Microsoft Visual Studio 2013 solutions. Although not all of them are directly runnable, they can all be

More information

http://www.arload.net Framework is.. Framework is Douglas C. Schmidt Says.. Frameworks define semi-complete application that embody domain-specific object structures and functionality. Libraries is.. Application

More information

MVC / MVP Reid Holmes

MVC / MVP Reid Holmes Material and some slide content from: - Krzysztof Czarnecki - Ian Sommerville - Head First Design Patterns MVC / MVP Reid Holmes [Image from: http://merroun.wordpress.com/2012/03/28/mvvm-mvp-and-mvc-software-patterns-againts-3-layered-architecture/

More information

Top 5 Tips to Excel as an Episerver Developer

Top 5 Tips to Excel as an Episerver Developer 25 th October 2017 Top 5 Tips to Excel as an Developer Moderator: Marc Erodotou Presenter: Mark Price Presenter: Mark Price Moderator: Marc Erodotou Copyright AB 1 Top 5 Tips to Excel as an Developer Agenda

More information

Design Patterns. CSC207 Winter 2017

Design Patterns. CSC207 Winter 2017 Design Patterns CSC207 Winter 2017 Design Patterns A design pattern is a general description of the solution to a well-established problem using an arrangement of classes and objects. Patterns describe

More information

Simple Injector Documentation

Simple Injector Documentation Simple Injector Documentation Release 2 Simple Injector Contributors November 09, 2014 Contents 1 Quick Start 3 1.1 Overview................................................. 3 1.2 Getting started..............................................

More information

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP

Object oriented programming. Encapsulation. Polymorphism. Inheritance OOP OOP Object oriented programming Polymorphism Encapsulation Inheritance OOP Class concepts Classes can contain: Constants Delegates Events Fields Constructors Destructors Properties Methods Nested classes

More information

Dependency Injection & Design Principles Recap Reid Holmes

Dependency Injection & Design Principles Recap Reid Holmes Material and some slide content from: - Krzysztof Czarnecki - Ian Sommerville - Head First Design Patterns Dependency Injection & Design Principles Recap Reid Holmes REID HOLMES - SE2: SOFTWARE DESIGN

More information

1 Software Architecture

1 Software Architecture Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to

More information

Dependency Injection & Design Principles Recap Reid Holmes

Dependency Injection & Design Principles Recap Reid Holmes Material and some slide content from: - Krzysztof Czarnecki - Ian Sommerville - Head First Design Patterns Dependency Injection & Design Principles Recap Reid Holmes REID HOLMES - SE2: SOFTWARE DESIGN

More information

Design Patterns B. Reid Holmes. Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book

Design Patterns B. Reid Holmes. Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns B Reid Holmes Lecture 15 - Thursday November 10 2011. GoF design patterns $ %!!!! $ "!

More information

Application Architectures, Design Patterns

Application Architectures, Design Patterns Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term

More information

JavaScript. Training Offer for JavaScript Introduction JavaScript. JavaScript Objects

JavaScript. Training Offer for JavaScript Introduction JavaScript. JavaScript Objects JavaScript CAC Noida is an ISO 9001:2015 certified training center with professional experience that dates back to 2005. The vision is to provide professional education merging corporate culture globally

More information

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module Java Platform, Enterprise Edition 5 (Java EE 5) Core Java EE Java EE 5 Platform Overview Java EE Platform Distributed Multi tiered Applications Java EE Web & Business Components Java EE Containers services

More information

Implementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc.

Implementing MVVM in Real World ArcGIS Server Silverlight Applications. Brandon Copeland LJA Engineering, Inc. Implementing MVVM in Real World ArcGIS Server Silverlight Applications Brandon Copeland LJA Engineering, Inc. 1 Agenda / Focused Topics Application Demo Model-View-ViewModel (MVVM) What is MVVM? Why is

More information

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009

CS 349 / SE 382 Design Patterns. Professor Michael Terry January 21, 2009 CS 349 / SE 382 Design Patterns Professor Michael Terry January 21, 2009 Today s Agenda More demos! Design patterns CS 349 / SE 382 / 2 Announcements Assignment 1 due Monday at 5PM! CS 349 / SE 382 / 3

More information

Authorization in ASP.NET Core. Brock Allen

Authorization in ASP.NET Core. Brock Allen Authorization in ASP.NET Core Brock Allen brockallen@gmail.com http://brockallen.com @BrockLAllen Authorization in ASP.NET Core Complete re-write support for unauthorized vs forbidden better separation

More information

SOLID DESIGN PATTERNS FOR MERE MORTALS

SOLID DESIGN PATTERNS FOR MERE MORTALS SOLID DESIGN PATTERNS FOR MERE MORTALS Philip Japikse (@skimedic) skimedic@outlook.com www.skimedic.com/blog Microsoft MVP, ASPInsider, MCSD, MCDBA, CSM, PSM, PSD Consultant, Teacher, Writer Phil.About()

More information

Prism Composite Application Guidance

Prism Composite Application Guidance Prism Composite Application Guidance Brian Noyes www.idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director (www.theregion.com) Microsoft MVP Silverlight Publishing

More information

Binghamton University. CS-140 Fall Dynamic Types

Binghamton University. CS-140 Fall Dynamic Types Dynamic Types 1 Assignment to a subtype If public Duck extends Bird { Then, you may code:. } Bird bref; Duck quack = new Duck(); bref = quack; A subtype may be assigned where the supertype is expected

More information

CS 2340 Objects and Design - Scala

CS 2340 Objects and Design - Scala CS 2340 Objects and Design - Scala Objects and Operators Christopher Simpkins chris.simpkins@gatech.edu Chris Simpkins (Georgia Tech) CS 2340 Objects and Design - Scala Objects and Operators 1 / 13 Classes

More information

University of Palestine. Mid Exam Total Grade: 100

University of Palestine. Mid Exam Total Grade: 100 First Question No. of Branches (5) A) Choose the correct answer: 1. If we type: system.out.println( a ); in the main() method, what will be the result? int a=12; //in the global space... void f() { int

More information

Building Loosely Coupled XAML Client Apps with Prism

Building Loosely Coupled XAML Client Apps with Prism Building Loosely Coupled XAML Client Apps with Prism Brian Noyes IDesign Inc. (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft

More information

Page 1

Page 1 Java 1. Core java a. Core Java Programming Introduction of Java Introduction to Java; features of Java Comparison with C and C++ Download and install JDK/JRE (Environment variables set up) The JDK Directory

More information

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical

More information

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~

~ Ian Hunneybell: CBSD Revision Notes (07/06/2006) ~ 1 Component: Szyperski s definition of a component: A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can

More information

KnOwledge

KnOwledge RoCk SOLiD KnOwledge http://www.rocksolidknowledge.com David Wheeler Designing UIs with the Composite Application Guidance 2009 RoCk SOLid KnOwledge 1 Agenda Background to composite applications Overview

More information

CSE wi Final Exam 3/12/18. Name UW ID#

CSE wi Final Exam 3/12/18. Name UW ID# Name UW ID# There are 13 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,

More information

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns

EPL 603 TOPICS IN SOFTWARE ENGINEERING. Lab 6: Design Patterns EPL 603 TOPICS IN SOFTWARE ENGINEERING Lab 6: Design Patterns Links to Design Pattern Material 1 http://www.oodesign.com/ http://www.vincehuston.org/dp/patterns_quiz.html Types of Design Patterns 2 Creational

More information

Building Large, Yet Maintainable, ASP.NET Applications. Scott Sauber

Building Large, Yet Maintainable, ASP.NET Applications. Scott Sauber Building Large, Yet Maintainable, ASP.NET Applications Scott Sauber Who am I? Lead Software Developer at Iowa Bankers Association Work in Mortgage and Insurance Industry We re not Facebook, Netflix, Stack

More information

The Decorator Pattern. Design Patterns In Java Bob Tarr

The Decorator Pattern. Design Patterns In Java Bob Tarr The Decorator Pattern Intent Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. Also Known As Wrapper Motivation

More information

TDDB84: Lecture 09. SOLID, Language design, Summary. fredag 11 oktober 13

TDDB84: Lecture 09. SOLID, Language design, Summary. fredag 11 oktober 13 TDDB84: Lecture 09 SOLID, Language design, Summary SOLID Single responsibility principle Open/closed principle Liskov substitution principle Interface segregation principle Depency inversion principle

More information

Building Extensible XAML Client Apps

Building Extensible XAML Client Apps Building Extensible XAML Client Apps Brian Noyes IDesign Inc. (www.idesign.net) brian.noyes@idesign.net, @briannoyes About Brian Chief Architect IDesign Inc. (www.idesign.net) Microso7 Regional Director

More information

Spring Dependency Injection & Java 5

Spring Dependency Injection & Java 5 Spring Dependency Injection & Java 5 Alef Arendsen Introductions Alef Arendsen Spring committer since 2003 Now Principal at SpringSource (NL) 2 3 Imagine A big pile of car parts Workers running around

More information

SOLID Principles. Equuleus Technologies. Optional Subheading October 19, 2016

SOLID Principles. Equuleus Technologies. Optional Subheading October 19, 2016 SOLID Principles Optional Subheading October 19, 2016 Why SOLID Principles? The traits of well designed software are as follows Maintainability - The ease with which a software system or component can

More information

TypeScript. Types. CS144: Web Applications

TypeScript. Types. CS144: Web Applications TypeScript Superset of JavaScript (a.k.a. JavaScript++) to make it easier to program for largescale JavaScript projects New features: types, interfaces, decorators,... All additional TypeScript features

More information

Building Extensible XAML Client Apps

Building Extensible XAML Client Apps Building Extensible XAML Client Apps Brian Noyes Chief Architect, IDesign Inc www.idesign.net brian.noyes@idesign.net, @briannoyes Level: Intermediate About Brian Chief Architect IDesign Inc. (www.idesign.net)

More information

Designing for Modularity with Java 9

Designing for Modularity with Java 9 Designing for Modularity with Java 9 Paul Bakker @pbakker Sander Mak @Sander_Mak Today's journey Module primer Services & DI Modular design Layers & loading Designing for Modularity with Java 9 What if

More information

Mastering Ninject for Dependency Injection

Mastering Ninject for Dependency Injection Mastering Ninject for Dependency Injection Learn how Ninject facilitates the implementation of Dependency Injection to solve common design problems of real-life applications Daniel Baharestani BIRMINGHAM

More information

MVC The Good, The Bad and the Evil. Hadi Hariri Developer & Technical Evangelist JetBrains

MVC The Good, The Bad and the Evil. Hadi Hariri Developer & Technical Evangelist JetBrains MVC The Good, The Bad and the Evil Hadi Hariri Developer & Technical Evangelist JetBrains http://hadihariri.com http://twitter.com/hhariri

More information

Programming Assignment 2

Programming Assignment 2 CS 122 Fall, 2004 Programming Assignment 2 New Mexico Tech Department of Computer Science Programming Assignment 2 CS122 Algorithms and Data Structures Due 11:00AM, Wednesday, October 13th, 2004 Objectives:

More information

Packages and Information Hiding

Packages and Information Hiding Packages and Information Hiding Packages as a structuring concept Information hiding through acces specifiers OOAD 1999/2000 Claudia Niederée, Joachim W. Schmidt Software Systems Institute c.niederee@tu-harburg.de

More information

Chapter Two Bonus Lesson: JavaDoc

Chapter Two Bonus Lesson: JavaDoc We ve already talked about adding simple comments to your source code. The JDK actually supports more meaningful comments as well. If you add specially-formatted comments, you can then use a tool called

More information

About this exam review

About this exam review Final Exam Review About this exam review I ve prepared an outline of the material covered in class May not be totally complete! Exam may ask about things that were covered in class but not in this review

More information

Clean Architecture Patterns, Practices, and #sddconf

Clean Architecture Patterns, Practices, and #sddconf Clean Architecture Patterns, Practices, and Principles @matthewrenze #sddconf About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker

More information

Design Patterns Reid Holmes

Design Patterns Reid Holmes Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary

More information

Expert Guidance on Migrating from Magento 1 to Magento 2

Expert Guidance on Migrating from Magento 1 to Magento 2 Expert Guidance on Migrating from Magento 1 to Magento 2 Gordon Knoppe Business Solutions Architect, ECG James Cowie Technical Architect, ECG Expert Consulting Group ECG Charter: To provide expert insight,

More information

Admin. CS 112 Introduction to Programming. Recap: OOP Analysis. Software Design and Reuse. Recap: OOP Analysis. Inheritance

Admin. CS 112 Introduction to Programming. Recap: OOP Analysis. Software Design and Reuse. Recap: OOP Analysis. Inheritance Admin CS 112 Introduction to Programming q Class project Inheritance Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email: yry@cs.yale.edu 2 Recap: OOP Analysis

More information

Cocoa Design Patterns. Erik M. Buck October 17, 2009

Cocoa Design Patterns. Erik M. Buck October 17, 2009 Cocoa Design Patterns Erik M. Buck October 17, 2009 Topics n What is a design pattern? n Why Focus on design patterns? n What is the Model View Controller design pattern? n Using MVC n When wouldn t you

More information

Binghamton University. CS-140 Fall Problem Solving. Creating a class from scratch

Binghamton University. CS-140 Fall Problem Solving. Creating a class from scratch Problem Solving Creating a class from scratch 1 Recipe for Writing a Class 1. Write the class boilerplate stuff 2. Declare Fields 3. Write Creator(s) 4. Write accessor methods 5. Write mutator methods

More information

Software Design Patterns. Aliaksei Syrel

Software Design Patterns. Aliaksei Syrel Software Design Patterns Aliaksei Syrel 1 Pattern types Creational Patterns Behavioural Patterns Structural Patterns 2 Creational Patterns Creational design patterns deal with object creation mechanisms,

More information

Clean Architecture Patterns, Practices, and #DevSum17

Clean Architecture Patterns, Practices, and #DevSum17 Clean Architecture Patterns, Practices, and Principles @matthewrenze #DevSum17 About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker

More information

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill

Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core. Gill Building a mobile enterprise application with Xamarin.Forms, Docker, MVVM and.net Core Gill Cleeren @gillcleeren www.snowball.be Agenda Overall application structure The Xamarin application architecture

More information

MVC / MVP Mei Nagappan

MVC / MVP Mei Nagappan Material and some slide content from: - Krzysztof Czarnecki - Ian Sommerville - Reid Holmes - Head First Design Patterns MVC / MVP Mei Nagappan [Image from: http://merroun.wordpress.com/2012/03/28/mvvm-mvp-and-mvc-software-patterns-againts-3-layered-architecture/

More information

OODP Session 5a. Web Page: Visiting Hours: Tuesday 17:00 to 19:00

OODP Session 5a.   Web Page:  Visiting Hours: Tuesday 17:00 to 19:00 OODP Session 5a Next week: Reading week Session times PT group 1 Monday 18:00 21:00 room: Malet 403 PT group 2 Thursday 18:00 21:00 room: Malet 407 FT Tuesday 13:30 17:00 room: Malet 404 Email: oded@dcs.bbk.ac.uk

More information

Design Patterns. Observer Pattern*

Design Patterns. Observer Pattern* Design Patterns Observer Pattern* ebru@hacettepe.edu.tr ebruakcapinarsezer@gmail.com http://yunus.hacettepe.edu.tr/~ebru/ @ebru176 Kasım 2017 *revised from Observer Pattern, OOA&D, Rubal Gupta, CSPP, Winter

More information

Define an object that encapsulates how a set of objects interact.

Define an object that encapsulates how a set of objects interact. MEDIATOR Presented By: Mallampati Bhava Chaitanya Intent Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other

More information

CS558 Programming Languages

CS558 Programming Languages CS558 Programming Languages Winter 2017 Lecture 7b Andrew Tolmach Portland State University 1994-2017 Values and Types We divide the universe of values according to types A type is a set of values and

More information

Decorator Pattern: Introduction

Decorator Pattern: Introduction Consider the following situation: Decorator Pattern: Introduction You have a set of subclasses (Subclass1, Subclass2, ) that represent variations of some superclass (Superclass) As usual, the subclasses

More information

Introduction to concurrency and GUIs

Introduction to concurrency and GUIs Principles of Software Construction: Objects, Design, and Concurrency Part 2: Designing (Sub)systems Introduction to concurrency and GUIs Charlie Garrod Bogdan Vasilescu School of Computer Science 1 Administrivia

More information

Dependency Inversion, Dependency Injection and Inversion of Control. Dependency Inversion Principle by Robert Martin of Agile Fame

Dependency Inversion, Dependency Injection and Inversion of Control. Dependency Inversion Principle by Robert Martin of Agile Fame Dependency Inversion, Dependency Injection and Inversion of Control Dependency Inversion Principle by Robert Martin of Agile Fame Dependency Inversion Principle History Postulated by Robert C. Martin Described

More information

Streaming data Model is opposite Queries are usually fixed and data are flows through the system.

Streaming data Model is opposite Queries are usually fixed and data are flows through the system. 1 2 3 Main difference is: Static Data Model (For related database or Hadoop) Data is stored, and we just send some query. Streaming data Model is opposite Queries are usually fixed and data are flows through

More information

Seam 3. Pete Muir JBoss, a Division of Red Hat

Seam 3. Pete Muir JBoss, a Division of Red Hat Seam 3 Pete Muir JBoss, a Division of Red Hat Road Map Introduction Java EE 6 Java Contexts and Dependency Injection Seam 3 Mission Statement To provide a fully integrated development platform for building

More information

Advanced React JS + Redux Development

Advanced React JS + Redux Development Advanced React JS + Redux Development Course code: IJ - 27 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 astr. hours / 54 study 1 hours Sofia, 2016 Copyright 2003-2016

More information

CS1020 Data Structures and Algorithms I

CS1020 Data Structures and Algorithms I Midterm AY2013/14 Semester 2 Data Structures and Algorithms I ANSWER SHEETS Answers included! INSTRUCTIONS TO CANDIDATES 1. This document consists of EIGHT (8) printed pages. 2. Fill in your Matriculation

More information

Just Mock It! Leveraging Mock Objects

Just Mock It! Leveraging Mock Objects Just Mock It! Leveraging Mock Objects 1 Who am I? Luis Majano - Computer Engineer Born in San Salvador, El Salvador --> President of Ortus Solutions Manager of the IECFUG (www.iecfug.com) Creator of ColdBox,

More information

Build Better WPF & Silverlight applications using Prism v2

Build Better WPF & Silverlight applications using Prism v2 Build Better WPF & Silverlight applications using Prism v2 Client Application Challenges The Problem: Client Applications can be Difficult! How Do You Make The Application Dynamic, Customizable, Extensible,

More information

RA-GRS, 130 replication support, ZRS, 130

RA-GRS, 130 replication support, ZRS, 130 Index A, B Agile approach advantages, 168 continuous software delivery, 167 definition, 167 disadvantages, 169 sprints, 167 168 Amazon Web Services (AWS) failure, 88 CloudTrail Service, 21 CloudWatch Service,

More information

Design Patterns. it s about the Observer pattern, the Command pattern, MVC, and some GUI. some more

Design Patterns. it s about the Observer pattern, the Command pattern, MVC, and some GUI. some more Lecture: Software Engineering, Winter Semester 2011/2012 some more Design Patterns it s about the Observer pattern, the Command pattern, MVC, and some GUI Design Pattern *...+ describes a problem which

More information

Options pattern in ASP.NET Core

Options pattern in ASP.NET Core Options pattern in ASP.NET Core By Luke Latham The options pattern uses classes to represent groups of related settings. When configuration settings are isolated by scenario into separate classes, the

More information

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6

Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Software Architecture With ColdFusion: Design Patterns and Beyond Topics Outline Prepared by Simon Horwith for CFUnderground 6 Some Terms: Architecture the manner in which the components of a computer

More information

Inheritance and Interfaces

Inheritance and Interfaces Inheritance and Interfaces Object Orientated Programming in Java Benjamin Kenwright Outline Review What is Inheritance? Why we need Inheritance? Syntax, Formatting,.. What is an Interface? Today s Practical

More information

To Mediate is the Message (a brief history of indirection) Glen Daniels Independent Technologist

To Mediate is the Message (a brief history of indirection) Glen Daniels Independent Technologist To Mediate is the Message (a brief history of indirection) Glen Daniels Independent Technologist glen@thoughtcraft.com Your Presenter What You re Going To Learn Today A Brief History of Indirection and

More information

The Strategy Pattern Design Principle: Design Principle: Design Principle:

The Strategy Pattern Design Principle: Design Principle: Design Principle: Strategy Pattern The Strategy Pattern defines a family of algorithms, encapsulates each one, and makes them interchangeable. Strategy lets the algorithm vary independently from clients that use it. Design

More information

The Hollywood principle: "don't call us, we call you!"

The Hollywood principle: don't call us, we call you! The Hollywood principle: "don't call us, we call you!" Def.: Component and services Component: a glob of soaware intended to be used, without change, by an applicabon that is out of the control of the

More information

AutoMapper Documentation

AutoMapper Documentation AutoMapper Documentation Release Jimmy Bogard Nov 09, 2017 User Documentation 1 Getting Started Guide 3 1.1 What is AutoMapper?.......................................... 3 1.2 Why use AutoMapper?..........................................

More information

Build Loosely Coupled Silverlight Business Applications

Build Loosely Coupled Silverlight Business Applications Build Loosely Coupled Silverlight Business Applications Brian Noyes www.idesign.net About Brian Chief Architect IDesign Inc. (www.idesign.net) Microsoft Regional Director (www.theregion.com) Microsoft

More information

Big Modular Java with Guice

Big Modular Java with Guice Big Modular Java with Guice Jesse Wilson Dhanji Prasanna May 28, 2009 Post your questions for this talk on Google Moderator: code.google.com/events/io/questions Click on the Tech Talks Q&A link. 2 How

More information

Practical WPF. Learn by Working Professionals

Practical WPF. Learn by Working Professionals Practical WPF Learn by Working Professionals WPF Course Division Day 1 WPF prerequisite What is WPF WPF XAML System WPF trees WPF Properties Day 2 Common WPF Controls WPF Command System WPF Event System

More information

ONEASIT EASY NOTIFIER

ONEASIT EASY NOTIFIER ONEASIT EASY NOTIFIER Copyright 2017 ONEASIT Solutions 2 Easy Contact your customers A powerful tool to create SMS/Email distribution lists based on information from CSV files combined with information

More information

Inheritance Chapter 8. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Inheritance Chapter 8. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Inheritance Chapter 8 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Class Inheritance: Deriving classes Method overriding Class hierarchies Abstract classes Visibility and inheritance

More information

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.

Socket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently. Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise

More information

Design Patterns Reid Holmes

Design Patterns Reid Holmes Material and some slide content from: - Head First Design Patterns Book - GoF Design Patterns Book Design Patterns Reid Holmes GoF design patterns $ %!!!! $ "! # & Pattern vocabulary Shared vocabulary

More information

Prism Composite Application Guidance

Prism Composite Application Guidance Prism Composite Application Guidance Brian Noyes www.idesign.net Prism Developed by Microsoft patterns and practices Old name: Composite Application Guidance for WPF and Silverlight Guidance for building

More information

BoxPrint and Console Input Verifiers

BoxPrint and Console Input Verifiers * Dynamic Memory *Big O Notation*Stacks *Extreme Programming*Selection Sort*Insertion Sort*Waterfall Model String*Arrays*ArrayList*Client Server*Artificial Intelligence*Inheritance*Files*Video Games*Short

More information

What is a Pattern? Lecture 40: Design Patterns. Elements of Design Patterns. What are design patterns?

What is a Pattern? Lecture 40: Design Patterns. Elements of Design Patterns. What are design patterns? What is a Pattern? Lecture 40: Design Patterns CS 62 Fall 2017 Kim Bruce & Alexandra Papoutsaki "Each pattern describes a problem which occurs over and over again in our environment, and then describes

More information

COMP6700 Introductory Programming

COMP6700 Introductory Programming THE AUSTRALIAN NATIONAL UNIVERSITY First Semester 2016 Sample Midsemester Examination COMP6700 Introductory Programming Writing Period: 90 minutes Study Period: 10 minutes Permitted Materials: Java API

More information

An Introduction to TypeScript. Personal Info

An Introduction to TypeScript. Personal Info An Introduction to TypeScript Jason Bock Practice Lead Magenic Level: Beginner/Intermediate Personal Info http://www.magenic.com http://www.jasonbock.net https://www.twitter.com/jasonbock https://www.github.com/jasonbock

More information

JUDSON WHITE BIO ACKNOWLEDGMENTS

JUDSON WHITE BIO ACKNOWLEDGMENTS JUDSON WHITE Austin, TX (877) 316-7975 contact@judsonwhite.com https://github.com/judwhite BIO 16 years professional experience C# /.NET, Go (Golang) Originally from a C and C++ background; open to learning

More information

Reusing Classes. Hendrik Speleers

Reusing Classes. Hendrik Speleers Hendrik Speleers Overview Composition Inheritance Polymorphism Method overloading vs. overriding Visibility of variables and methods Specification of a contract Abstract classes, interfaces Software development

More information

SEO TOOLBOX ADMINISTRATOR'S MANUAL :55. Administrator's Manual COPYRIGHT 2018 DECERNO AB 1 (13)

SEO TOOLBOX ADMINISTRATOR'S MANUAL :55. Administrator's Manual COPYRIGHT 2018 DECERNO AB 1 (13) Administrator's Manual COPYRIGHT 2018 DECERNO AB 1 (13) TABLE OF CONTENTS INTRODUCTION... 3 INSTALL SEO TOOLBOX FOR EPISERVER... 4 What will be installed?... 4 Add-on store installation... 4 Manual installation

More information