Search
Tuesday, January 06, 2009 ..:: Meetings » November 2005 ::.. Register  Login
Site Navigation

 Text/HTML Minimize

Extensible OO Design in .NET 

Tuesday, November 21, 2006 at 6:00pm CST

Guest Speaker

Doug Turnure is a Developer Evangelist with Microsoft Corporation, focusing on NET technologies. He serves numerous enterprise clients as a developer, author, trainer, and occasional conference speaker. His specialties include NET internals, memory management, and distributed communication, although he enjoys anything pertaining to .NET. Prior to joining Microsoft, he spent five years as an instructor and course author with DevelopMentor and Aggelos, Inc. His primary topics of instruction include VB.NET, C#, and ASP.NET. Doug is currently based inAtlanta, Georgia.

 

Meeting Topic

So often, I talk to developers who know how to do interfaces and inheritance in .NET, yet don't seem to have consistent rules around when to use which. I could probably term this as extensible OO design.

It's been my experience that when you get into the trenches with developers, there is a huge disconnect between the theoretical tenets of OO (encapsulation, abstraction, polymorphism, and inheritance) and the day to day coding of applications. Developers can usually spout definitions for each of these concepts, but when you ask them to point out where they do this in code, there is often confusion. Furthermore, if you try to ask a developer whether an interface or base class is best suited for a particular boundary, the answers can be all over the map.

There really is a reason to choose one over the other. If you want to hear the bloody details, come to the talk. If not, the quick and rough answer is this: Interfaces are better for those places where extensibility is the highest requirement. Inheritance is better for those places where reusability is the highest requirement.

You can screw up your software by doing too much of either one, or by neglecting either one. I've heard people say that inheritance is bad. If misapplied, I agree. However, inheritance is very good when applied properly. Can you imagine how much code you would need to write to display a simple Winforms window, if you couldn't inherit from the base class?

On the other hand, the corporate graveyards of America are littered with the bytes of non-extensible software, where interfaces could have easily saved the day.

There is much to be said for understanding how to balance the use of interfaces and inheritance.

Please RSVP Matthew Hughes (mat_hues@hotmail.com) and let him know if you're coming.

Meeting Location
SouthEast Technical (SET) Solutions
273 Azalea Rd.
Office Park Three
Suite 200
Mobile, Alabama 36609


  

 Sponsor Highlight Minimize

Benefits and Discounts

Check out the Benefits and Discounts available to our group.

 

 

Door Prize Giveaways you should own

Buy this book (if you haven't won it yet). It's basically covering several of the same patterns in the Gang of Four's (GoF) Design Patterns book, but replaces the SmallTalk and C examples with java (same syntax as C#), and it's a lot more fun to read (is that blasphemy?).

 

"This book is an absolute must-read for all .NET developers. It gives clear do and don't guidance on how to design class libraries for .NET." --Jeffrey Richter, author, trainer and .net genius

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries

 


  

Copyright 2005 Lower Alabama .NET Users Group   Terms Of Use  Privacy Statement
Portal engine source code is copyright 2002-2009 by DotNetNuke. All Rights Reserved