In .NET parlance, all controls or programs are called assemblies. An assembly is a single file or a group of files that comprise a program, including the security management, versioning, sharing, and deployment information as well as the individual services that the program utilizes.
Services perform discrete functions ranging anywhere from simple requests to complicated business processes that combine information from multiple sources. A .NET assembly is a group of services that can be assembled like building blocks into a cohesive business application, or it can be as simple as an individual program that performs some discrete functions.
An assembly may appear as a single ".dll" or ".exe" file. Assemblies can be listed in a Global Assembly Cache (GAC) on an end user's machine.