The developer has several options when it comes to packaging modules into assemblies. How you divide up the application into modules that go into assemblies depends on several factors. These factors include:
Versioning - The assembly is the smallest unit of versioning in the NGWS runtime. Group modules in an assembly that you want to have the same version information.
Reuse - If you intend to reuse the modules of an assembly, such as in a shared assembly, group these modules into their own assembly.
Security - Group modules into assemblies that contain types that require the same security permissions.
Scoping - Group modules containing types that you want to restrict their visibility into the same assembly.