This years edition of the Munich based OOP Conference is it’s 20th anniversary. I have done quite a number of talks at earlier editions of this vibrant conference. So I was keen on coming back to OOP for its anniversary edition. Great line-up. Keynotes by Erich Gamma, Martin Fowler, Tom DeMarco, Kevlin Henney. I even wrote a short testimonial for the booklet that was printed for this anniversary.
Ah well. I presented my successful talk on software architecture and frameworks, please check the video below, which was shot during the Microsoft TechEd Europe conference in Berlin in November 2010.
When it comes to Microsoft .NET-connected development, more and more frameworks are entering the market, both from Microsoft and from open source. Think of ASP.NET MVC, Castle, Windows Workflow Foundation (WF), Entity Framework, Unity, Linq2SQL, ADO.NET Data Services, Windows Communication Foundation (WCF), nHibernate, Spring.NET, CSLA, NUnit, Enterprise Library, MEF and ADF.
Once you apply one or more frameworks to a project, the trouble begins. What if you require features that aren’t implemented in the framework? What if you decide that another framework would have been better and want to switch halfway through your project? What if the author of your favorite open source framework suddenly stops developing? What if the framework contains bugs or omissions? And what if a new version of the framework is released that is implemented differently? These and many more everyday problems can bring your project a halt, or at least require serious refactoring.
During this highly interactive talk, Sander Hoogendoorn, chief architect of Capgemini’s agile Accelerated Delivery Platform and member of Microsoft’s Partner Advisory Council .NET, demonstrates pragmatic architectures and patterns that will help your projects avoid framework issues and keep code independent of framework choices. Sander presents models of layered architectures and looks at applying bridge patterns, managers-providers, dependency injection, descriptors and layer super-types, accompanied by lots of demos and (bad) code examples using blocks from Microsoft’s Enterprise Library, NHibernate, Log4Net, and the Entity Framework. Learn how to improve the structure and quality of your software architecture and code and how to avoid the pitfalls of applying frameworks to .NET software development.