none
разработка дополенения для Sharepoint 2010, вопросы по реализации идеи RRS feed

  • Общие обсуждения

  • Доброго времени суток, вот появилась задача разработать дополнение к sharepoint 2010 приложению.

    Поскольку с этим не сталкивался вообще - то надо разбираться, но материала слишком много - с учетом временных ограничений надо пытаться читать по существу :); немного почитал - полистал, возникло несколько идей и вопросов - как сделать это правильно. Хотел бы услышать мнение-советы людей, которые сталкивались с аналогичными задачами-проблемами...

    Есть развернутое приложение Sharepoint 2010. оно хранит какую-то внутреннюю информацию о компании (сотрудники) и ее процессах.
    Появилась задача написания дополнительного функционала к приложению (воркфлоу - где можно:
     1.1) кастомно создавать обьекты: события - настраивать определенные параметры каждого,
     1.2) добавлять в него участников из списка сотрудников,
     1.3) определять задачи (список из существующих и добавлять новые),
     1.4) трекать прогресс выполнения каждой задачи
     1.5) просматривать прогресс выполнения и собирать определенную статистику,
     1.6) управление правами - не давать пользователю видеть того, что не является его отвественностью

    Встала проблема - что логика получается достаточно хитрая и UI вполне сложный - часть данных хранится в AD (информация пользователей), часть данных в Sharepoint (листы : задачи, описание... и некоторые данные по сотрудникам), и как это реализовать (сынтегрировать) в контексте Sharepoint - пока большая неопределенность для меня.

    Что думается делать:
    1) Данные: поскольку логика и взаимосвязь сущностей не тривиальная (как мне кажется) = вынести эту предметную область во внешнюю базу данных (где построить отношения между основными сущностями) - на выходе получаем схему данных предметной области для работы

    2) Модель и Бизнес логика изменения : сверху базы данных сделать надстройку из модели классов (model) + сервисов - для управления данными (data layer) и их преобразованием (business layer) - на выходе получаем модель данных + возможность работы с ней в контексте созданной предметной области

    3) Интеграция с внешней средой: создать сервисы (WCF, например) - которые будут инкапсулировать логику работы с данными с помошью прокси-моделей (DTO) и уже созданных сервисов (business layer) со второго шага - на выходе получаем набор API которые позволяют работать с предметной областью.

    4) интеграция и разработка UI ... а вот тут начинаются вопросы (Что смущает, не понятно ... надо разбираться и читать).

    4.1) разнесенность данных - с одной стороны часть данных уже хранися в Sharepoint - данные по пользователям тоже не совсем хочется дублировать в предметной области:

        4.1.1) есть идея перенести часть необходимых листов в перечисления (или сущности) предметной области, либо же можно (я подозреваю) вытаскивать данные по листам из Sharepoint,

        4.1.2) информацию по пользователям- получать из Sharepoint - а во внешней баще данных только хранить ID + имя пользователя - при необходимости получать остальные данные из Sharepoint (пока не совсем понимаю - как это реализовать - возможно вытягивать это через сервисы?)

    4.2) вопрос поддержания защиты (безопасности) данных = разрешать просматривать только то, что можно - тут совсем не хочется изобретать велосипед - sharepoint позволяет это делать - возможно перенесение этой логики (проверки)?

    4.3) разработка UI части - тоже возможно решение в оба направления:

        4.3.1) вполне логично сделать это как Sharepoint Visual Web part project (в Visual Studio) - где реализовать формы и необходимые переходы, а потом попытаться внедрить это в развернутое приложение. Проблема стоит в том (то что посмотрел навскидку) - что UI компоненты - принимают в качестве датасурс XML файлы, сами компоненты - asp.net. 

        4.2.2) разработанное приложение внедрить через WCF сервисы как кастомные типы в Sharepoint Designer - используя их, попробовать создавать кастомные листы и UI элементы в дизайнере.

    4.4) Использование JavaScript - насколько оно здесь будет оправдано и какие подвордные камни стоит ожидать?

    вот так сумбурно и пока ни о чем у меня получилось.
    Буду признателен, если кто поделится собственный опытом (хотя бы направлением идей) в реализации подобных задач (с точки зрения сложности UI + сложной схемы данных и разнесенности данных).
    Заранее спасибо за дельные вопросы (может я чего не заметил) и советы ).
    Удачи.



    15 января 2013 г. 9:06