Обновление блога 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 и залить полученную папку на сервер. Кросплатформенность в действии :-)