Projects

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.

Solution setup

The root of Catel follows a frequently used directory layout:

articles
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.

deployment
Catel is available on NuGet. This folder contains all the NuGet assemblies for all versions (including the older Catel versions) and the NuGet scripts.

design
Contains the design items required for Catel. For example, this folder contains the logo of Catel in several formats.

doc
Contains the documentation and all text files will explanations about Catel.

lib
Contains all the external libraries used by Catel. The libraries are sorted by target framework (thus NET35, NET40, SL4, SL5, WP7, etc).

output
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")).

snippets
Contains all the code snippets available for Catel.

src
Contains the actual source code.

templates
Contains all the item- and project templates available for Catel

Projects

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:

Articles
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.

Silverlight
The Silverlight folder has a few subfolders. It contains folders with Silverlight specific examples, test projects and of course the actual Silverlight libraries.

Windows
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.

WP7
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.

Last edited Apr 14, 2011 at 10:25 AM by GeertvanHorrik, version 3

Comments

No comments yet.