Sergey Belskiy Technical Blog

All about SharePoint

Написание своего BDC в SharePoint 2010 с использованием LOB и LINQ

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

В SharePoint 2010 каталог бизнес-данных получил новое имя – службы связи с бизнесом (Business Connectivity Services, BCS), он включен во все редакции, в том числе и в SharePoint Foundation 2010, а также получил дальнейшее развитие, особенно в части удобства использования.

В пакеты Microsoft SharePoint Server 2010 и Microsoft Office 2010 входят Microsoft Business Connectivity Services, набор служб и возможностей, обеспечивающие подключение решений SharePoint к источникам внешних данных и определение внешних типов контента на основе этих внешних данных. Внешние типы контента аналогичны обычным типам контента и позволяют представлять внешние данные и взаимодействовать с ними в списках SharePoint (известных как внешние списки), веб-частях и клиентах Microsoft Outlook 2010, Microsoft SharePoint Workspace 2010 и Microsoft Word 2010. В число внешних систем, к которым Microsoft Business Connectivity Services могут подключаться, входят базы данных SQL Server, приложения SAP, веб-службы (включая веб-службы Windows Communication Foundation), пользовательские приложения и веб-сайты на основе SharePoint. Используя Microsoft Business Connectivity Services, можно разрабатывать и создавать решения, расширяющие возможности совместной работы в SharePoint, и включать внешние бизнес-данные и процессы, связанные с этими данными, в систему Office.

Возможность работы с внешними данными появилась еще в версии 2007 и называлась каталог бизнес-данных (Business Data Catalog, BDC). Используя определенную процедуру, можно было сформировать описание внешнего источника данных в формате XML и зарегистрировать его в административной консоли SharePoint. Процедура эта, хоть и была документирована, все же предъявляла достаточно серьезные требования к квалификации исполнителя и потому затрудняла ее широкое применение.

В решениях Microsoft Business Connectivity Services используется набор стандартных интерфейсов для обеспечения доступа к бизнес-данным. В результате разработчикам решений не нужно учить методы программирования, применяемые к определенной системе или адаптеру для каждого источника внешних данных. Microsoft Business Connectivity Services также предоставляют среду времени выполнения, в которых решения с внешними данными загружаются, интегрируются и выполняются в поддерживаемых клиентских приложениях Office и на веб-сервере.

Сегодня я хочу показать как создавать самому бизнес модель для получения определённых данных с внешних источников.

Итак приступим.

Для начала проверьте вашу базу данных и уделите особое внимание на Столбы и их типы, которые Вы будете вытягивать и они будут определять Ваш клас.

Во время работы мы пройдём следующие шаги:

1.  Создание проекта Visual Studio использования бизнес-данных Связь модель шаблонов
2.  Подключение к базе данных
3. Созадние модели Entity
4. Использование LINQ для создания методов системы LOB
5. Создание внешнего Списка
6. Тестирование и проверка.

clip_image001

Создали запрос Select и проверили на наличие данных в базе данных.

Откройте Visual Studio 2010, последовательно выбрав элементы Пуск | Все программы | Microsoft Visual Studio 2010 | Microsoft Visual Studio 2010. Затем выберем в меню пункты Файл | Создать | Проект. Последовательно выберем элементы Visual C# | SharePoint | 2010 |, а затем шаблон проекта Модель подключения к бизнес-данным. В поле «Имя» введите SPSDCEmployees.

clip_image003

Далее изменим URL-адрес на http://tico/sites/BCSAlpha. После выберем переключатель Развернуть как решение фермы и нажмём кнопку Готово.

Далее создаём подключения к нашей системе LOB и используем LINQ к SQL в качестве модели для нашего абстрактного класса / Entity.

После нажатия кнопки “Добавить подключения вам будет представлен диалоговом окне выше, пожалуйста, укажите имя сервера и базы данных интересующих Вас.

image

После подключения базы данных нам необходимо добавить еще один шаблон для нашего проекта. На этот раз мы в том числе “LINQ для SQL” Шаблон в качестве средства для создания нашего Entity.

image

В меню “Вид” выберите пункт Server Explorer. В Server Explorer разверните узел, представляющий базу данных сотрудников, а затем разверните узел Таблицы. Перетащите таблицу сотрудников на Вашу область дизайна.

image
image

Далее нам необходимо чуток почистить наш клас. В Solution Explorer необходимо дважды нажать на BdcModel1.bdcm и мы получаем дизайн панели выше. В обозревателе решений развернём узел BdcModel1, а затем дважды щелкнем файл BdcModel1.bdcm. Бизнес-модели данных Связь файл открывается в конструкторе BDC. В дизайнер, щелкните правой кнопкой мыши Entity1, а затем нажмите кнопку “Удалить”. В окне Solution Explorer щелкните правой кнопкой мыши Entity1.cs, а затем нажмите кнопку “Удалить”. Щелкните правой кнопкой мыши Entity1Service.cs, а затем нажмите кнопку “Удалить”.

image

image

image

Теперь мы создадим наш новую сущность, которая будет абстрактным класом наших сотрудников системы LOB из нашей базы данных FabianPlayPen.
– В меню Вид выберите Панели инструментов.
– На вкладке BusinessDataConnectivity на панель инструментов, перетащите Entity на дизайнера BDC.
– Новая структура появится на дизайнера. Visual Studio добавляет файл в проект, получивший название EntityService.cs
– В меню “Вид” выберите пункт Свойства окна.
– В окне Свойства установите Имя для сотрудников
– На дизайнер, щелкните правой кнопкой мыши лица, нажмите кнопку Добавить, а затем выберите идентификатор.
– новый идентификатор появляется на лицо.
– В окне “Свойства”, изменить имя идентификатора EmployeeID

image

image

image
image

Далее мы создадим методы для создания, чтения, обновления и удаления.

image

Мы начнем процесс создания Finder метод. Этот метод применяется в основном к поверхности Список “ALL” элементов в базе данных
1. В дизайнер BDC, выберите сущность сотрудников.
2. В меню Вид выберите команду Other Windows, а затем нажмите кнопку BDC Метод детали.
3. В окне BDC Метод детали, от метода Добавить в раскрывающемся списке выберите “Создать Finder Метод.

image

1. Visual Studio добавляет метод возвращения параметр, тип описателя.
2. В окно BDC Метод Подробности см. в раскрывающемся списке, который отображается для EmployeeList дескриптор типа, а затем нажмите кнопку Изменить как показано ниже

image

1. В BDC Explorer открывается. BDC Explorer обеспечивает иерархическое представление модели.
2. В окне Свойства установите Тип Имя для System.Collections.Generic.IEnumerable `1 [SPSDCEmployees.Employee, BdcModel1], как показано ниже

image
image

– В BDC Explorer, откройте EmployeeList узел и выберите контакт узла.
– В окне Свойства установите Тип Имя для SPSDCEmployees.Employee, BdcModel1.
– В BDC Explorer, щелкните правой кнопкой мыши сотрудников, а затем нажмите кнопку Добавить тип дескриптора.
– новый дескриптор типа имени TypeDescriptor1 появляется в BDC Explorer.
– В окне Свойства установите свойство Имя для EmployeeID.
– Установите тип имя на System.Int32.
– С помощью идентификаторов в раскрывающемся списке выберите ContactID.
image

image

image

Теперь нам нужно создать остальные дескрипторы типа для сотрудников Entity; именно здесь мы возвращаемся к нашей системе LOB или наши Entity класса созданы ранее и получают названия и тип данных столбца, чтобы создать нашу TypeDescriptors. После того как мы сделали это, настало время, чтобы добавить код для наших ReadList Метод

image

Дважды щелкните на ReadList в Сотрудник Entity ввести код, вид как показано ниже.

image

image

image

image

image

1. В дизайнер BDC, выберите лица сотрудников.
2. В окно BDC Метод Подробная информация, откройте ReadList узла.
3. Откройте Добавить метод в раскрывающемся списке, который появится под ReadList метод, выберите команду Создать Конкретные Finder метод.
4. Visual Studio добавляет следующие элементы модели. Эти элементы появляются в окне BDC Метод Подробнее.
    1. метод под названием ReadItem.
    2. входной параметр для метода.
    3. возвращения параметр для метода.
    4. тип дескриптора для каждого параметра.
5. В дизайнер BDC, на сущности сотрудников, дважды щелкните метод Readitem и добавить код.

image

image

image

image

image

image

image

Далее создаём метод обновления.

image

image

Теперь разварачиваем наш проект и начинаем тестировать. Для начала создаём список

image

И после указываем источник данных наш.

image
Видим результат.

image

Далее пробуем создавать новые элементы, удалять и обновлять существующие.

image

image

Видим, что Всё работает. Всем спасибо. Решения на основе Microsoft Business Connectivity Services могут использовать преимущества интеграции клиентских приложений, серверов, служб и средств в пакетах Microsoft Office 2010. Сотрудники информационных отделов обычно выполняют много заданий вне пределов формальных процессов бизнес-системы. Например, они работают вместе, используя телефон или электронную почту, используют документы и электронные таблицы из многих источников, а также работают в сети и вне сети. Решения на основе Microsoft Business Connectivity Services можно встроить в рамки этих неформальных процессов, используемых сотрудниками ИТ-отделов.

1. Их можно создавать, сочетая различные службы и возможности внешних систем данных и пакетов Office 2010, в итоге получая решения, предназначенные для определенных нужд.

2. Они поддерживают информационное взаимодействие, целевые действия и процессы, которые происходят в основном вне формальных систем предприятий. Так как они созданы с помощью продуктов SharePoint 2010, решения на основе Microsoft Business Connectivity Services улучшают возможности совместной работы.

3. Они помогают пользователям выполнять задачи с применением знакомого интерфейса приложений Office и SharePoint 2010.

Вот некоторые примеры решений на основе Microsoft Business Connectivity Services.

1. Служба поддержки. Предприятие реализует службу поддержки, которая обеспечивает внутреннюю техническую поддержку как решение на основе Microsoft Business Connectivity Services. Запросы поддержки и база знаний хранятся во внешних базах данных и встраиваются в решение с помощью службы подключения к бизнес-данным. Решение отображает запросы поддержки и базу знаний в веб-браузере. Сотрудники ИТ-отдела могут просматривать текущие запросы в браузере или в Microsoft Outlook. Специалисты техподдержки просматривают запросы, назначенные им, в браузере, в Microsoft Outlook или, если они не подключены к сети, с помощью Microsoft SharePoint Workspace. Рабочие процессы проводят проблемы поддержки через каждый этап. Руководители групп технической поддержки могут просматривать панели мониторинга с отчетами службы поддержки. В стандартных отчетах указывается число проблем, назначенных каждому специалисту, самые важные на данный момент проблемы и число происшествий, обработанных каждым специалистом за данный период времени.

2. Система слежения за исполнителем. Агентство по поиску талантов встраивает базу данных исполнителей во внутренний веб-сайт. Полный список исполнителей, их контактные данные и расписания можно получить автономно в Microsoft SharePoint Workspace или Microsoft Outlook. Контракты на запись альбомов можно создавать и заполнять на веб-сайте, в Microsoft SharePoint Workspace или Microsoft Outlook, а рабочий процесс проводит контракт через различные этапы. Новых исполнителей можно добавлять на веб-сайте или в Microsoft Outlook. Используя это решение, у агентов всегда будут нужные сведения и они смогут выполнять множество ключевых задач с помощью знакомого интерфейса Office.

3. Панель мониторинга продаж. Приложение панели мониторинга продаж помогает торговым партнерам искать нужные сведения и вводить новые данные. Заказы на продажи и сведения о клиентах хранятся во внешней базе данных и встраиваются в решение с помощью Microsoft Business Connectivity Services. В зависимости от ролей участники группы могут просматривать данные анализа продаж, данные по продажам отдельных участников группы, идеи по сбыту, а также контактные данные и заказы клиентов. Специалисты по продажам могут просматривать свой календарь, задания, назначенные им руководителями, а также работать вместе с коллегами, читать новости рынка в браузере, Microsoft Outlook или в Microsoft SharePoint Workspace в автономном режиме. Используя Microsoft Word 2010, руководители могут создавать ежемесячные отчеты с данными из внешних систем.