[Talk at Capgemini TechEd, March 1 at Capgemini, Papendorp, Utrecht]
Due to illness of one of the speakers I did an additional talk at the Capgemini TechEd. 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.