Элемент управления ASP.NET ascx должен быть добавлен на пользовательскую страницу макета. Это немного ограничивает полезность элемента управления, поскольку его нельзя добавить «просто куда-либо».
Наличие веб-части обеспечивает гибкость добавления элемента управления на сайт несколько раз в разных местах или даже несколько раз на одной странице с разными свойствами.
Как уже было упомянуто, хорошо использовать CreateChildControls()
для создания элементов управления в веб-части, и не так уж много сложностей в кодировании и упаковке веб-части в решение, что делает его дополнительным усилием.
Веб-части также могут принимать подключения от "фильтрующих" веб-частей на той же странице, обеспечивая дополнительную гибкость веб-частей по сравнению с размещением на сайте элементов управления ascx.
Когда речь идет о редакторах, использующих сайт, для них очень важно иметь возможность добавлять веб-часть по сравнению с редактированием макета страницы, его публикацией, а затем созданием страниц на основе этого макета страницы, так что с точки зрения перспективы редактора сайта, разница в юзабилити действительно очень большая.
Я рекомендую пойти еще дальше и кодировать свою веб-часть, чтобы использовать файл xslt для отображения содержимого и сделать местоположение этого xslt настраиваемым свойством веб-части. Это действительно увеличивает гибкость вашего контроля.
Посмотрите на веб-часть Dataview, чтобы узнать, сколько можно сделать с добавлением пользовательского рендеринга.