Как использовать SharePoint только в качестве инструмента управления контентом из пользовательского веб-приложения? - PullRequest
3 голосов
/ 05 июня 2011

У нас есть много пользовательских веб-приложений (внешних и внутренних), написанных на технологиях Classic ASP и ASP.NET 2.0.Внутренние пользователи могут загружать файлы на эти веб-сайты, которые затем могут просматривать внешние пользователи.В некоторых случаях внешние пользователи также могут загружать документы.Снимок экрана # 1 дает краткое представление о существующей архитектуре.

  1. Внутренние пользователи загружают документы в custom web applications.Эти документы хранятся в структуре папок, определенной в веб-приложении.

  2. Метаданные и права пользователя, например, кто может получить доступ к документам, хранятся в базе данных SQL Server.

  3. Тот же набор документов, который загружается в custom web applications, также существует в SharePoint.Однако пользовательские веб-приложения не знают о SharePoint.Таким образом, пользователи должны загрузить их из SharePoint, а затем загрузить их в пользовательские веб-приложения.В настоящее время мы используем SharePoint 2010.

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

Снимок экрана # 1 :

1

Снимок экрана # 2 показывает архитектуру, которую я пытаюсь достичь.Я сделал очень мало разработки для SharePoint.В основном я использовал веб-сервисы SharePoint для получения содержимого списка, но не более того.Наши будущие пользовательские веб-приложения могут быть написаны с использованием ASP.NET MVC.Пожалуйста, найдите вопросы после скриншота.

Скриншот # 2 :

2

Вот мои вопросы:

  1. Я бы хотел, чтобы internal users продолжал загружать и поддерживать свои документы в SharePoint.Модель безопасности пользователя уже определена в базе данных SQL Server.Эти разрешения безопасности должны быть доступны в свойствах документа SharePoint, чтобы пользователи могли выбирать, кто может просматривать документ из пользовательских веб-приложений.Как мне этого добиться?Нужно ли мне копировать информацию о разрешениях пользователей SQL Server в SharePoint?

  2. Я считаю, что SharePoint Web Services или Business Connectivity Services (BCS) могут помочь в извлечении документа и связанной с ним информации из SharePoint.Какой из них лучше подходит для этого сценария?

  3. Пользовательское веб-приложение должно отображать только подтвержденные версии документов.Если пользователь извлек документ в SharePoint, чтобы внести какие-либо изменения, эта извлеченная версия документа не должна быть видна внешним пользователям.Это возможно?

  4. Кто-нибудь пробовал этот подход?Есть ли подводные камни с этой моделью?Есть ли проблемы с производительностью с этим дизайном?

  5. Будет ли этот проект каким-либо препятствием, если я переписываю наши существующие приложения с использованием ASP.NET MVC?

  6. Можно ли использоватьФункция поиска SharePoint в пользовательском веб-приложении (ASP.NET Web Forms / ASP.NET MVC)?Другими словами, могу ли я отправлять критерии поиска из пользовательского веб-приложения, и чтобы SharePoint выполнял поиск и возвращал результаты обратно в пользовательское веб-приложение?

Я действительно ценю ваши данные.

Заранее спасибо.

1 Ответ

2 голосов
/ 05 июня 2011

Вопрос 1

Трудно сказать, не имея более подробной информации.Поэтому я предполагаю, что вы в настоящее время используете Active Directory для своего хранилища аутентификации.Таким образом, это означает, что ваш SQL Server определяет список ролей, а затем назначил членство для этих ролей.Я предполагаю, что назначенное вами членство принадлежит пользователям или группам AD.Если это так, то я думаю, что вы на правильном пути, чтобы подтолкнуть ваши разрешения от SQL Server в SharePoint.API-интерфейс SharePoint будет соответствовать вашим потребностям, однако в SharePoint нет встроенного механизма синхронизации изменений разрешений, что означает, что вы в конечном итоге будете писать много кода.Я бы порекомендовал вам исследовать продукты, которые могут обрабатывать синхронизацию для вас.Microsoft MIIS (я думаю, что теперь это называется Forefront Identity Management) предлагает набор шаблонов архитектуры, которые вы должны исследовать.


Вопрос 2

Веб-службы SharePoint или службы клиентского доступа SharePointдолжно работать нормально.Я настоятельно рекомендую использовать шаблон прокси для изоляции вашего приложения от вызовов SharePoint (чтобы вы могли изолировать свое приложение от обновлений SharePoint и возможных изменений сервера управления контентом).


Вопрос 3

Да, это возможно.Если вы используете функции публикации SharePoint Server (НЕ SharePoint Foundation), у вас будет простой способ определить текущую опубликованную версию.В противном случае учетная запись службы, к которой вы запрашиваете, должна быть настроена так, чтобы она могла читать только опубликованные версии, тогда SharePoint автоматически обрежет ваш запрос.


Вопрос 4

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


Вопрос 5

Нет, если вы реализуете его как сервисный уровень.Вы бы просто использовали шаблон репозитория для вызова сервиса и возврата сущностей для вашей модели.


Вопрос 6

Да, поиск доступен через API, поэтому его можно также обернуть в слой службы.


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

...