Examples of tools and suites build under the ALT.Net philosophy are:
Moq and Rhino Mock
Nhibernate and Subsonic
This body of text (taken from http://msdn.microsoft.com/en-us/magazine/cc337902.aspx) explains what it means to be a ALT.Net developer.
My personal connection is with this statement:
you feel that ... the .NET community has been placing too much focus on learning API and framework details and not enough emphasis on design and coding fundamentals
- You're the type of developer who uses whatever works while keeping an eye out for a better way. One of the common topics at the ALT .NET event was closing gaps between requirements, testing, and code. There's still fat in the way we develop software that can be eliminated.
- You reach outside the mainstream to adopt the best of any community: Open Source, Agile, Java, Ruby. In no way does Microsoft or the .NET community have a monopoly on good software development. For instance, Agile processes and Design Patterns started with Smalltalk. Likewise, Inversion of Control tools and techniques originated in Java. And two fundamental Ruby on Rails principles—Don't Repeat Yourself and Convention over Configuration—are ones that we can adopt in .NET.
- You're not content with the status quo. Things can always be more elegant, more mutable, and of higher quality. We're all experimenting with techniques to more closely connect the coding and testing to the business domain. For example, Behavior Driven Development (BDD) refines and extends Test Driven Development (TDD) by specifying the intended behavior of the code in a more readable way than classic xUnit testing. And language-oriented programming has the potential to raise the abstraction layer up to the level of the domain logic.
- You realize that tools are great, but they only take you so far. It's the principles and knowledge that really matter. The best tools are those that embed the knowledge and encourage the principles (for example, ReSharper). Furthermore, you feel that the most important qualities of a solution are maintainability and sustainability. Maintainable code means good design. Good design arises from the skillful application of design knowledge. The .NET community has been placing too much focus on learning API and framework details and not enough emphasis on design and coding fundamentals.