Sharepoint Управление веб-частями - PullRequest
2 голосов
/ 18 декабря 2008

У меня довольно большой проект, разработанный на Sharepoint и Project Server, разработанный как многоуровневое приложение. Я программно управляю веб-частями на определенных страницах веб-частей. В соответствии с выбором пользователя на одной из веб-страниц соответствующие веб-части добавляются в коллекцию веб-частей другой страницы веб-частей. Моя проблема в том, что я просто не знаю, где управлять веб-частями. Должен ли я сделать это в BLL, а затем иметь сборку, содержащую бизнес-логику, ссылающуюся на сборку пользовательского интерфейса, где находятся веб-части? (Мне нужно создавать экземпляры веб-частей при добавлении их в коллекцию, поскольку я не хочу использовать жестко закодированные строки, представляющие веб-часть dwp.)

Ответы [ 4 ]

0 голосов
/ 29 декабря 2008

Это действительно зависит от того, какой шаблон вы используете для своих слоев BLL и UI, и насколько строго вы хотите им следовать.

Если вы делаете шаблон MVP, то я бы предложил, чтобы у вас был Page, реализующий интерфейс, который имеет одну (или более) из следующих опций:

  • Стек, который Presenters для загрузки добавляется к
  • A Load_ WebPartName событие для каждой веб-части, которое затем следует вызывать, чтобы указать, какая веб-часть (и) нуждается в загрузке

Чтобы быть строго MVP, вы должны , а не ссылаться на следующие сборки в вашем проекте BLL:

  • System.Web
  • Microsoft.SharePoint
  • Microsoft.SharePoint. *

(Все сборки SharePoint будут в проектах Model или UI, BLL просто подключается к соответствующим хокам)

0 голосов
/ 26 декабря 2008

Веб-части, как правило, лучше всего управляются с помощью инфраструктуры функций / решений. Вы можете рассматривать классы веб-частей, которые вы пишете, как любой другой веб-элемент управления, и, следовательно, часть уровня пользовательского интерфейса. Я обычно сводлю информацию в файлах xml (файлы .webpart или .aspx) к минимуму. Если вы управляете ими исключительно, вам вообще не нужно использовать файлы декларативного кода.

Краткий ответ: веб-части относятся к пользовательскому интерфейсу sharepoint и не должны знать бизнес-уровень.

0 голосов
/ 29 декабря 2008

Краткий ответ, вероятно, «нет, вы не должны делать это в BLL». Пурист может утверждать, что, хотя BLL может по праву определять, что может или не может делать пользователь, именно уровень пользовательского интерфейса определяет соответствующие веб-части, которые должны отображаться в результате.

Например, BLL может определять возможности пользователя и выставлять его в виде ролей, или разрешений, или чего-то другого со значением, связанным с доменом (например, роль утверждающего расписания, разрешение утвержденного расписания и т. Д.). Затем они могут быть сопоставлены с набором веб-частей уровнем пользовательского интерфейса (например, веб-частью утверждения расписания). Таким образом, BLL эффективно определяет возможности пользователей, а уровень пользовательского интерфейса определяет пользовательский интерфейс для этих возможностей.

0 голосов
/ 22 декабря 2008

Можете ли вы упаковать веб-части как функцию или набор функций, а затем просто управлять активацией / деактивацией (-ями) функций через класс менеджера веб-частей?

Любое программируемое массирование веб-части, которое должно произойти на соответствующей странице веб-части, может быть обработано в приемнике функций, поэтому вашему менеджеру не нужно так знать об интерфейсе веб-части.

НТН, JT

...