Вы можете использовать файлы ASCX в веб-частях ... просто загрузите их из класса веб-частей в CreateChildControls, например, так:
var control = Page.LoadControl("/_CONTROLTEMPLATES/yourproject/your.ascx");
Controls.Add(control);
Таким образом, вы можете использовать обычный способ Visual Studio для разметки вашей веб-части. Гораздо приятнее, чем встраивание HTML в код, а это, мягко говоря, боль.
(это также намного лучше, чем использование SmartPart, которое вызывает проблемы с уровнем доверия и развертыванием)