Enlisting and repository structure

Development environment and prerequisites

Laharsub project uses Mercurial source control management system. Current set of technologies the project is based on includes .NET Framework 4.0 and jQuery. The minimal set of development environment tools includes: Optionally, Visual Studio 2010 provides excellent IDE to work with source code and run the tests. Visual Studio 2010 Ultimate is what I am using, but you can try the free C# Express version.

The rest of the documentation assumes you are using TortoiseHg as a Mercurial client and that Visual Studio 2010 is installed.

Repository enlistment

Open a command line window, go to the directory where you want to create the repository, and issue the following command (assumes you have installed TortoiseHg):

hg clone https://hg01.codeplex.com/laharsub laharsub

This should create a directory called laharsub containing the current clone of the repository.

Respository structure

These are the components of the source tree:
  • Laharsub.sln - the main Visual Studio/MSBuild solution for the entire project
  • src - all product and unit test sources and Visual Studio/MSBuild projects
  • src\client - client components
  • src\client\jquery - jQuery extension implementing the publish\subscribe REST protocol
  • src\server - all server components
  • src\server\net - a .NET implementation of the server and associated tests
  • src\server\net\Laharsub.Server.Wcf - the server implementation; this builds Laharsub.exe
  • src\server\net\Laharsub.Server.Wcf.Test - unit tests for Laharsub.Server.Wcf
  • build - this directory contains built artifacts; it is not part of source control, but will be created on every build
  • build\bin - server executable and associated test binaries
  • build\vroot - web application components; this includes code and markup that will execute in the browser client (e.g. the jQuery extension and any *.html files)

Repository versioning

Repository has two branches: default and dev. The default branch (which, as the name implies, is the default branch after a new repository clone has been created) contains stable versions of the product. The dev branch is used for ongoing development and is not guaranteed to be stable. Periodic merges from dev to default are performed once a consistent set of changes has been checked into dev.

The quality level of the default branch guarantees that the product builds, all unit tests pass, and the product is FxCop clean. No such guarantees are made for the dev branch.

Public releases available in the Downloads section are created from the default branch.

Last edited Jul 12, 2010 at 12:07 AM by tjanczuk, version 2


No comments yet.