views:

166

answers:

4

Hi All,

I have been reading up on SOLID principles and was wondering if there is a good large opensource application or project in DOTNET that shows SOLID principles in use in a real world product.

If there are any other opensource projects that are considered to be good coding samples I would be very intrested to see them these too.

Regards

Ian

+2  A: 

For an example of ASP.NET MVC application you can use Who can help me?

Giorgi
and http://who-can-help.me/about -> here you can get most of the important C# opensource apps...
Ramesh Vel
+2  A: 

I'm not totally up to date in .NET, but as far as I know .NET doesn't implement return type covariance, which goes against the L principle in "SOLID" (Liskov substitution principle).

Sylvestre Equy
so.... you can still write good and bad code in any language no matter the functionality. Are you seriously saying that all c# code is bad because of this?
Tony Lambert
Never said that, just that one of the SOLID principles cannot be implemented in C#. It's not a matter of code quality, it's a matter of discovering the SOLID principles in their entirety.
Sylvestre Equy
I can't see why this answer gets a -1. Sylvestre is correct, .NET does not implement return type covariance and so does not fully adhere to SOLID principles. IME this is not problem when working with .NET, but since the q. refers to SOLID it is worth pointing out I think!
Steve Haigh
I dare to disagree. This answer has no direct relation to the question.
Krzysztof Koźmic
@Kryzsztof - it speaks directly to the question, the questioner is looking for examples of SOLID, and technicaly speaking, .NET does not support the "L" in SOLID. It may be a pedantic point, but the question explicitly refered to SOLID so it is worth pointing out.
Steve Haigh
Ok, remind me, what does return type covariance have to do with LSP?
quamrana
From wikipedia article on LSP : "Liskov's principle imposes some standard requirements on signatures that have been adopted in newer object-oriented programming languages (usually at the level of classes rather than types - see nominal vs. structural subtyping for the distinction):Contravariance/covariance of method argument/return types in the subtype [...]"
Sylvestre Equy
+4  A: 

Check out:

orip
+1  A: 

Not really an application, but FubuMVC and OpenRASTA frameworks are both written very well.

Krzysztof Koźmic