Hello:
I like trying to stay organized when developing, grouping related *.cs flies together into their own folders:
->Project
--->Enums
--->Exceptions
--->Extensions
--->Providers
--->Configuguration
--->Design
--->etc.
Manager.cs
As you all know, Visual Studio, by default, creates a new Namespace for each folder:
Company.Product.Enums.MyEnumClass.cs
...
Company.Product.Exceptions.ExceptionBase.cs
etc.
Which has pros...and cons.
The good side is that with intellisense, it becomes trivial to figure out how an assembly was designed: you see all the parts, and only the parts you want (compared to having every single class, enum, static extension clases, business entity, manager, provider, etc. all in one namespace.
The downside is that...you end up having to use a real pile of includes to get coding.
using Company.project.Enums;
using Company.project.Model;
using Company.project.Extensions;
...
etc.
And this way of working has problems...which become most glaring with Extensions...It's one of those cases where it becomes clear that the way I'm going about this is not great (so easy to forget to include using Extensions, and not know that there were already methods to do what I wanted...)
So...on one hand, there is the option of staying organized the way I've been doing for years, and allowing Intellisense to be the way that a new user of an assembly quickly gets up to speed with its functionality, and just lump it for the includes..., the other way is to put everything in one namespace...and write good docuementation on how to get started with the assembly... (more cost/and honestly, might never get done for small projects, etc.)
The official MSDN documentation on Namespaces doesn't give advice on which way to go: http://msdn.microsoft.com/en-us/library/893ke618(VS.71).aspx
THerefore, before I change my ways, I'm very interested in what others are doing, and why...what are you doing, and why exactly?