Ascend Embrace Business Changes through Modularity with Episerver
Hi! I’m Casper Rasmussen [ ˈʁɑ smusn]
Agenda 1. Let’s build a business case The benefits of software sustainability 2. Theory behind Let’s talk about Absorb evolution and adapt to change via a modular programming manifesto software 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
How to meet this objective? Rely on the theoretical principles in existing software methodologies as levers for the heavy lifting Episerver
Enable Sustainability Sustainable software has a greater capacity to endure Factors to a sustainable software investment – Maintainability – Scalability – Documentation – Reliability – Adaptability – .. Episerver
Ascend “ The art of life is a constant readjustment to our surroundings ” - Kakuzo Okakaura
Ascend “ The art of software is a constant readjustment to itself and its surroundings ” - Copy Casper
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 Episerver
Contracts Order Management User & Profile Ascend Authentication Business Rules Governance Life Cycle User Flows Contracts Marketing Automation Communication Contracts Business Rules Messaging Events Triggers Notifications Tracking racts Upselling Globalization
Ascend Messaging Contract Notification Contract Messaging Logic Notification Logic Contracts Upselling Build Message Dispatch Notification and Dispatch Push Notification E-mail Sender Contracts Communication er & Identity
Modules are the pieces creating your software. Episerver assembles them to a working system. Episerver
Episerver and modularity Utilize Episerver’s architecture to build a solution that absorbs change Episerver
Episerver is the orchestrator 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 Episerver
Contracts tracts Ascend Contracts Contracts Contracts Contracts Contracts Contracts Catalog rder Product Catalog Search Vacancies Upselling Connector Contracts Contracts Contracts keting Lead News Communication omation Generation Contracts Contracts Contracts Products and offerings Contracts sonation User & Identity Encyclopedia Core Contracts Contracts Contracts Contracts Document Store Locator Globalization Data Import t Trail Blog Library Contracts Contracts s
Ascend IMessagingManager INotificationManager MessagingManager NotificationManager Contracts User & Identity Recipient Locator MessageBuilder MessageDispatcher NotificationDispatcher Send Grid Gateway Epi Push Notification Trigger Contracts Upselling Communication Bootstrapper Communication Configuration Content Types and Controllers Extensions and Authoring Plugins
Contracts tracts Ascend Contracts Contracts Contracts Contracts Contracts Contracts Catalog rder Product Catalog Search Vacancies Upselling Connector Contracts Contracts Contracts keting Lead News Communication omation Generation Contracts Contracts Contracts Products and offerings Contracts sonation User & Identity Encyclopedia Core Contracts Contracts Contracts Contracts Document Store Locator Globalization Data Import t Trail Blog Library Contracts Contracts s
Good practices Code Process – Define clear contracts to describe the responsibility of – Validate module dependencies during your code your module reviews – Avoid unwanted module dependencies – always ask – Sketch early – identify modules and yourself: should a change to this dependency affect my interdependencies when defining your solution module? architecture – Use access modifiers to hide all code that’s considered – Avoid sporadic identification of new modules implementation without architectural consent – Never rely on implementations within dependent modules – Document to keep architecture and purpose of – they may change! platform consistent over time – Avoid breaking contracts in your module - it will break dependencies! – Avoid replacing Episerver implementations. It may lead to unwanted issues. Episerver
Ascend Here’s a code sample Download my example code from fellow.aagaardrasmussen.dk
How we’ve leveraged modularity in real life projects Let me introduce you to Xylem Inc. Episerver
Ascend Contracts Contracts Contracts Contracts Contracts Industries Product Catalog Location Search Blog & Application Contracts Contracts Lead Product Catalog News & Events Generation Localization Contracts Contracts Contracts Commerce, CMS and Find Contracts Case Studies Core Authentication Contracts Data Contracts Contracts Synchronization Video Library Brand Globalization Localization Contracts Contracts
Questions? Find my presentation and the code sample on fellow.aagaardrasmussen.dk Episerver
tha hank nk you ou_ 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 Episerver
Recommend
More recommend