through Modularity with Episerver Hi! Im Casper Rasmussen [ smusn] - - PowerPoint PPT Presentation
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
Hi! I’m Casper Rasmussen
[ˈʁɑsmusn]
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
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
Episerver
Our Business Case
Ensure the investment in new software brings a long lasting digital asset
Episerver
Rely on the theoretical principles in existing software methodologies as levers for the heavy lifting
How to meet this objective?
Episerver
Enable Sustainability
Factors to a sustainable software investment
– Maintainability – Scalability – Documentation – Reliability – Adaptability – ..
Sustainable software has a greater capacity to endure
- Kakuzo Okakaura
“ The art of life is a constant readjustment to our surroundings ”
Ascend
- Copy Casper
“ The art of software is a constant readjustment to itself and its surroundings ”
Ascend
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
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
Episerver
Raise your hand
Let me understand your experience with those measures
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
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
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
Episerver
Episerver assembles them to a working system. Modules are the pieces creating your software.
Episerver
Utilize Episerver’sarchitecture to build a solution that absorbs change
Episerver and modularity
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
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
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
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
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
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.
Here’s a code sample
Download my example code from fellow.aagaardrasmussen.dk
Ascend
Episerver
Let me introduce you to Xylem Inc. How we’ve leveraged modularity in real life projects
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
Episerver
Find my presentation and the code sample
- n fellow.aagaardrasmussen.dk
Questions?
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