Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I've been reading a few books on c# development over the last few months (clr via c#, architecting applications for the enterprise, c# 4 in nutshell just to give you an idea). I really feel it's been a worthwhile exercise however, at the moment, it feels like I've slightly scatterbombed my head with theory (although I have been trying to put it into practice where possible). I have worked on c# projects since .net 2.0 here and there so I have got a few years programming experience, I'm just really making an effort now to try and get to the next level. What I find hard to do sometimes is putting it altogether.

What I was hoping to find was some sample project or maybe an open source project or something similar that tries to tie all these aspects of development together in a large project that deals with a fairly complex problem (100s of classes preferably although i know this is not a good yardstick for complexity), in a true object oriented sense, that includes generics, delegates, web services, some different design patterns, linq or nhibernate etc etc, mvc 3/4, with documentation and unit testing... one can dream

So is that possible? (edit: without writing it myself)

share|improve this question

closed as off-topic by Thomas Owens Apr 27 at 20:05

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – Thomas Owens
If this question can be reworded to fit the rules in the help center, please edit the question.

Have you looked for any open source projects with the criteria you specified? You should be able to find all of the open source projects developed in C# on sites like SourceForge or CodePlex. –  Bernard Feb 13 '12 at 21:42
hi bernard. Yeah I suppose open source is without doubt the best place to look. I'd happily take recommendations from people here on one's they've worked on which fit the above criteria. I'm browsing on codeplex as I type.. –  user47646 Feb 13 '12 at 21:52
Shameless plug.. We could use an extra dev to help with Rubberduck. Definitely complex, but not web based. Might give you an opportunity to work with some tech and concepts you've not worked with. Like parsing, code analysis, ANTLR, Moq... Check it out. No hard feelings if you decide it's not for you. –  RubberDuck Apr 28 at 3:46

2 Answers 2

Maybe a good, complex OSS project that you can take a look at is FubuMVC. All of the code is up on github and it's fair complex. Jeremy does a pretty good job of writing concise code, there are unit tests (though it uses StoryTeller for at least some of them).

Orchard is another project that might be worth checking out. I doubt the code is as easy to read but it's pretty complex and offers a lot of functionality.

Generally, I would suggest finding something that solves a pain point for you or something you're interested in and find a project that fits that. Then you can dig in, maybe add some features, and really understand what's going on. All of my OSS contributions, including the projects I run, are from pain points or unfulfilled needs within the community.

share|improve this answer
Thanks Travis. I'm taking a Fubu now. great project. From finding a similar question to the one I posed it looks like project suggestions aren't for this site so this will probably be closed shortly. Thanks for your suggestoins though –  user47646 Feb 13 '12 at 22:28

Trying to find a project that pulls all of those technologies together at time time might only be more confusing as now you are trying to understand the actual implementations of all of those concepts while at the same time trying to understand the overall application.

My personal approach to new technologies and concepts is to take them in small bites. Pick one to three topics (depending on their scale) and put together an application that not only uses them but tries to use them to their limits. This lets me get a much deeper understanding of the individual technologies. Once I understand something, I work to include it in my regular coding where/if it makes sense.

Quite often an application that was created to understand one topic becomes the starting point for understanding another topic. This eventually becomes the application you were looking for, just without the overload of trying to understand everything all at once.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.