To Interface or not to interface? Here is the question

Isn’t it funny that, suddenly, interfaces do not seem to be in fashion in the .Net world anymore ?

In the not so good old days of COM there wasn’t an option – if we wanted a component we had to have at least one interface. The abstract server pattern was alive and kicking and the advantages of separating a service contract from its implementation were clear to all (at least to the ones using OO languages). In those days there was a clear distinction between a component (something providing services trough an interface) and a class.

Now, in the new world of .NET, we can have classes, in different assemblies, talking directly to each other. Call me an old fashion geezer but I still strongly believe in patterns like the Separated Interface and Factory (from one of my favourite books Agile Software Development). Perhaps I should go back to my perforated cards…