Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm reading "Dependency Injection in .NET" of Mark Seemann (it's fantastic, and must have) and author often uses word "SEAM", but I can't understand what does it means? Here is an example of using this word:

Chapter 7 explains how to compose objects in various concrete frameworks
such as ASP.NET MVC, WPF, WCF, and so on. Not all frameworks support DI
equally well, and even among those that do, the ways they do it differ a lot. For
each framework, it can be difficult to identify the SEAM that enables DI in that
framework. However, once that SEAM is found, you have a solution for all applica-
tions that use this particular framework. In chapter 7, I have done this work
for the most common .NET application frameworks. Think of it as a catalog of
framework SEAMS.

I would be gratefull for helping me with understanding this word.

share|improve this question
There are hints to what the word means on the author's blog. And since he's a member here: @MarkSeemann this one is for you :) – Yannis Jan 30 '12 at 20:19
up vote 9 down vote accepted

I think the term originates from Michael Feathers Working Effectively with Legacy Code in which he explains a seam in software as a place where two parts of the software meet and where something else can be injected. The analogy is a seam in clothing: The place where two parts are stitched together. The piece on each side only touches the other right at the seam. Back to software: If you identify the seam you have identified the place where there is a well defined interface. That is what you can leverage in DI, since such an interface allows you to replace implementation without the rest of the software being able to tell (without cheating, anyway).

share|improve this answer
2 - as a reference for those who don't have the book. – Yannis Jan 30 '12 at 20:22
great, that what I needed. Thanks a lot! – user278618 Jan 30 '12 at 20:30
I'm reading that book right now! – Malfist Jan 30 '12 at 21:43
+1 FWIW, I introduce the concept in section 1.3.1 on page 22. – Mark Seemann Jan 30 '12 at 21:53

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.