The Catel solution contains a lot of projects. This page will explain the meaning of each project and how the solution is set up in general.
The root of Catel follows a frequently used directory layout:
Contains all the Word-files for the articles written by Catel. Also contains the downloads that are available. If you are looking for the very latest version of all articles, this is the place to look.
Catel is available on NuGet. This folder contains all the NuGet assemblies for all versions (including the older Catel versions) and the NuGet scripts.
Contains the design items required for Catel. For example, this folder contains the logo of Catel in several formats.
Contains the documentation and all text files will explanations about Catel.
Contains all the external libraries used by Catel. The libraries are sorted by target framework (thus NET35, NET40, SL4, SL5, WP7, etc).
This folder will be created as soon as you make a build. All project outputs are written to this folder. The folders are sorted by configuration (Debug or Release), and are sorted by target framework (thus NET35, NET40, SL4, SL5, WP7, etc). Keep in mind that
the different configurations (Any CPU, x86 and x64 are not written to a separate folder (this would create "folder hell")).
Contains all the code snippets available for Catel.
Contains the actual source code.
Contains all the item- and project templates available for Catel
When you open the solution of Catel, you see a lot of folders and projects. The solution folders should speak for itself, they are named very descriptive (for example, the folder "Code snippets" contains the "Code snippets"). The most important
folder to discuss here is the Src (source) folder. It contains the following 4 subfolders:
Contains all the code written for articles. You can play a bit with the code, or simply learn from it or use it in your projects.
The Silverlight folder has a few subfolders. It contains folders with Silverlight specific examples, test projects and of course the actual Silverlight libraries.
The Windows folder has a few subfolders. It contains folders with Core and WPF specific examples, test projects and of course the actual Core and Windows libraries.
The WP7 folder has a few subfolders. It contains folders with WP7 specific examples, test projects and of course the actual WP7 libraries.
Linking of files
A lot of files are shared between projects. Therefore, it might be a little confusing for people that are not used to this kind of usages of projects in Visual Studio. The core files for all libraries are initially in the Core35 and Windows35 projects. All
other libraries simply link to these files so the behavior is consistent. Only when a customer target framework requires target framework specific code (such as Silverlight or Windows Phone 7), the code is added to that project.
If there are several versions of the same target framework supported, then the general rule is that the actual files are located in the lowest version. As an example, if Silverlight requires a Silverlight specific implementation of a class, the file will be
included in the SL4 project (of course only if it's not a SL5 specific feature). Then, the SL5 library will simply link to this file.