Как правило, подписывание кода полезно, когда ваш продукт является программным обеспечением или вы работаете в среде, где каждый компонент программного обеспечения находится под пристальным вниманием. Подписав специальное программное обеспечение вашего офиса, вы можете установить более доверительные отношения, чем другие.
Обычно вы генерируете закрытый ключ, а затем, когда вы идете в сборку, вы можете прикрепить этот закрытый ключ на сервере сборки. Это не позволяет разработчикам в компании иметь доступ к закрытому ключу.
То, что вы подписываете, полностью зависит от вас. Я бы сказал, что модули, которые в наибольшей степени подвержены абсолютной неработоспособности при определенной среде доверия, должны быть подписаны ... например, библиотеки DLL, которые обращаются к объектам файловой системы или строкам подключения к базе данных. Я бы просто взял в привычку подписывать наименьшее количество кода, а затем наращивать его, иначе вы рискуете подписать все, и тогда предполагается, что все в вашей организации безопасно для работы. Опять же, все зависит от уровня безопасности вашей организации.