Lego for Software Engineers - How to build reusable and maintainable applications in C#
A talk by Theo Jungeblut
About the Talk
June 3, 2011 6:00 AM
LinkedIn .NET User Group: Online PresentationLinkedIn .NET User Group: Online Presentation
LegoTM, the interlocking construction brick system for kids, provides a perfect example of simple but extremely powerful interface design, as you can build virtual any things from its basic but reusable building blocks. Since Lego provides a perfect example for good component and interface design, it will be used for comparison with software architectural theory and design patterns for reusable and maintainable application, like "Keep it simple stupid" (KISS), the power of contracts /interfaces, Separation of Concerns (SoC), Single Responsibility Principle (SRP), "Don’t Repeat Yourself" (DRY).
Finally, the focus of this presentation will be “Dependency Inversion Principal” (DIP) and “Inversion of Control”, including Dependency Injection by constructor, property or interface and the Service Locator approach.
Lego bricks are not just a collection of pieces; instead, they provide a platform to build whatever can be imagined. Within this session, the discussed Lego principle will be applied to an example application based on different technologies and platforms for reusable software. Unity and Managed Extensibility Framework (MEF) will be examined as an example for technology platforms to build on.