An assembly is the smallest unit of deployment in .NET. Assemblies contain compiled code (IL), metadata, and resources, and are deployed as DLL or EXE files. Namespaces, classes, and interfaces are logical organization within assemblies but cannot be deployed independently.