Source Tree Structure

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Newbie to .NET from Java, have a question about requirements/conventions for
source tree layout. In Java there a convention-bordering-on-requirement that
a source file's location in the source tree be determined by the package it
belongs to. Java IDEs do this automatically. I haven't found any
documentation for this in dotnet. VS by default dumps new source files into
the root regardless of namespace. Are there any conventions for this? Thanks!
 
No, there is no relation between namespaces and the source file locations in
..NET. By default, if you create a repertory and create a source file there,
VS.NET will add the name of the repertory to the namespace but it's not
mandatory and can be changed.
 
Hmm, not sure I follow. I wasn't able to find anything on "repertory", a term
I'm not familiar with. But I take what you said below to mean that VS will
follow the same convention as Java for a pre-existing source tree? For
example, with the following source file:

/com/company/xxx/yyy/MyClass.cs

VS will add a namespace statement of "com.company.xxx.yyy" to the source?

If so, does that mean that that's the typical convention that people follow?
Just looking for a consensus opinion. Thanks!
 
Repertory has the same meaning as Directory or as Folder.

You are right about your example, if /com is the root or the starting
directory of your solution. This is mandatory in Java but not in .NET.

I don't know if that is the typical convention followed by people but it
doesn't hurt to follow it. Also, this is for C#; it is possible that
VStudio for VB.NET follows a different convention.
 
pearsons_11114 said:
Hmm, not sure I follow. I wasn't able to find anything on "repertory", a
term
I'm not familiar with. But I take what you said below to mean that VS will
follow the same convention as Java for a pre-existing source tree? For
example, with the following source file:

/com/company/xxx/yyy/MyClass.cs

VS will add a namespace statement of "com.company.xxx.yyy" to the source?

No, VS will not modify any source when you load it. You can define a root
namespace for all source files you create(which defaults to the project
name), but loaded source will always remain the same.

VS will also append sub-directories to the namespace, so for a root
namespace of X, if you create a source file in a folder within the project,
you will get X.FolderName as the namespace in the file.
If so, does that mean that that's the typical convention that people
follow?
Just looking for a consensus opinion. Thanks!

I follow a convention something closer to

<assem>/<sub1>/<sub2>

so for a project named OConnell.Magic with the namespace
OConnell.Magic.Wands the directory structure would be

OConnell.Magic/Wands/

and the assembly would be named OConnell.Magic. My general rule is if I want
to go above the root namespace its time to create a new assembly.
 
Back
Top