views:

81

answers:

4

hi

How do I start using patterns and practices efficiently for developing .net applications?

+1  A: 

As always, the best way for any of this stuff is to write code. The difficulty you are going to have is that there are a large number of patterns and knowing when to apply them if you don't understand them is difficult at best. However, writing arbitrary code is not giong to work. Because of this I would recommend a couple of books. Read "Head First Design Patterns", this is a Java book, but it's close enough to c# to be in-valuable. I'd also look at "Refactoring to Patterns" by "Joshua Kerievsky". This last book in particular is very good as it takes code that is not pattern based and moves that code to be pattern based. Along side this find a mentor (if you can) and work along side them. Then start coding.

Kevin Jones
+2  A: 

First you need to have some programming/projects experience in .Net. E.g. you need to know various interfaces in .Net and have done some simple GUI programming.

Designing an application sometimes is harder than writing an application based on specifications. Designing needs experience, you need to read and write a lot of programs until you really get the design patterns.

Anyway, you can read design patterns books or tutorials as a start, although it takes time to really understand and appreciate them. First Head Design Patterns is great!

Yin Zhu
Here is the C# code for the Head First Design Patterns book. GO through the samples as I always find looking at examples helps me learn quickly.http://www.msquaredweb.com/DesignPatterns/HeadFirstDesignPatternsInCSharp.zip
Burt
A: 

You probably are using them without knowing it ^^. As stated before, get yourself some books, read, reflect, read again, reflect etc. ... using patterns effectively needs time and experience.

Helper Method
+1  A: 

I guess the question was not "where can I learn about design patterns" but "how do I start using them". If I'm right (and if I were you) I would take a really simple, small project and try to apply few popular design patterns there - each project version for each design pattern. See if it works for you :)

Piotr Justyna