Обновление блога uBlog 0.0.1

Постепенно движется работа по созданию блогового движка uBlog. Проделано немало работы, поэтому думаю, что можно присвоить ему первую dev-версию. Что же сделано на данный момент в движке uBlog 0.0.1.

  1. Добавлен sitemap для индексации сайта поисковыми машинами. Теперь это не статический файл sitemap.xml, а ссылка вида http://mvano.com/sitemap. Содержимое файла генерируется динамически по запросу. Таким образом, каждый раз, когда поисковый бот заходит по этой ссылке, он получает актуальный перечень всех путей блога.
  2. Добавлена возможность RSS-подписки http://mvano.com/rss. Пока что эта возможность не очень информативна, но валидацию проходит.
  3. Был добавлен простой поиск http://mvano.com/search, который выводит названия постов, где встречается искомый текст.
  4. Появилась возможность делиться своими постами через социальные сети. Для этого был использован сервис AddThis. Получилось достаточно гибкое решение, потому что можно настроить перечень необходимых социальных кнопок самому (а их там много ~200). Среди бесплатных профилей немало вариантов расположения share-панелей. Кроме того, сервис собирает разную статистику.
  5. В постах появилась подстветка синтаксиса кода. Для этого подключена библиотека Prism и немного изменена одна из стандартных тем оформления. Например, так выглядит фрагмент кода на языке C#:
public class Program
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, World!");
   }
}
  1. Немного изменилась структура проекта:
  • uBlog.Data – библиотека уровня доступа к данным (Data Access Layer), которая работает на Entity Framework Core с базой данных SQLite
  • uBlog.Core – библиотека сервисов (Service Layer) содержит набор классов ядра блога
  • uBlog.Web – кросплатформенное приложение ASP.NET Core использует движок представлений Razor для генерирования страниц обычным пользователям блога и предоставляет WebAPI для админки
  • uTool – интерфейс командной строки (CLI) для начального конфигурирования базы данных, наполнения ее demo-данными, миграций, обновления блога в будущем и т.д.

Стоит отметить одну замечательную вещь, которая мне очень понравилась. Для размещения проекта на сервере не нужно даже сборку делать на Linux. Достаточно сделать publish проекта в Visual Studio и залить полученную папку на сервер. Кросплатформенность в действии :-)

О моем блоге

Всех приветствую!

Решил наконец-то создать свой личный блог. И не просто создать, используя готовый движок типа WordPress, Ghost, Е2 Эгея, а написать с нуля блоговый движок на C# на базе ASP.NET Core 1.0.

Мой блоговый движок

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

  • изучить новый кросплатформенный фреймворк ASP.NET Core 1.0;
  • проверить, насколько готова эта технология для применения ее в продакшене, например, на VPS сервере Debian 8.5;
  • реализовать админку блога на фреймворке типа AngularJS;
  • разработать архитектуру приложения на базе трехуровневой модели, использовав принцип Dependency Injection;
  • проделать много другой рутинной работы c HTML, CSS, SASS, Gulp, Entity Framework, Markdown и т.д.;
  • и конечно все это хорошенько покритиковать :-)

Как можно заметить, большинство современных технологий для веба (ASP.NET Core, Java, Node.js, Ruby on Rails) работают на виртуальных машинах и виртуальных серверах (VPS), а не на разделяемом хостинге (shared hosting), как это было раньше, как это успешно до нашего времени делает PHP. Наверное, один из факторов живучести PHP как раз и является низкая стоимость хостинга, что немало важно для личных сайтов, для сайтов мелкого бизнеса. Сегодня на рынке IT есть недорогой и доступный VPS хостинг, например:

  • BuyVM - 2 Cores / RAM 256 MB / SSD 30 GB / $5.00 per month;
  • DigitalOcean - 1 Core / RAM 512 MB / SSD 20 GB / $5.00 per month;
  • VPSDime - 4 Cores / RAM 6 GB / SSD 30 GB / $7.00 per month.

Однако объем оперативной памяти 512 МБ не так уж и велик для VPS, на котором работают: серверная операционная система, система управления базой данных, сайт с различными сервисами и, конечно же, виртуальная машина (CLR, JVM). В условиях ограниченного бюджета на хостинг компилируемые языки (С/С++, Objective-C, D, Go) могут быть достаточно выгодными. К сожалению, их редко используют для создания сайтов. Но это уже другая история, о которой мы тоже поговорим.

Итак, в дальнейшем я хочу написать цикл статей о создании блогового движка на ASP.NET Core, детально остановить на тех вопросах, которые забрали у меня много времени, особенно в архитектурном плане. Эти статьи не претендуют на исчерпывающее руководство по разработке сайта на C#, но могут быть полезными новичкам.

В этом блоге я планирую писать о программировании на Assembler, C, C++, C#, JavaScript, веб-разработке, различных технологиях, новостях в мире IT и многом другом. Язык изложения будет как русским, так и английским.

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