.NET Core FileSystemWatcher 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.

Challenge

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 developing 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

Approach

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.

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/file name as a parameter and therefore can be easily utilized in any applications as a third-party library.

To apply the SQLite Wrapper functions, we have taken the SQLite ODBC driver written in C++ and wrapped 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.

Highlights

While working on the cross-platform core, we have successfully deployed:

  • FileSystemWatcher cross-platform component
  • SQLite Wrapper cross-platform component
  • .NET Core components and the Electron UI library
  •  NuGet package manager
  • Self-contained deployment (SCD)

Result

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.

The FileSystemWatcher and SQLite Wrapper cross-platform components could be leveraged in any applications when required.

Need a similar project?

Contact us

Thank you for your interest in our services. We have received your message and will respond to you shortly. Please check your mailbox for a confirmation letter from us.

(function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter49667656 = new Ya.Metrika2({ id:49667656, clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); } catch(e) { } });var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/tag.js";if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks2");