Какая разница между двумя?
Разница между пространством имен корней и именем сборки
Ответ 1
Предполагая, что вы говорите об .NET(с учетом Visual Studio), тогда пространство имен корней - это то, что каждый класс, который вы создаете в проекте визуальной студии, станет частью. Он также является базой для любых пространств имен, которые автоматически назначаются при создании класса внутри папки проекта.
Итак, с базовым пространством имен ACMECorp.Bombs все ваши классы станут частью пространства имен ACMECorp.Bombs, поэтому класс GravityBomb будет иметь полное имя ACMECorp.Bombs.GravityBomb. Класс под названием FlyingBomb, созданный в папке проекта под названием GuidedBombs, будет иметь полное имя типа ACMECorp.Bombs.GuidedBombs.FlyingBomb.
Имя сборки - это просто имя скомпилированного файла, в котором ваш код будет скомпилирован как исполняемый файл или библиотека и т.д.
Вопрос, который я часто вижу на этом, - , если ваше имя сборки будет таким же, как корневое пространство имен, а также быть таким же, как название вашего проекта (снова в visual studio). Раньше я считал, что у вас должно быть имя проекта так же, как имя сборки, такое же, как и в корневом пространстве имен, как и по умолчанию с визуальной студией. Однако, если вам нужно выполнить некоторые основные рефакторинг и переименование, это может стать болью в заднице, особенно если вы используете исходный контроль (так как вы должны начать переименование папок проекта).
Мое предложение будет состоять в том, что ваше имя проекта просто описательное имя содержимого проекта. Имя вашей сборки должно состоять из области технологии и описания компонента, а также названия компании и области технологий (в зависимости от вашего предпочтения), а ваше корневое пространство имен должно соответствовать стандарту именования Microsoft, поэтому:
Проект: доступ к биометрическому устройству
Сборка: BiometricFramework.DeviceAccess.dll
Пространство имен: ACME.BiometricFramework.DeviceAccess
Некоторые справочные материалы для вас:
http://blogs.msdn.com/brada/archive/2003/04/19/49992.aspx
Ответ 2
В .NET Framework пространство имен System разделяется на несколько сборок, в частности mscorlib.dll и System.dll