through Modularity with Episerver Hi! Im Casper Rasmussen [ smusn] - - PowerPoint PPT Presentation

through modularity
SMART_READER_LITE
LIVE PREVIEW

through Modularity with Episerver Hi! Im Casper Rasmussen [ smusn] - - PowerPoint PPT Presentation

Ascend Embrace Business Changes through Modularity with Episerver Hi! Im Casper Rasmussen [ smusn] Agenda 1. Lets build a business case The benefits of software sustainability 2. Theory behind Lets talk about Absorb


slide-1
SLIDE 1

Embrace Business Changes through Modularity with Episerver

Ascend

slide-2
SLIDE 2

Hi! I’m Casper Rasmussen

[ˈʁɑsmusn]

slide-3
SLIDE 3

Episerver

Agenda

Let’s talk about software

  • 1. Let’s build a business case

The benefits of software sustainability

  • 2. Theory behind

Absorb evolution and adapt to change via a modular programming manifesto

  • 3. How we put this to life with Episerver

What does Episerver bring and let’s see how it can look

slide-4
SLIDE 4

Episerver

Sustainable software is everyone’s goal

– Create organizational efficiencies – Lower the total cost of ownership of software over time – Stabilize the larger IT eco-system

slide-5
SLIDE 5

Episerver

Our Business Case

Ensure the investment in new software brings a long lasting digital asset

slide-6
SLIDE 6

Episerver

Rely on the theoretical principles in existing software methodologies as levers for the heavy lifting

How to meet this objective?

slide-7
SLIDE 7

Episerver

Enable Sustainability

Factors to a sustainable software investment

– Maintainability – Scalability – Documentation – Reliability – Adaptability – ..

Sustainable software has a greater capacity to endure

slide-8
SLIDE 8
  • Kakuzo Okakaura

“ The art of life is a constant readjustment to our surroundings ”

Ascend

slide-9
SLIDE 9
  • Copy Casper

“ The art of software is a constant readjustment to itself and its surroundings ”

Ascend

slide-10
SLIDE 10

Episerver

Adapt to change

External influences

Adaptability is the extent to which a software system adapts to change in its surroundings.

Measures

– Integration layers – Redundancy – Communication protocols – Backward compatibility – Portable application stack

slide-11
SLIDE 11

Episerver

Adapt to change

It’s more than that..

Self-adaptable software absorbs evolution caused by changes coming from within

Measures

– Separation of concerns – Dependency inversion – Strict use of code contracts – Access modifiers

slide-12
SLIDE 12

Episerver

Raise your hand

Let me understand your experience with those measures

slide-13
SLIDE 13

Episerver

How to create self-

adaptable software

The modular programming manifesto

The final product should be assembled from independently developed modules.

Benefits

– Be in control of evolving complexity – Reduces impact caused by interconnected code – Efficient development – Mitigates the entropy of software

slide-14
SLIDE 14

Communication Marketing Automation

Ascend

Order Management User & Profile

Upselling Globalization

Contracts

Business Rules Events Triggers Tracking Messaging Governance

Contracts

Authentication Notifications Life Cycle Business Rules

Contracts racts

User Flows

slide-15
SLIDE 15

Ascend

er & Identity Upselling

Notification Contract Messaging Contract

Build Message and Dispatch Dispatch Notification E-mail Sender

Contracts Contracts

Push Notification

Communication

Messaging Logic Notification Logic

slide-16
SLIDE 16

Episerver

Episerver assembles them to a working system. Modules are the pieces creating your software.

slide-17
SLIDE 17

Episerver

Utilize Episerver’sarchitecture to build a solution that absorbs change

Episerver and modularity

slide-18
SLIDE 18

Episerver

Episerver is the

  • rchestrator

Acting as the glue Episerver retains the integrity of the modular system at runtime. Platform responsibility

– Registration, initialization and dynamic loading of platform modules – Management of module interdependencies – Routing – Foundational modular framework – .. and of course enterprise content management and commerce features

slide-19
SLIDE 19

Episerver

Episerver is already a modular framework

Episerver has a modular mindset Let’s benefit from the approach native features, such as Episerver Find, already relies on. What’s for instance in the Episerver toolbox

– Initialization mechanism – Assembly scanning providing automated registration of e.g. content types or plugins – Inversion of control and Dependency inversion through StructureMap – Content and template routing

slide-20
SLIDE 20

tracts

User & Identity Communication Search Product Catalog Store Locator Globalization

Contracts Contracts Contracts Contracts Contracts

Upselling Data Import

Contracts

Blog sonation Document Library

Contracts

keting

  • mation

Catalog Connector

Contracts

Core Lead Generation

Contracts

Encyclopedia News Vacancies

Contracts Contracts Contracts Contracts Contracts Contracts Contracts s Contracts

t Trail

Ascend

Products and offerings rder

Contracts Contracts Contracts

slide-21
SLIDE 21

Ascend

Upselling User & Identity

IMessagingManager INotificationManager

Recipient Locator

MessagingManager NotificationManager

Send Grid Gateway MessageDispatcher NotificationDispatcher

Contracts Contracts

MessageBuilder Epi Push Notification Trigger Communication Bootstrapper Communication Configuration Content Types and Controllers Extensions and Authoring Plugins

slide-22
SLIDE 22

tracts

User & Identity Communication Search Product Catalog Store Locator Globalization

Contracts Contracts Contracts Contracts Contracts

Upselling Data Import

Contracts

Blog sonation Document Library

Contracts

keting

  • mation

Catalog Connector

Contracts

Core Lead Generation

Contracts

Encyclopedia News Vacancies

Contracts Contracts Contracts Contracts Contracts Contracts Contracts s Contracts

t Trail

Ascend

Products and offerings rder

Contracts Contracts Contracts

slide-23
SLIDE 23

Episerver

Good practices

Process

– Validate module dependencies during your code reviews – Sketch early – identify modules and interdependencies when defining your solution architecture – Avoid sporadic identification of new modules without architectural consent – Document to keep architecture and purpose of platform consistent over time

Code

– Define clear contracts to describe the responsibility of your module – Avoid unwanted module dependencies – always ask yourself: should a change to this dependency affect my module? – Use access modifiers to hide all code that’s considered implementation – Never rely on implementations within dependent modules – they may change! – Avoid breaking contracts in your module - it will break dependencies! – Avoid replacing Episerver implementations. It may lead to unwanted issues.

slide-24
SLIDE 24

Here’s a code sample

Download my example code from fellow.aagaardrasmussen.dk

Ascend

slide-25
SLIDE 25

Episerver

Let me introduce you to Xylem Inc. How we’ve leveraged modularity in real life projects

slide-26
SLIDE 26

Authentication Product Catalog Localization Search Product Catalog Brand Globalization

Contracts Contracts Contracts Contracts Contracts

Industries & Application Data Synchronization

Contracts

Localization Video Library

Contracts

Location

Contracts

Core Lead Generation

Contracts

Case Studies News & Events Blog

Contracts Contracts Contracts Contracts Contracts

Ascend

Commerce, CMS and Find

Contracts Contracts

slide-27
SLIDE 27

Episerver

Find my presentation and the code sample

  • n fellow.aagaardrasmussen.dk

Questions?

slide-28
SLIDE 28

Episerver

tha hank nk you

  • u_

Casp sper er Rasmu muss ssen en

Valtech Solutions, Inc., New York City casper.rasmussen@valtech.com Remember to check out my blog at http://fellow.aagaardrasmussen.dk