locked
General best practices for .NET development RRS feed

  • Question

  • Hello,

    I'm an ex Java developer now working for a young and fairly naive company that is largely .NET oriented. I, and really the company as a whole, feel very much "thrown into the thick of things" and I'm positive there are better methods and techniques to accomplish my goals.

    I just find myself often with general questions about .NET and writing .NET applications. Ideal versioning techniques, sharing libraries we have written across projects at the company, effective build processes and deployment processes, etc etc. For example:

    Say three different projects all wish to use a same library. Should the library be made available in the GAC of all dev machines for all to use? Should each project use their own copy of the library at the binary level? the source code level? Should a project have one source definition within a source control system and all developers feed off of it. Or should each team branch their own source base for the library?

    How should a company as a whole implement strong naming?

    But my questions also get very fine grained...

    Is it appropriate/necessary to use the [assembly: Guid(...)] attribute? In a COM interop based project when exactly does a type need a Guid versus ComVisible(false)?

    Really my questions range the entire spectrum of .NET but are much more "best practices" oriented. Actually writing code I have no issue with (generally )

    Are there books, websites, magazine articles, anything that can help shed light on this? I've been looking and have met with mixed success. Like for COM Interop, ".NET and COM: The Complete Interoperation Guide" by Adam Nathan has been a God send. But most books seem too oriented on the languages, windows forms, etc, when really I want to understand the overall structure of creating .NET applications and the best way to do that.

    Thanks, wow, long post

    Wednesday, February 8, 2006 6:19 PM

Answers

  • Well I'm sure you're not the first to come into a company that wants to "do .NET" and found themselves with a lot more questions than answers.  I think you'll find the forums are a great place to post these types of questions.  Of course you'll want to target the right areas but there are a ton of great people that simply enjoy helping others.  As far as books I would get my hands on the blue and white books from MSFT.  There are a ton of pattern and practice publications from the Patterns and Practices Team (often referred to as the PAG group).

    There home page is http://msdn.microsoft.com/practices/.  You'll find a complete catalog in there of everything from how to do data access to exception management to integration best practices.

    I think that'll get you jump started,  as far as some of your questions in the post above I would say for shared assemblies you want to use the GAC but be prepared to have a versioning strategy before you dive into that one.  You'll start to have issues when multiple applicaitons use the same assembly version and you need to do a hotfix (like testing all of the other apps for example).

    I hope this in some way helps and if you have some architecture questions keep them coming!!! Good luck. 

    Thursday, February 9, 2006 12:04 PM

All replies

  • Well I'm sure you're not the first to come into a company that wants to "do .NET" and found themselves with a lot more questions than answers.  I think you'll find the forums are a great place to post these types of questions.  Of course you'll want to target the right areas but there are a ton of great people that simply enjoy helping others.  As far as books I would get my hands on the blue and white books from MSFT.  There are a ton of pattern and practice publications from the Patterns and Practices Team (often referred to as the PAG group).

    There home page is http://msdn.microsoft.com/practices/.  You'll find a complete catalog in there of everything from how to do data access to exception management to integration best practices.

    I think that'll get you jump started,  as far as some of your questions in the post above I would say for shared assemblies you want to use the GAC but be prepared to have a versioning strategy before you dive into that one.  You'll start to have issues when multiple applicaitons use the same assembly version and you need to do a hotfix (like testing all of the other apps for example).

    I hope this in some way helps and if you have some architecture questions keep them coming!!! Good luck. 

    Thursday, February 9, 2006 12:04 PM
  • Aloha!

    Maybe this document can help in some points of your question (versioning (source code and database, automated testing):

    http://www.bbv.ch/pdf_files/DevelopmentProcess.pdf

    It's a case study on a real project and reflects sessions learned in a mid-size project.

    Best Regards

    Wednesday, February 15, 2006 10:34 AM