Я знаю, что сборка - это что-то вроде контейнера, который собирает некоторые данные вместе. Но чем предметно сборка отличается от интерфейса например? Когда тот тоже вроде как собирает данные...
Сборка в C# - это один или несколько файлов с кодом (или данными связанными с кодом). Бывают статические сборки и динамические сборки.
Динамические - те сборки, что создаются во время выполнения.
Статические сборки - те сборки, которые хранятся на диске.
По определению, сборка - это блок приложения, чьи ресурсы доступны или только внутри данного блока, или могут экспортироваться наружу.
Пространство имён (он же - неймспейс, namespace) - это логическое соглашение, используемое во время разработки. Сборка же устанавливает область видимости в процессе выполнения. Вот и вся разница)