SharePoint 2010: Business Connectivity Services pt.2

Продолжение

А почему бы не создавать внешние типы содержимого (External Content Types) с помощью кода?

Как я уже рассказал в предыдущем посте создавать внешние типы содержимого в SharePoint можно на основе .NET типов, что приятно, т.к. соответствует современный тенденциям в разработке программного обеспечения (имеется ввиду Domain-Driven Design). Я показал возможности декларативного создания типов, а так же возможности кодогенерации в Visual Studio 2010, однако не упомянутым остался ещё один момент: внешний тип содержимого можно создавать с помощью кода.

Зачем нужен такой подход, почему не обойтись декларативным описанием?

Предлагаю сценарий, в котором внешний тип содержимого можно будет создать с помощью скриптового языка (PowerShell, IronPython).

Сценарий использования автоматизации создания внешних типов содержимого и работу с моделью очень хорошо описал в своём блоге Todd Baginski: http://www.toddbaginski.com/blog/archive/2009/12/01/how-to-programmatically-create-a-sharepoint-2010-external-content-type.aspx

Реклама

SharePoint 2010: Business Connectivity Services

Введение

"BCS — это эволюция возможностей Business Data Catalog (BDC) в SharePoint 2007, которая помогла улучшить возможности SharePoint как платформы разработки составных приложений. В этом решении содержатся готовые функциональные возможности, службы и средства, которые позволяют улучшить интеграцию с внешними данными и службами. BCS предоставляет возможность подключать SharePoint 2010 и приложения Office 2010 к любой внешней системе, будь то бизнес-приложения (например, Microsoft Dynamics, Oracle или Siebel), служба Web 2.0 или приложение собственной разработки".

Брэд Стивенсон, ведущий руководитель группы по разработке в Microsoft

В данной статье я хочу рассказать об одной из самых, на мой взгляд, полезных возможностях в SharePoint 2010. Речь пойдёт о BCS: Business Data Conectivity Services. BCS с точки зрения вариантов использования представляет собой некоторый аналог того, что было известно в MOSS 2007 как BDC (Business Data Catalog). Однако в новой версии SharePoint эти сервисы намного повзрослели. Так в чём же концептуальная разница:

  1. BDC предоставлял лишь read-only возможности
  2. BCS предоставляет двусторонний доступ с более глубокой интеграцией в SharePoint и Office
  3. BCS предоставляет механизм “внешних типов содержимого”, что позволяет описать внутренние взаимосвязи источника данных и абстрагировать их за интерфейсом пользователя (и объектной моделью) SharePoint либо Office

Так чем же всё таки хороши BCS?

Полная поддержка CRUDQ операций для внешних систем, т.е. SharePoint (далее подразумевается в паре с Office) может выступать в качестве “богатого клиента” для практически любых источников данных, а так же предоставлять гибкие возможности по интеграции систем вашего предприятия.

Единообразие доступа, т.е. вы можете пользоваться только SharePoint в качестве точки входа для ваших данных.

Упрощенная модель соединения включает в себя возможности декларативного описания подключения, что под силу не только разработчику, но и IT-специалисту, в некоторых случаях даже опытному пользователю. В помощь этим операциям приходят два инструмента: Visual Studio 2010 (о ней речь подробнее чуть позже в данной статье), а так же бесплатный инструмент Office SharePoint Designer 2010.

Глубокая интеграция здесь я имею ввиду доступ для сторонних систем ко всем возможностям SharePoint как платформы, будь то корпоративный поиск, политики прав доступа, администрирование источников данных.

Управление жизненным циклом приложений, построенных на BCS, т.е. любое ваше решение, пусть даже небольшая настройка, будет доступна в виде приложения, которое можно будет распространять для развертывания на серверной, либо клиентской стороне, позже обновлять при необходимости. Это очень полезные, часто используемые возможности.

Механизмы работы BCS

Для понимания механизмов работы необходимо разобраться с двумя понятиями:

  1. Business Data Connectivity Service
  2. BCS Client Runtime

Прочесть о их работе вкратце можно здесь: http://msdn.microsoft.com/en-us/library/ee559650(office.14).aspx

Источники данных для BCS

Следующий важный момент в разговоре о BCS – это типы источников данных. Таковыми могут являться следующие:

  1. Базы данных (доступные через ADO)
  2. WCF либо другие веб-сервисы (Для Oracle, SAP и Seibel так же есть WCF адаптеры)
  3. .NET-типы (т.е. делаем свою асбтракцию доступа к данным, скрываем её за IRepository и наслаждаемся)
  4. Другие источники, для которых потребуется либо дополнительные провайдеры доступа, либо просто декларативное описание методов доступа. (почитать подробности можно здесь: http://msdn.microsoft.com/en-us/library/ee554911(office.14).aspx)

Нужен пример

Думаю что с теорией достаточно, теперь необходимо показать, как же это делается в жизни (имеется ввиду девелоперская жизнь из окошечка Visual Studio). Работа с BCS из Visual Studio 2010 несколько напоминает работу с Entity Framework 4, вы можете создать свою модель данных и отобразить все связи на имеющиеся у вас источники.

Пользуясь гибкими возможностями расширения Visual Studio 2010 (MEF) многие разработчики уже успели облегчить себе жизнь, так же и для SharePoint разработки. Одно из данных решений называется BCS Meta Man (разрабатывается Lighting Tools).

Суть данной утилиты заключается в помощи генерации сущностей предметной области и сервисов доступа к данным по их источникам. Другими словами – вам остается только перетащить (изящность не в этом)табличку из server explorer и определить отображение данных, как  в вашем приложении сгенерируются соответствующие POCO объекты, и сервисы доступа к данным для них, и это безусловно очень удобно.

Видео работы с данной утилитой доступно здесь:

Так же пример работы с данной утилитой можно найти по адресу: http://docs.lightningtools.com/display/bcsmetaman/BCS+Meta+Man+-+Getting+Started

Использование .NET сборки в качестве источника данных описано здесь: http://www.lightningtools.com/blog/archive/2009/10/30/bcs-shims-ndash-.net-assembly-as-a-data-source-for.aspx

Ресурсы по BCS

BCS Team Channel http://blogs.msdn.com/bcs/

Video on Channel9 http://channel9.msdn.com/learn/courses/SharePoint2010Developer/ServicesArchitecture/

BCS Overview from SPConf 2009 http://www.youtube.com/watch?v=82xzNsG0d5A


Старый новый ASP.NET

Запись со встречи Санкт-Петербургских групп Ineta ft. ALT.NET (23 ноября 2009 года) посвященная работе с технологией Microsoft ASP.NET и нововведениям в 4ой версии.


Работа MVC Framework с альтернативными View Engine by Maxim Moiseev


.NET ft. YAML

Введение

FileDownload[1] Разработчики нередко встречаются с проблемами конфигурации приложений, обычно для этих целей используется XML, в данной статье я хочу обратить внимание на более дружелюбный язык разметки.

YAML (YAML Ain’t Markup Language) – язык (существует с 2001 года) для серилизации данных, ориентированный на чтение и редактирование человеком типичных структур данных. Язык, как нетрудно догадаться, межплатформенный. Известен, в большинстве своём, использованием в Ruby On Rails в качестве средства конфигурирования. Подробнее на русском здесь: http://ru.wikipedia.org/wiki/Yaml

Пример YAML

%Пример

YAML: YAML не язык разметки

Что это: YAML — это человекоориентированный стандарт серилизации данных для всех языков программирования

Проекты:
  .NET:
  — yaml-net
  — yatools.net

.NET

Использовать данный язык можно и на .NET, для этого существуют:

  1. Visual Studio YAML Editor http://yaml.codeplex.com/
  2. YamlSerializer for .NET http://yamlserializer.codeplex.com/
  3. Yaml Library for .NET http://yaml-net-parser.sourceforge.net/default.html

Материалы

Официальный сайт проекта http://yaml.org

Yaml за 5 минут http://yaml.kwiki.org/index.cgi?YamlInFiveMinutesMinuteOne

Неплохая статья с примером использования http://www.codeproject.com/KB/recipes/yamlparser.aspx


Выкладываю выступления нашей ALT.NET группы на Vimeo


Building DSL’s on Microsoft .NET CLR and DLR from Vitaly Baum on Vimeo.

DLR Hosting from Vitaly Baum on Vimeo.