This is an old revision of the document!
In VO we have applications, libraries and DLLs.
In .NET we don't have any libraries, only assemblies. These assemblies can be executable files (.exe) or DLLs.
In VO, we have an incremental linker, and starting an even big application from the IDE is fast, because there are the .dbg and .vom files that contain executable code, and that are not completely rewritten on every application start.
In .NET all code is compiled all the time, and every time the complete assembly is built.
Therefore in VO is was very efficient to work with monolithic applications (there are exe files largely over 50 MB), but in .NET this not a good idea, because every build process is long (even with the fast X# compiler).
In .NET you should use DLL files (assemblies) for commonly used code, and keep the single assemblies (.exe or .dll) relatively small, so the compile - run cycle during development has not too many waitstates. And the .NET runtime works very efficientely with the DLL assemblies: they are only loaded when needed, so the start of a small application can be fast. And the applications are small because many things are resolved at runtime keeping the overhead small.