Dashboard > Spring.NET > Project Structure
  Spring.NET Log In View a printable version of the current page.  
  Project Structure
Added by dummy_user, last edited by Mark Pollack on Jun 09, 2006  (view change)
Labels: 
(None)

The roadmap for placement of namespaces in DLLs

Spring.Core.dll
===============
Spring.Collections
Spring.Context
Spring.Core
Spring.Objects
Spring.Pool
Spring.Resources
Spring.Util
Spring.Validation

Spring.Aop.dll
==============
Spring.Aop
AopAlliance

Spring.Data.dll
===============
Spring.Ado
Spring.Transaction

Spring.Services.dll
===================
Spring.Remoting
Spring.Scheduling
Spring.Cache
Spring.Msmq

..etc...



Spring.Web.dll
==============
Spring.Web

The physical project directory structure is drawn below with a few file entries for clarity. It is similar to the structure used by NAnt.

It can be found in the SourceForge CVS using the following parameters:

  • Host: cvs.sourceforge.net
  • Repository Path: /cvsroot/springnet
  • Module: Spring.Net
Spring.Net\
    Spring.Net.sln
    Spring.build

    \lib
        \net
            \1.1\nunit.framework.dll
            \1.0
        \mono

    \src
        \AopAlliance
            AopAlliance.csproj
            AopAlliance.build
            \Aop
            \Interceptor

        \Spring
            CommonAssemblyInfo.cs

            \Spring.Core
                Spring.Core.csproj
                Spring.Core.build
                \Objects
                    IObjectWrapper.cs

            \Spring.Aop
                Spring.Aop.csproj
                Spring.Aop.build
                \Aop
                    \Framework
                    ...

            \<other projects....>

    \test
        \Spring
            CommonAssemblyInfo.cs

            \Spring.Core.Tests
                Spring.Core.Tests.csproj
                Spring.Core.Tests.build
                \Objects
                    ObjectWrapperTestSuite.cs
                ...

            \Spring.Aop.Tests
                Spring.Aop.Tests.csproj
                Spring.Aop.Tests.build
                \Aop
                    \Framework
                ...


            \<other projects ...>

     \examples
        \Spring
           \Spring.Examples.MovieFinder
              Spring.Examples.MovieFinder.sln
              Spring.Examples.MovieFinder.csproj
              \Examples
                \MovieFinder
                   IMovieFinder.cs
                   ...
  • VS.NET solution is set up to place the build output to the directory Spring.Net\build\VS.NET\<Project Name>. This avoids a bug in VS.NET when many projects are compiled to the same output folder.
  • The solution file Spring.Net.1.0.sln contains the projects that are part of the 1.0 release. Spring.Net.Release.sln is used to create the release and include the msi installer project as well as the quick starte examples. The same convention applies for Spring.Net.1.1.sln and Spring.Net.Release.1.1.sln
  • NAnt build scripts are configured for each project in the hierarchy. Main build file (Spring.build) calls individual project files in order to build and test the whole solution.
  • Project references to third party .dll are made relative to the lib directory and not those that might be stored in the GAC.
    • The subdirectory structure of lib separates out the various .dll specific to versions of the .NET framework. Right now this applies to log4Net and NUnit. This structure also plays nice with internal functions of NAnt to make the NAnt.build file easier to write.
    • In order to have only relative links in VS.Net project files, it is important that you follow these gudelines.
  • Many folders contain readme.txt file that explains what they contain. Please refer to thos files if you are unsure where to put something.
  • There are a few .cvsignore files that ignore the VS.NET user artifacts and object/binary directories.
  • When working with the example programs care must be taken to preserve the Hintpath in the .csproj so that it will refer to the "deployment" location of the Spring libraries, namely HintPath = "..\..\..\bin\Spring.Core.dll. For day to day development it is more convenient to work against the build location from the main Spring .sln file. To do this change the settings in your .csproj.user file to be the following
<VisualStudioProject>
    <CSHARP LastOpenVersion = "7.10.3077" >
        <Build>
            <Settings ReferencePath = "C:\projects\Spring.NET\build\VS.Net\Spring.Core\Debug\" >
                <Config
                    Name = "Debug"

           ... etc ...

where the ReferencePath points to your working development directory.

Anonymous Checkout for Windows

There are several CVS clients for Windows now, but if you are only checking out the source, the fastest, simplest thing is to install the command line CVS client

For more, see the CVS Home page.

Then, you can just follow the default instructions on the Spring.NET CVS page.

So, after installing CLI CVS, and putting it on your path, for Spring.Net, you would

  • Create a project folder somewhere (say, C:\projects\SourceForge\springnet)
  • Open a command prompt box
  • Change to the root of your project folder
  • Run the login command
    cvs -d:pserver:anonymous@springnet.cvs.sourceforge.net:/cvsroot/springnet login
  • Run the checkout command
    cvs -z3 -d:pserver:anonymous@springnet.cvs.sourceforge.net:/cvsroot/springnet co -P Spring.Net
  • Mission accomplished!

For Subsequent updates, login and then run the Update command

cvs -d:pserver:anonymous@springnet.cvs.sourceforge.net:/cvsroot/springnet login
cvs -z3 -d:pserver:anonymous@springnet.cvs.sourceforge.net:/cvsroot/springnet up -P Spring.Net

Anonymous Checkout for Windows with TortoiseCVS

See the attached screenshot for info on what to fill in the Checkout Module form.

Site running on a free Atlassian Confluence Open Source Project License granted to Spring Framework. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.5 Build:#811 Jul 25, 2007) - Bug/feature request - Contact Administrators