J.H. Fröhlich, M. Schwarzinger: Treating Interfaces as Components, IVNET '05, Proceedings of the First International Conference of Innovative Views of .NET Technologies, Porto, ISBN 972-8688-31-8, pp 29-41, June 21-22, 2005.

.NET provides a powerful component platform, but it does not enforce component-based programming. Considerable effort must be spent a priori in order to reap component benefits like configurability and testability. In addition, highly specialized components cannot be reused as often as necessary to provide sufficient return on investment. Thus, much of the potential of components lies idle. This paper presents a simple technique for structuring arbitrary software systems with decoupled, exchangeable components. The goal is to profit from component-based programming even in restricted, highly specialized application domains. Interfaces in the form of conceptually and physically separated components are at the heart of the described technique.

Treating Interfaces as Components