====== How to structure an application ====== In VO, there are applications, and every application consists of one or more modules, and every module has from zero to X entities. X#, since it uses the C# base does not have a repository, but is based on source code files. It is a good rule to keep a class per source code file and name the file like the class. To structure your application, you can uses directories, so your application looks like a tree. Smaller source code files give you more oversight over your code, and using directories you can collapse and expand parts of your application in the Project Explorer (regardless if XIDE or VIsual Studio). It can also be a good idea to use namespaces, and have the namespace like the name of your assembly - so knowing the namespace of a class, you know also in which assembly it is defined. (this is not true for the some assemblies in the .NET framework - some of them contain more than one namespace, and some namespaces are distributed over different assemblies). As described in the topic about the [[assemblies|Assemblies]] it is convenient to split your applications in different assemblies, that can also be used in different projects. Specially when compared to VO, it is very important to split up your application. In VO, many people uses monolithic applications, and thanks to the incremental compiler and the repository, they start relatively fast when launched from the IDE. Unfortunately this is not more the case with the .NET Framework: .NET apps are compiled fully every time, and before starting the application it must be built completely. Therefore you working speed (write - compile - run) will be much better if you are using modular applications. .NET permits much more modularity than VO, so use it.