Как настроить библиотеку элементов управления для сайта DNN

Я видел много постов (например, см. /questions/30390060/sborka-polzovatelskih-elementov-upravleniya-v-raznyih-proektah/30390078#30390078), в которых говорится, что пользовательские элементы управления ASP.NET (.ascx) не предназначены для использования в разных проектах / сборках. Скорее правильным способом было бы создать сервер / пользовательский элемент управления.

У меня вопрос, как тогда было предназначено для создания модуля DNN? Модули DNN обычно имеют файл.ascx, который наследуется от DotNetNuke.Entities.Modules.PortalModuleBase, который в конечном итоге наследуется от System.Web.UI.UserControl.

Это правильный способ создания модуля DNN, и если так, то я буду испытывать трудности на этом пути?

2 ответа

Если вы следуете "букве закона", изложенной в связанном посте, то это правильно. Однако в случае модуля DNN создаваемые вами элементы управления, ваши файлы.ascx, используются вашим кодом и просто загружаются с помощью DNN.

Учитывая то, что вы являетесь их потребителем или вашим модулем, описанные риски развертывания или изменения на самом деле не влияют на DNN.

Если бы вы собирали модуль, а затем позволяли другим потреблять ваши элементы управления, в этом случае все становится немного сложнее, и переход на маршрут пользовательского элемента управления может облегчить его использование.

(Хорошим примером того, о чем они говорят в отношении сложности обновления, может служить элемент управления DNN TextEditor. Учитывая корневую относительную ссылку на "~/Controls/TextEditor.ascx", вы должны обмануть VS, чтобы узнать, для чего предназначен правильный тип. контроль.)

Но в целом для решения на основе DNN да.ascx является приемлемой практикой.

Если вы начнете с шаблонов модулей, созданных Крисом Хаммондом (Christoc.com), вы практически не будете испытывать боли.

Другие вопросы по тегам