An Explanation of the Solution Structure
When you open the WWPlatform solution, you will see the following structure:
- The Database folder contains all the code/scripts/etc to build the database that the system uses.
- NOTE: To run ALL the unit tests please ensure you run BuildTest.cmd.
- NOTE: To run the applications, please run Build.cmd.
- The IntegrationTests folder holds a few integration/functional tests. This will be moved into a separate solution at a later date.
- The Lib folder contains external libraries needed to build the solution or placeholders for these files. Please look for README files in each folder to help find external dependencies.
- The Solution Items folder contains a few files needed for the solution, a readme file, and the Code Analysis (FxCop) rules we are using.
- The UnitTests folder contains five unit test projects, one for each of the main projects in the code base.
- WWPlatform.Core contains classes that may be used by several projects for cross cutting concerns
- WWPlatform.Dtos contains data transfer objects used byt the web service and the smart client application
- WWPlatform.Model contains the models, created first, via TDD, to steer the rest of the development process. It also includes a concrete implementation of the models and repositories using Entity Framework 4.0.
- WWPlatform.Web is the B2C Web application (ASP.NET MVC) used by consumers.
- WWPlatform.Windows is the retailer's smart client application for inventory and order management. This WPF application uses the Composite Application Library (aka. Prism) from http://www.codeplex.com/CompositeWPF. The source code for Prism is
part of the ExternalCode solution. This source is unmodified except to fix up references to external DLLs like Unity and the CommonServiceLocator, retarget for .NET4.0, and code formatted to match our formatting standards. It is included as there is not a
binary release of the Composite Application Library at this time.
- NOTE: To allow the solution structure to be a bit less intimidating, we have condensed all of the projects that would normally be associated with a Prism project into the application as folders.