Question about Avalonia structure, addon capability and generall seperation of projects

I want to make a small Desktop app using Avalonia, my current structure is:

MyApp.sln contains:
  • MyApp.UI -> for UI stuff only
  • MyApp.Core -> for logic
  • MyApp.Data -> for data fetching and handling
  • MyApp.Test -> for tests of all kinds
im pretty happy with this structure but I have a process in the app that allows for data exports and I currently only support JSON and PostgreSQL, but since i might want to extend this later i thought why not open it

so my approach would be to have a MyApp.SDK (contains the interfaces) which is a seperate project and repository that gets published as a DLL (and NuGet etc etc) and using this I could create MyApp.Exports.SQLite or something, I would have MyApp.Core reference the SDK and have some sort of "addon loader" function that can load MyApp.Exports.SQLite

Is this the correct approach for allowing addons / plugins to be written for my application? I have never done such thing before
Was this page helpful?