Многоразовая библиотека управления пользователями ASP.NET: поставщик виртуального пути или копия ascx / aspx - PullRequest
0 голосов
/ 22 декабря 2009

У меня есть веб-приложение ASP.Net, которое я хочу использовать в качестве многоразовой библиотеки управления пользователями в других веб-приложениях.

Одним из решений этой проблемы является использование того, что Скотт Гатри описал здесь:

http://weblogs.asp.net/scottgu/archive/2005/08/28/423888.aspx

, то есть для копирования файлов ascx / aspx (без их кода) в веб-приложениях, использующих библиотеку управления.

На самом деле я вижу другое решение: внедрить ascx / aspx в библиотеку пользовательских элементов управления, а затем использовать пользовательский поставщик виртуальных путей для их получения.

Кто-нибудь знает, какое решение лучше?

С точки зрения развертывания поставщик виртуальных путей выглядит лучше. Однако решение «ascx / aspx copy» проще в реализации (не нужно создавать собственного провайдера виртуального пути).

Ответы [ 3 ]

1 голос
/ 22 декабря 2009

Я столкнулся с такой же ситуацией несколько недель назад, и я не мог заставить работать решение Скотта. Вместо этого я использовал пользовательские серверные элементы управления и поместил их в собственную библиотеку классов.

1 голос
/ 22 декабря 2009

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

1 голос
/ 22 декабря 2009

Мне действительно не нравится решение Скотта. Я считаю, что это некрасиво и создает накладные расходы, которые не нужны. Я также видел нечто подобное в действии, и это просто не сработало для меня.

У меня тоже было такое же требование, как вы описали, и я использовал опцию поставщика виртуального пути. Таким образом, я мог бы без проблем использовать все свои пользовательские элементы управления между веб-приложениями.

У провайдера виртуального пути есть несколько проблем:

  • Если в вашем файле ascx есть какие-либо серверные теги (в javascript или в любом другом месте по этому вопросу), которые вызывают проблему, вы получите ошибку времени выполнения, которая не очень полезна.
  • Вам необходимо перестраивать приложение каждый раз, когда вы вносите изменения в разметку ascx или в Javascript, который существует в самом файле, чтобы увидеть результаты. Это может быть настоящей болью, если вы пытаетесь изменить дизайн существующего элемента управления.

Я использовал решение, описанное в этой статье, и оно работало очень хорошо:

http://www.codeproject.com/KB/user-controls/EmbeddedUserControl.aspx

Надеюсь, это поможет ...

...