среда, 15 февраля 2012 г.

О проекте Composite C1 Contrib

Как бы отвечая на вопрос: "Почему Composite C1?" скажу прежде всего: "Потому что это система с открытым исходным кодом." А это означает, что вы можете взять ее исходники и подогнать ее под себя или добавить в нее что-нибудь полезное для вас, а может, и для всего сообщества Composite C1.

Что и сделал один разработчик - burningice. Создал проект расширений для Composite C1 под названием Composite C1 Contrib.

Если вы не знакомы с тем, что предлагается в рамках этого проекта, то думаю, сейчас самое время с этим познакомится.
Кстати, если вы используете эталонные страницы (Master Pages), Razor-функции и функции на основе пользовательских элементов (User Controls) в Composite C1, то вы уже частично знакомы с проектом. Потому что именно из этого проекта была взята поддержка этих технологий.

Сам проект является набором различных расширений для Composite C1. Помимо исходного кода,  каждое расширение уже оформлено как стандартный пакет Composite C1. То есть можно просто установить соответствующий пакет и использовать его функционал прямо "из коробки".

Нужно заметить, что автор очень часто обновляет проект, добавляя новый функционал или расширяя/исправляя существующий. Поэтому имеет смысл регулярно посещать страницу проекта на CodePlex.

Вот быстрый обзор расширений, предоставляемых в рамках проекта  Composite C1 Contrib на данный момент:
  • ChangeHistory: Добавляет поля ChangeDate (дата последнего изменения) и ChangedBy (автор изменения) к типам данных, как это существует у страниц. (Описание от автора на английском.)
  • DataProviders.FacebookMediaProvider: Интеграция альбомов из Facebook'а как медиа-архива в разделе "Мультимедиа". (Описание от автора на английском.)
  • DownloadFoldersAsZip: Загрузка выбранной папки/архива со всеми подпапками и файлами в качестве zip-файла из раздела "Мультимедиа", а также из файловой системы,  доступной из раздела "Система". (Описание от автора на английском.)
  • Email:  Поддержка очередей при отправке писем. Таким образом, письма не будут теряться, если по какой-то причине их отправка невозможна в данный момент, а будут "ждать" в очереди. (Описание от автора на английском.)
  • Favorites: Дает возможность добавлять любые C1-функции в т.н. "Избранное", специальную папку _Favorites в окне выбора функций, причем можно давать другие имена избранным функицям. (Описание от автора на английском.)
  • FormBuilder: Добавляет возможность использования любого типа данных в качестве поля на форме, которое вы создаете на стороне сервера. Это только начальная версия.
  • RazorFunctions: Поддержка Razor в качестве синтаксиса для C1-функций. (Этот пакет также доступен для установки из админки как Contribution.CompositeC1Contrib.RazorFunctions.) (Описание от автора на английском.)
  • Rendering.MasterPages:  Поддержка эталонных страниц (ASP.NET Master Pages) в качестве шаблонов страниц.  (Этот пакет также доступен для установки из админки как Contribution.CompositeC1Contrib.Renderings.MasterPage.)
  • SiteMapProvider: Создает карту сайта, доступную в .NET коде.
  • Sorting: Сортировка типов данных, а также страниц с помощью drag'n'drop.  (Описание от автора на английском.)
  • UserControlFunctions:  Поддержка пользовательских элементов управления ASP.NET  (ASP.NET User Controls) в качестве C1-функций.  (Этот пакет также доступен для установки из админки как Contribution.CompositeC1Contrib.UserControlFunctions.) (Описание от автора на английском.)
(Красным цветом отмечены пакеты доступные из админки: Система / Пакеты / Доступные пакеты / Contribution.)

Чтобы добавить нужный функционал:
  1. Загружаем последнюю версию проекта.
  2. Распаковываем zip.
  3. "Достаем" пакет с нужным функционалом по такому пути : {папка распакованного проекта}\{название расширения}\Package\package.zip, например \Favorites\Package\package.zip.
  4. Устанавливаем package.zip как локальный пакет, так как это стандартный пакет расширения Composite C1.
  5. Пользуемся :)

2 комментария: