.Net Core File System Watcher and Sqlite Wrapper Components to Manage Skype Conversations

Challenge

We're still working on SkyHistory, the Skype chat history manager, to store messages, filter chats, and search for conversations by date. The need to expand core product features across platforms led FortySeven to create cross-platform components for importing text messages and Skype chats.

We refer to it as:

  • SQLite Wrapper that helps you to access Skype and manage local databases
  • FileSystemWatcher to check for any changes within the Skype account database and notify the Conversation Manager component to update the local database
Industry
Communication and Media
Expertise
Desktop Application Development
Technologies
.NET, С/C++, C#, .NET Core, CoreFX (.NET Core Foundational Libraries), SQLite, Visual Studio, Windows, Linux, macOS

Approach

We chose the .NET Framework to implement a set of core cross-platform components for several reasons. Most importantly, the .NET Core is an open-source platform corresponding to the Microsoft .NET Framework that works with macOS, Linux, and Windows. The framework then consists of CoreCLR runtime, which is a cross-platform implementation of CLR. It comes with only a translator called RyuJIT. Moreover, CoreFX libraries are included here, and their features are partially compatible with BCL functions.

Result

The FortySeven' team has developed a File System Watcher and SQLite Wrapper components that can be used in any application when needed.Regarding the platform's underlying components and functions, FileSystemWatcher monitors file system change notifications and generates events if there are any changes to the Skype account database. The FileSystemWatcher class calculates the directory/filename as a parameter and can be easily used in any application as an external library. Our team relied on the following to achieve the development objectives:

  • Multi-platform .NET Core framework
  • Core CoreFX.NET libraries
  • Integration of .NET Core components with the Electron UI Library
  • To implement SQLite Wrapper functionality, we used an SQLite ODBC driver written in C ++ and a file in the .NET Core Data.SQLite. This explains compatibility and cross-platform. This same component comes as part of an Electron framework-based user interface application and works to obtain user and group lists or messages within a specified period

Our development team has developed a set of components that support all Microsoft Skype Compatible platforms, such as Windows, Linux, and macOS. We were able to combine the .NET Core and Electron UI applications easily. File System Watcher and SQLite Wrapper components can be used in any application as needed.