Вопрос 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, поэтому его можно также обернуть в слой службы.
Удачи и не стесняйтесьсвязаться со мной напрямую для более глубокого обсуждения.