Я склонен не использовать директивы компилятора, потому что они загромождают вещи быстро. Один способ смягчить его при реальной необходимости в них состоит в том, чтобы поместить их в частичный класс и иметь сборку, игнорируют что .cs файл при создании производственной версии.
WebControl не отображает таблицы или что-либо подобное, если вы не сообщите об этом. Что у него есть, так это особенности стиля, которые большинство пользователей ожидают от элемента управления, который визуализируется с помощью пользовательского интерфейса.
Его использование не требует больших затрат. Попробуйте и посмотрите, не возникнет ли у вас проблем.
Control
Наследование от класса Control позволяет нашему элементу управления использовать преимущества методов визуализации, предоставляемых классом Control, а также использование ViewState.
WebControl
Класс WebControl является производным от класса Control. Однако, если мы унаследуем наш настраиваемый элемент управления от WebControl, мы получим бесплатную поддержку многих визуальных аспектов нашего элемента управления, таких как размер шрифта, классы CSS, цвет фона и т. Д.
От какого класса я должен унаследоваться?
Когда вы создаете настраиваемый элемент управления, который требует небольшого пользовательского интерфейса или не требует его вообще, тогда вы должны быть производным от класса Control. Если для вашего элемента управления действительно требуется расширенная поддержка пользовательского интерфейса, вы должны унаследовать его от WebControl.
From: http://dotnetslackers.com/articles/aspnet/ASPNETCustomControlsPart1. aspx
Итак, у вас есть вопрос? Я думаю, что различия между ними подробно описаны в статье MSDN.