Pull to refresh

Hello, Umbraco!

Reading time6 min
Views37K

Это вовсе не кастрюлька с двумя ручками на оранжевом фоне – а логотип Umbraco – open-source ASP.NET CMS. Данная статья – краткий вводный курс в Umbraco. Помимо общих вопросов – что это и зачем, я покажу, как можно быстро развернуть ее и сделать первое приложение – буквально за 5 минут.

Umbraco – это open-source CMS, написанная на ASP.NET / C#. Изначально, она разработана датским программистом Niels Hartvig ’ом – для своих проектов, но теперь стала совсем взрослой и open-source’ной. Итак, что же предлагает пользователю — и разработчику – Umbraco?
Начнем, пожалуй, с сильных сторон:
1) Это open-source. Umbraco использует смешанную лицензию – MIT / Umbraco UI License. Вторая, по сути – тот же MIT при сохранении логотипов и бренда Umbraco. Есть так же и коммерческая лицензия – которая включает поддержку, ряд платных дополнений и разрешает ребрендинг CMS
2) XML / XSLT / WebForms в качестве frontend – сначала такой явный упор на XML / XSLT кажется непривычным, однако позже приходит осознание – насколько же это удобно.
3) Расширяемость – достаточно удобный и гибкий API для написания своих модулей, дополняющих функциональность, типов данных, макросов и т.п.
4) Поддержка различных БД – SQL Server, MySql, VistaDB (встраиваемая СУБД, удобно для разработки).
5) Удобный механизм деплоймента – система пакетов
6) Удобный интерфейс для администратора / редактора
7) Большое количество уже созданных расширений, дополнений, типов данных, готовых решений на базе Umbraco (eCommerce, blog-движки, etc)
8) Возможность использовать для разработки расширений IronPython – для тех, кто не хочет изучать C# / VB.net
9) Активное сообщество – много новых проектов, «живой» форум, вики, есть достатчно активные блоггеры.

Однако, следует отметить и ряд вещей, которые доставляют порой неудобство:
1) Некоторая «хаотичность» разработки – нет четко выделенной концепции, которая бы ограничивала разработчика – соответсвтенно, надо постоянно контролировать себя, чтобы проект не превратился в набор слабо связанных лоскутов.
2) Нет строгой и единой документации – как я сказал, источников немало – но зачастую чтобы нет какого-то конкретного адреса, чтобы найти решение с виду очевидной проблемы. Однако, сообщество реагирует быстро – и при желании ответ получить можно. Ну, в крайнем случае – всегда есть исходники.
3) Это open-source – и за это приходится платить очень зачастую невовремя вылезшими ошибками. Но – при наличии желания, собщества и исходников – все чинится в разумные сроки.

Чтобы утвердить вас в мысли, что Umbraco – это достаточно серьезная вещь, уместно привести крупные проекты, которые ее используют – Peugeout.com, Heinz.com, Wired.co.uk, Hasselblad.com, sandisk.com, Denmark MSDN Community — msdncommunity.dk.

Итак, много хорошего уже сказано – думаю, всем нетерпится попробовать Umbraco в деле. Для начала нам потребуется собственно CMS – свежая версия и исходники доступны на umbraco.codeplex.com. Текущая версия – 4.0.3, но на подходе – 4.1. В версии 4.1 – много действительно очень классных изменений – пока доступна beta II – но она не рекомендована к production-использованию. Релиз совсем не за горами – 2-й квартал 2010, а пока же для всех примеров будем использовать версию 4.0.3. Скачиваем архив с последней версией, распаковываем, создаем новый сайт в IIS и привязываем к локальному адресу – я буду использовать umbraco.local. Можно создать базу в MS SQL Server – но для разработки это не обязательно, достаточно будет и embedded СУБД VistaDB.

Всех этих сложных и утомительных шагов можно избежать – используя Microsoft Web Platform Installer (http://www.microsoft.com/web/Downloads/platform.aspx). Найдите Umbraco CMS в списке Content management или просто кликните Install на www.microsoft.com/web/gallery/Umbraco%20CMS.aspx

Наконец, CMS установлена – переходим по адресу umbraco.local в любимом браузере –и наблюдаем приветственную страницу Umbraco – с предложением установки. Установка включает в себя несколько простых шагов – принятие лицензии (или не принятие – но тогда на этом можно закончить), настройка подключения к БД, создание структуры БД, установка пароля администратора, проверка разрешений файловой системы (чтение / запись в нужные каталоги). На последнем этапе Umbraco предложит установить Runway Foundation – набор базовых элементов для построения сайта (текстовые страницы, навигация, FAQ, etc). Мы вежливо откажемся – чтобы соблюдать чистоту эксперимента.
После этого будут доступны собственно страницы CMS – по адресу umbraco.local можно будет наблюдать любопытную заглушку – сообщающую, что собственно на сайте пока ничего нет и показывать нечего (если бы мы согласились на установку Runway – то сразу получили бы демонстрационную текстовую страницу) и самое важное – доступ в админку — umbraco.local/umbraco/umbraco.aspx.



Слева внизу доступны секции – разделы админки, в которых и собран весь функционал. Секция Content – содержит собственно дерево сайта – то, что будет доступно пользователю. Media – дает возможность загружать картинки, flash, etc. Users – определяет пользователей админки, включая разделение по группам, назначение прав доступа. Settings – одна из ключевых секций, там настраиваются шаблоны, скрипты, CSS и – краеугольный камень – типы документов (Document types). Что это – мы узнаем чуть позже. Секция Developer – дает доступ к управлению пакетами, макросами, типами данных и кэшем. Ну и Members – это снова пользователи, но на сей раз – собственно сайта (Umbraco так же включает свой Membership Provider).

Дальше я покажу примерный процесс создания страницы – не заостряя внимание на деталях.
Итак, создание страницы включает в себя – создание Document type, создание шаблона к нему, добавление элемента с созданным типом документа в Content tree и публикацию. Для начала, создадим Document type для текстовой страницы. Идем в секцию Settings – Document type, контекстное меню – Create…, ввводим имя – TextPage и не забываем галочку Create matching template.



Создание завершено – и мы видим аж 4 вкладки с настройками, но пока нас интересуют 2 последние – Tabs и Generic properties. На вкладке Tabs добавим один Tab – назовем его Content. А в Generic properties – добавим свойство PageText с типом Richtext editor – и поместим его на вкладку Content.



Если пока что-то не ясно – то подождите еще пару минут, прояснение придет уже вот-вот. Отлично, теперь есть Document type – можно создавать контент. Шаблон пока трогать не будем – слишком уж не терпится посмотреть, как выглядит наш DocumentType для администратора.
Идем в секцию Content – и в контекстном меню корня (Content) выбираем Create.., указываем наш созданный Document type – и задаем имя – TestPage. ОК – и вот мы уже видим мир глазами редактора сайта – кроме закладки Properties (служебной) – мы видим созданную нами вкладку Content и текстовый редактор – в который уже можно вводить текст первой страницы. Имя свойства PageText нигде не фигурирует – но это требование типа данных Richtext editor – он занимает все доступное место.



Страница создана, заполнена – можно ее опубликовать. Достаточно просто щелкнуть Save and publish – и можно идти на umbraco.local и наслаждаться пустой белой страницей (вместо сообщения об отсутствии контента) – ведь шаблон для рендеринга нашей страницы еще не создан. Окей, возвращаемся в админку, секция Settings > Templates – и открываем автоматически созданный шаблон TextPage. Думаю, содержание шаблона может вас насторожить

  1. <%@ Master Language="C#" MasterPageFile="~/umbraco/masterpages/default.master" AutoEventWireup="true" %>
  2. <asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
  3. </asp:Content>
* This source code was highlighted with Source Code Highlighter.


Да, предчувствие не обмануло – это обычная ASP.NET MasterPage – со всеми вытекающими (как то – возможность использовать WebForms + ASP.NET компоненты, наследовать страницы, строить иерархию шаблонов, писать code behind) – словом, как у Комарова — «Ох, как все крутототут!».
Итак, морально готовимся писать кучу C# кода чтобы вывести текст… Рано! Достаточно кликнуть «Insert umbraco page field» на панели инструментов – и выбрать наше поле pageText.



В шаблон добавится <umbraco:Item field=«pageText» runat=«server»></umbraco:Item> — и этого достаточно чтобы вывести текст! Сохраняем шаблон, возвращаемся на umbraco.local — и вуаля – наш текст теперь доступен пользователям. Замечу, что наша страница так же доступна по адресу umbraco.local/testpage.aspx — т.е. Umbraco управляет URLами сайта – и каждая страница имеет url = полный путь в дереве контента (подстраницы testpage могут иметь адреса — /testpage/subpage1.aspx, /testpage/subpage2.aspx – но это тема для отдельного разговора).

Ну что ж, самый простой пример закончен – за бортом остались все вкусности – как работа с контентом через XSLT, иерархия document types, шаблонов, управление URL – и еще много всего. И соответственно, возникает вопрос – интересено ли будет вам почитать цикл статей, посвященных этой CMS? Разумеется, это будет не просто перевод документации – а структурированное изложение от корней до самых кончиков.

Что еще может быть интересно:
umbraco.org – сайт проекта (есть обучающие видео, документация)
our.umbraco.org – сообщество (wiki, forum, проекты)
umbraco.codeplex.com – исходники и новые версии
en.wikibooks.org/wiki/Umbraco — несколько интересных статей
www.nibble.be — блог, посвященный Umbraco
twitter.com/umbraco — твиттер основателя и майнтейнера – Niels Hartvig
twitter.com/alek_sys — твиттер меня )
Василий К, Кирилл Комаров – Крутототут – песня под настроение.
Tags:
Hubs:
+14
Comments38

Articles