.NET Core Filesystem Watcher And SQlite Wrapper Components To Manage Skype Conversations
We have implemented cross-platform components with the help of the .NET Core framework to import Skype text messages and conversations.
We keep up working on SkyHistory, a chat history manager for Skype to store messages, filter chats and search through the conversations by date.
The urge to expand the functionality of the product’s cross-platform core led SCAND to the development of cross-platform components to import Skype text messages and conversations. It is referred to:
- SQLite Wrapper that assists in getting access to Skype and managing local databases.
- FileSystemWatcher to check any changes within the Skype account database and notify the Conversation Manager component of updating the local database.
To reach the development goals, our team relied on:
- Cross-platform .NET Core Framework;
- CoreFX.NET Core foundational libraries;
- Combining the .NET Core components with the Electron UI library.
The .NET Core framework was chosen to implement a set of cross-platform core components for several reasons. Above all, .NET Core is an open-source cross-platform equivalent of the Microsoft .NET Framework working for Windows, macOS, and Linux. Then, the framework consists of the CoreCLR runtime, a cross-platform implementation of CLR. It comes with a just-in-time compiler called RyuJIT. Also, CoreFX libraries are included herein, and their functionality partially coincides with the one of BCL.
To apply the SQLite Wrapper functions, we have taken the SQLite ODBC driver written in C++ and wrapped it into .NET Core Data.SQLite. That accounts for compatibility and cross-platform. This very component comes as a part of the UI application based on the Electron framework and serves to get lists of users and groups or messages within a stated period of time.
Regarding the major platform-specific core components and their roles: FileSystemWatcher monitors file system change notifications and raises events in case of any changes in the Skype account database. The FileSystemWatcher class counts the directory/filename as a parameter and therefore can be easily utilized in any applications as a third-party library.
- FileSystemWatcher cross-platform component
- SQLite Wrapper cross-platform component
- .NET Core components and the Electron UI library
- NuGet package manager
- Self-contained deployment (SCD)
The FileSystemWatcher and SQLite Wrapper cross-platform components could be leveraged in any applications when required.
The set of components our team has developed performs well for all platforms supporting Microsoft Skype, such as Windows, Linux, and macOS. We managed to effortlessly combine the .NET Core and Electron UI applications.