through modularity
play

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


  1. Ascend Embrace Business Changes through Modularity with Episerver

  2. Hi! I’m Casper Rasmussen [ ˈʁɑ smusn]

  3. 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

  4. 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

  5. Our Business Case Ensure the investment in new software brings a long lasting digital asset Episerver

  6. How to meet this objective? Rely on the theoretical principles in existing software methodologies as levers for the heavy lifting Episerver

  7. Enable Sustainability Sustainable software has a greater capacity to endure Factors to a sustainable software investment – Maintainability – Scalability – Documentation – Reliability – Adaptability – .. Episerver

  8. Ascend “ The art of life is a constant readjustment to our surroundings ” - Kakuzo Okakaura

  9. Ascend “ The art of software is a constant readjustment to itself and its surroundings ” - Copy Casper

  10. 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

  11. 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

  12. Raise your hand Let me understand your experience with those measures Episerver

  13. 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

  14. 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

  15. 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

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

  17. Episerver and modularity Utilize Episerver’s architecture to build a solution that absorbs change Episerver

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. Ascend Here’s a code sample Download my example code from fellow.aagaardrasmussen.dk

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

  26. 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

  27. Questions? Find my presentation and the code sample on fellow.aagaardrasmussen.dk Episerver

  28. 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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend