The following directory structures should be supported by NPanday

1. Multi-module Projects


Multi-module project with a parent pom containing one or more modules, then a subdirectory for each module, which equates to a VS "project". The .sln file sits beside the parent pom, and each subdirectory contains a .csproj, pom.xml and source code. Source code is not typically put in a subdirectory under the module, but it might be. NUnit test code may be within each module in a directory named "Tests", or it may be in a separate module.

{noformat}
C:\PROJECTS\MYSOLUTION
│ MySolution.sln
│ pom.xml

├───MyClassLibrary
│ │ Class1.cs
│ │ Class2.cs
│ │ Class3.cs
│ │ Class4.cs
│ │ MyClassLibrary.csproj
│ │ pom.xml
│ │
│ └───Properties
│ AssemblyInfo.cs

├───MyClassLibraryTest
│ │ MyAppTest.cs
│ │ MyClassLibraryTest.csproj
│ │ pom.xml
│ │
│ └───Properties
│ AssemblyInfo.cs

└───MyConsoleApplication
│ MyConsoleApplication.csproj
│ pom.xml
│ Program.cs

└───Properties
AssemblyInfo.cs
{noformat}

2. Flat Single Module Project


Flat structure with pom.xml, .sln, .csproj and source code all in the same directory. Source code is not typically put in a subdirectory under the module, but it might be. If present, NUnit test code should be in a directory named "Tests", which is not packaged in the main artifact. See note below about "nested" projects. The "flat" structure is only supported as a single project with no sub-modules, for projects of type 'library' (dll) and 'exe'.

{noformat}
C:\PROJECTS\FLATSINGLEMODULE
│ Class1.cs
│ FlatSingleModule.csproj
│ FlatSingleModule.sln
│ pom.xml

└───Properties
AssemblyInfo.cs
{noformat}

3. Visual Studio Web Site Project


Visual Studio "Web Site" (File -> New -> Web Site) project with .sln file copied into the project directory and modified to normalize paths. NPanday will build a zip file containing the aspx files and compiled dlls (in a bin/ directory). Note: There is an issue with building this type of project twice in a row: you must 'clean' before building again.

{noformat}
C:\PROJECTS\WEBSITE2
│ Default.aspx
│ Default.aspx.cs
│ WebSite2.sln
│ pom.xml

└───App_Data
{noformat}

4. Visual Studio ASP.NET Web Application


Visual Studio "ASP.NET Web Application" (File -> New -> Project, "ASP.NET Web Application"). Structure is similar to (1) with a parent pom and .sln file at the top, plus a subdirectory for each project/module. NPanday should build a .zip file as in (3) containing pages and dlls.

{noformat}
C:\PROJECTS\MYPROJECT
│ MyProject.sln
│ pom.xml

└───MyWebApplication
│ Default.aspx
│ Default.aspx.cs
│ Default.aspx.designer.cs
│ pom.xml
│ MyWebApplication.csproj
│ Web.config

├───bin
├───obj
│ └───Debug
│ └───TempPE
└───Properties
AssemblyInfo.cs
{noformat}

Note: Some versions of NPanday have limited support for a "nested" project-within-project structure with source code in the parent directory. This structure will have a .sln and .vbproj file at the top, then directories for additional modules beneath, each containing a .vbproj file. This structure is NOT RECOMMENDED and not likely to be fully supported by Maven tools such as the Release plugin.

TODO: ASP.NET Web Service Application

TODO: ADO.NET project structure

NOTE: In the examples, .vbproj and .csproj are interchangeable, each structure should work for any language, and a solution may be composed of different modules using different languages. In addition, tests within a module may be written in a different language than the main artifact.

Last edited Sep 28, 2009 at 6:48 AM by jocaba, version 2

Comments

No comments yet.