views:

81

answers:

3

HI

After reading some posts here on StackOverflow.com I decided to start studying code from other developers to improve my coding skills.

I'm looking for a open-source software that uses MVC pattern, and also most design patterns possible.

Could you recommend some open-source software written in C# or VB.NET that uses as many design patters as possible or some code that worth studying?

Thanks!

+3  A: 

I would recommend some projects like NServiceBus, which make extensive use of polymorphism (not to mention the NServiceBus API is one of the best APIs I've had the pleasure of using). Also consider something like StructureMap, which uses a model-based configuration API (I actually use Ninject as my IoC of choice, and it could prove to have some interesting code as well). It's hard for me to point out whether or not these projects use specific design patterns, and how many it may use, but I do know that they use some modern APIs and modern approaches to object oriented design.

I would say, though, that your best bet is going to be to find an open source project that you find interesting, or that you use regularly, and crack it open and see what makes it tick. If you are familiar with the details of using the code (whatever it may be), then you will probably gain more insight be looking at the code because you know what it is doing.

ckramer
+1 for IOC containers for this purpose.
apollodude217
+1  A: 

I'd recommend checking out the Northwind Starter Kit (http://nsk.codeplex.com/) - it covers off on many design patterns and their application in the .Net framework, including SOA and MVC/MVP/PM concepts. It also includes examples of several other free-to-use libraries, such as Microsoft Entity Framework and NHibernate.

I'm personally particularly pleased with the way they show the same backend can be used with both WPF and ASP.Net.

mattdekrey
+1  A: 

I always recommend .NET Domain-Driven Design with C#: Problem-Design-Solution sample code - SmartCA project. It is extremely elegantly laid out and I find myself going back to it whenever I have doubts about my architecture.

You should also download and check out ASP .NET MVC source code. It's got good examples of unit testing and mocking (which is something you will find yourself wanting to use).

Igor Zevaka