Здравствуй, новый msug.vn.ua! Часть 1: зачем все это

пятница, 14 января 2011, Александр Краковецкий

Итак, это свершилось – наш сайт перехал на новый движок. Ниже я постараюсь детально описать причины переезда, процесс и технические детали переезда.

Проблемы

Если вы внимательно следили за развитием нашего сайта, то должны были заметить, что мы часто сталкивались с проблемами хостинга – сначала с hosting.ua, потом с mochahost.com, и, наконец, с infobox.ru. Во всех случаях хостинг-провайдеры не смогли справиться с довольно таки небольшой нагрузкой (около 1000 уникальных пользователей в сутки), а некоторые просто проявили себя не с лучшей профессиональной стороны. Причина высокой нагрузки – движок Telligent Community Server, который является очень хорошим инструментом для построения технических сообществ, но требует выделенного сервера для полноценной работы. Так как ресурс наш не является прибыльным, то отдавать немаленькие деньги за выделенный сервер не хотелось.

Вторая проблема с Telligent Community Server – ограничения бесплатной версии движка (15 блогов, 5 медиагаллерей и т.д.), что не давало возможность развиться на полную силу. Позже я узнал, что Telligent предоставляет бесплатные лицензии для Microsoft User Groups, но процесс общения с представителями компании затянулся на месяца, а конечные условия были не совсем приемлиемые.

Таким образом, решение о перезде было принято окончательно и безповоротно. Следующим шагом являлось установка требований к новому движку и проекту с учетом нынешней базы базы пользователей и истории. Об этом дальше.

Требования к новому движку

Самым живитрепещущим требованием к новому движку является быстрота его работы и не прожорливость. Это ключевое требование. Кроме того, движок должен поддерживать мультиблоггинг и несколько авторов на один блог. Простота добавления контента – еще одно ключевое требование. Ну и не хотелось обходить стороной простоту настройки дизайна и добавления новой функциональности (если возникнет такая необходимость).

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

Выбор системы управления контентом

Этот процесс занял у меня не один вечер. Если говорить кратко, то системы управления контентом, которая удовлетворяла бы моим (простым) требованиям, написанной на ASP.NET, нет.

Список CMS был составлен исходя из Codeplex, Web Platform Installer и википедии. Теперь по порядку.

Самая известная CMS на ASP.NET – DotNetNuke отправилась «в лес» сразу же по причине своей прожорливости универсальности, Битрикс не рассматривался по умолчанию.

Дальше в списку шли (все уже и не помню): N2, Umbraco, mojoPortal, TheBeerHouse, Kooboo, My Website Starter Kit, Atilekt, Kentico, Sitecore, Composite C1, MonoX… Одни не поддерживают мультиблоггинг и несколько авторов, другие трудны в настройке или переносе контента. В итоге, пришлось их все, одна за одной, отбросить. Telligent Graffiti – младшая сестра Community Server оказалось жалкой подобией на CMS, и по сути, является очень сильно обрезанной версией Community Server. ScrewTurnWiki хоть и хороша в своем роде, но не совсем то, что нам было нужно (ScrewTurnWiki является опенсорсным решением для создания вики порталов).

Единственным более менее приемлимым решением среди доступных CMS оказалась Tellerik Sitefinity. Но Sitefinity - коммерческая система (хотя бесплатную лицензию можно получитить), но все же после нескольких устновок / переустановок решил пока отказаться. Хотя, честно признаюсь, есть идеи как можно использовать Sitefinity в будущем, но об этом потом.

Многие в этом месте мне возразят, что в списке присутствуют старые и проверенные системы, то, сразу оговорю, что требований хоть и было мало, но при любом несоответствии CMS отправлялась подальше.

Дальше я начал ковырять Oxite, на котором работают такие сайты как MIX Videos, MIX Online и т.д. и которая подавала большие надежды. Увы, разработчики движка сами признали, что разработка ведется вяло и если необходимо более менее функциональное решение, то необходимо смотреть в сторону Orchard. Собсвенно, этой CMS нужно посвятить отдельный пункт.

Привет, Orchard!

После многих тестов различных систем управления контентом мой взгляд остановился на Orchard – опенсорсной CMS, над которой трудятся несколько штатных сотрудников Microsoft. На стороне этой системы было несколько факторов: новая технология ASP.NET MVC, разработка «с нуля», благодаря чему система не стала монстром, грамотная архитектура. Минусами являлись большое количество багов, не очень большой функционал и отсутствие четкого роадмапа на ближайший период.

Orchard я посвятил несколько вечеров и даже написал несколько статей. Я пытался устранить самые явные несоответствия моим требованиям, но, к сожалению, количество работы явно превышало возможности моего свободного времени.

Что мне действительно понравилось в Orchard – так это пользовательские типы данных. Например, можно было определить новый тип (книга или User Group), задать набор свойств (полей) и создать коллекцию этих объектов. Единственная проблема – небольшое количество возможных типов полей, а писать свои – дело хлопотное.

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

В итоге все свелось к стандартному «напишем сами». Идею велосипедирования я долго пытался отогнать, но в итоге она победила :) Об этом стоит рассказать подробней.

Велосипедирование

На самом деле я против велосипедирования в чистом виде. Единственное, когда велосипедирование полностью оправданное – когда есть элемент обучения, интереса и свободного времени. Первых два пункта перевесили третий, поэтому написание своей CMS стало также и желанием подучить новую технологию – ASP.NET MVC. Тем более, что после конференций Sinergija и MS SWIT очень хотелось написать уже что-то своими руками. Последней каплей стал просмотр презентации Хасельмана, где он рассказывал о своем проекте NerdDinner. Собственно, именно NerdDinner и стал отправным пунктом к написанию нового мсуга.

NerdDinner – лучший пример веб-приложения, написанного на ASP.NET MVC. Проект посвящен организации обедов программистов, который позволяет создавать, мониторить и присоединяться к обедам. Из первоначального проекта практически ничего не осталось – часть дизайна, membership provider (но часть была дописана для интеграции со старыми контактами).

Разработка

Понимая, что разработка системы управления контентом – дело вечное, первоочередной задачей было выделить основные функциональные модули. Остановимся на них подробнее.

Создание блогов (а также все CRUD операции) выполняет администратор. Их не так много, поэтому особо на этом не зацикливался.

Публикации

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

  1. Статьи – а также статьи-ссылки и статьи-переводы – основной тип контента, претендующего на уникальность. Сюда входят технические статьи, руководства.
  2. Новости – тут, думаю, все понятно – контент новостного характера.
  3. Мнения – этот тип контента характеризуется наличием определенной точки зрения автора на тот или иной вопрос. Самый субъективный контент.
  4. Подкасты – тут все ясно.
  5. Рецензии (а также рецензии-ссылки) – рецензии на книги.
  6. Блогозаписи – среднее между новостями и статьями.
  7. Вакансии – тут тоже все понятно;
  8. Блогозаписи - тип контента для всех старых публикаций - со временем раскидаем по другим типам часть контента.

Если есть пожелания и идеи по поводу типов контента – пишите.

Еще один вопрос – это создание постов. Мне очень нравится подход StackOverflow, когда не нужно писать посты в HTML редакторе, а с помощью вики-разметки. Это позволяет хранить меньше кода на сервере и обезопасить себя от создания «новогодних елок» - постов с богатой HTML разметкой (а иногда и раскраской), что негативно влияет на юзабилити сайта. К сожалению, полностью отказаться от HTML нельзя, так как все прошлые посты были написаны в HTML редакторе, но упрощенный способ создания постов хотелось бы иметь.

Это можно добиться с помощью WMD Markdown Editor, который позволяет создавать посты с помощью специальной разметки, а на выходе он выдает готовый чистый HTML. Правда вопрос с редактированием еще до конца не решен – в режиме edit необходимо оперировать голым HTML. Возможно, заменю на FCKEditor (хотя не очень хочется).

Комментарии

По поводу комментариев я долго разрывался – с одной стороны есть уже прошлые комментарии, с другой стороны реализация полнофункциональных комментариев – дело хлопотное. Необходимо реализовать все проверки, спам-фильтры, уведомления, подписки и т.д. Проще использовать готовые решения. Сейчас основными системами являются Disqus, EasyComments, Facebook Comments. В данный момент я использую Disqus, но еще смотрю в сторону Facebook (возможно как дополнение). Старые комментарии будут помечены как архив и будут статически отображаться.

Форум, а точнее его отсутствие

Как показала практика, некоторые разделы нашего сайта не пользовались успехов. Причина, скорее всего, банальна, - они не наполнялись достаточным количеством интересного контента. Это относиться к вики, медиатеке и форуме (к сожалению).

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

Контент с медиатеки и вики будет частично перенесен, а частично убит… из-за отсутствия интереса.

Продолжение следует...

Компании из статьи


Sitecore


Сайт:
http://www.sitecore.net

Sitecore Sitecore Ukraine – датская компания Sitecore A/S, основанная в 2001 году, в 2004 году открыла свой украинский офис в Днепропетровске, где в данный момент сосредоточена основная сила разработки програм...

Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии