Компоненты .NET Core FileSystemWatcher и SQLite Wrapper для мониторинга сообщений в Skype

При помощи фреймворка .NET Core мы разработали кроссплатформенные компоненты для импорта текстовых сообщений Skype.

Задача

Мы продолжаем работать над SkyHistory, приложением для просмотра, мониторинга, хранения, фильтрации сообщений в Skype и их поиска по дате.

Стремление расширить функциональность кроссплатформенного ядра продукта привело команду СКЭНД к разработке кроссплатформенных компонентов для импорта текстовых сообщений Skype. К этим компонентам относятся:

  • SQLite Wrapper — для получения доступа к Skype и управления локальными базами данных.
  • FileSystemWatcher — для отслеживания изменений в базе данных аккаунта Skype и оповещения компонента Conversation Manager о любых обновлениях локальной базы данных.

При создании решений наша команда использовала:

  • кроссплатформенный фреймворк .NET Core;
  • набор библиотек CoreFX;
  • объединение компонентов .NET Core и UI-библиотеки, разработанной при помощи фреймворка Electron.

Подход

Мы выбрали фреймворк .NET Core для реализации кроссплатформенных компонентов ядра по ряду причин. Прежде всего, .NET Core — это кроссплатформенный (Windows, Mac, Linux) аналог Microsoft .NET Framework с открытым исходным кодом. Фреймворк содержит среду CoreCLR, кроссплатформенную реализацию CLR. В нее входит RyuJIT — JIT-компилятор. Также .NET Core включает в себя набор библиотек CoreFX, функциональность которых частично совпадает с Base Class Library, стандартной библиотекой классов платформы .NET Framework.

Что касается основных платформозависимых компонентов ядра, FileSystemWatcher отслеживает оповещения об изменениях в файловых системах и генерирует события в случае любых изменений в локальной базе данных Skype. Реализованный класс принимает имя директория/файла в качестве параметра и поэтому может легко использоваться в других приложениях как сторонняя библиотека.

Для реализации функциональности компонента SQLite Wrapper мы использовали драйвер SQLite ODBC, написанный на C++ и обернутый в  .NET Core Data.Sqlite. Это обеспечивает совместимость и кроссплатформенность. Этот же компонент стал частью UI-приложения, разработанного при помощи фреймворка Electron, и используется для получения списков пользователей, групп пользователей или сообщений за определенный период.

Особенности

Работая над кроссплатформенным ядром, мы успешно внедрили:

  • кроссплатформенный компонент FileSystemWatcher;
  • кроссплатформенный компонент SQLite Wrapper;
  • компоненты .NET Core и GUI-библиотеку, разработанную при помощи фреймворка Electron;
  • менеджер пакетов NuGet;
  • автономное развертывание.

Результат

Разработанный нашей командой набор компонентов является единым для всех платформ, которые поддерживают Microsoft Skype, — Windows, Linux и macOS. Нам удалось с легкостью объединить .NET Core и UI-приложение, разработанное при помощи фреймворка Electron.

Кроссплатформенные компоненты FileSystemWatcher и SQLite Wrapper при необходимости можно эффективно использовать в любых приложениях.

Нуждаетесь в разработке похожего проекта?

Свяжитесь с нами

Наша команда к вашим услугам! Напишите нам, и мы ответим вам в ближайшее время.

Спасибо, что написали нам! Ваше сообщение было успешно отправлено. Мы обязательно ответим на него в ближайшее время. Пожалуйста, проверьте, получили ли Вы от нас письмо-подтверждение на указанную Вами почту.