Salta al contenuto
Nessun risultato
  • Account
  • Articoli e libri
  • bbpress template
  • Calcolatrice legge di Ohm
  • Calcolatrici e convertitori
  • Convertitore Farad condensatori
  • Convertitore Ohm resistenze
  • Convertitore sistema numerico
  • Datasheet
  • Download
  • GeXY… Idea!
  • Login
  • Password Reset
  • Privacy e condizioni
  • Progetti
  • Video list
GeXY
Login/registrati
  • Progetti
  • Forum
  • Risorse
    • Datasheets
    • Calcolatrici & convertitori
    • Libri & articoli
    • Video
GeXY

OpenLab Developer

14
  • Custom port per LogicBlock
  • Creare un project storage
  • Creare un LogicBlock
  • Setup ambiente di sviluppo e installazione librerie
  • Creare un logger storage
  • Creare un plugin base

OpenLab Studio Developer

8
  • Gestore dei tipi di dati
  • Gestore degli errori
  • Schemi validazione configurazione
  • Elenco eventi standard
  • Logger standard
  • Logger base
  • Gestore degli eventi
  • Gestore della UI

GeJSON

3
  • Validazione json
  • Parsing json
  • Uso di GeJSON
View Categories
  • Home
  • OpenLab Docs
  • OpenLab Developer
  • Creare un project storage

Creare un project storage

1 min read

OpenLab Studio >= 1.30.x
OpenLab SDK >= 1.2.x
Linguaggi C#
Versione .NET 8

Generale #

Un project storage permette di implementare un livello di astrazione tra gli storage fisici, dove risiedono i progetti, e OpenLab Studio. Questo sistema permette di memorizzare e prelevare i progetti da un hardisk o da un database o da qualsiasi altra sorgente. E’ possibile avere più sorgenti contemporaneamente(più project storge).

Il codice completo è reperibile su Github, per il setup dell’ambiente di sviluppo consultare questa guida

Funzionamento #

Un Project storage implementa la classe ProjectStorage, che a sua volta deriva dalla classe Plugin. Eredita tutte le funzionalità dei plugin(come la gestione della configurazione) e vanno inseriti insieme agli altri plugin nel file di configurazione di OpenLabStudio.

Vanno implementati due metodi: loadFromStorage e saveToStorage. Il primo metodo serve a leggere i progetti dallo storage reale e li deve memorizzare nella proprietà projects, la seconda serve a memorizzare i progetti nello storage reale prendendoli dalla proprietà storages.

I project storage vengono caricati dal file di configurazione dalla classe PluginsManager e memorizzati in ProjectManager.

 

Implementazione di base #

In questo paragrafo viene implementato un project storage che preleva e deposita i progetti in un array json, mostra una base minima su cui implementare un project storage.

 

public class OLSPluginProjectsDirectory : ProjectStorage
{
    internal class Info : IPluginInfo
    {
        public string Name { get; } = "ols-plugin-projects-directory";
        public string Title { get; } = "OpenLab Studio projects directory";
        public int[] version { get; } = { 1, 0, 0 };
        public string vendorUID { get; }
        public string url { get; } = "https://github.com/GexyLab/ols-plugins/tree/main";
    }

    public OLSPluginProjectsDirectory(
    IErrorManager _errorManager,
    IPluginsManager _pluginsManager,
    IEventsManager _eventsManager,
    IWindowsManager _windowsManager,
    ProjectsManager _projectsManager,
    PluginDefinition _pluginDefinition) : base(_errorManager, _pluginsManager, _eventsManager, _windowsManager, _projectsManager, _pluginDefinition)
    {
        pluginInfo = new Info();
    }


    public override int deinit()
    {
        log.info("Deinit plugin" + pluginInfo.Name);
        return 0;
    }

    public override int init()
    {
        log.info($"Init project storage {pluginInfo.Title} ({pluginInfo.Name})");
        return 0;
    }

    

    public override void loadFromStorage()
    {
        
    }

    public override void saveToStorage()
    {
        Project prj = new Project(projectsManager, this, projectDef);
        projects.Add(prj);
    } 
}

 

Configurazione #

Ora è necessario inserire questo project storage, per fare questo nel file di configurazione di OpenLab Studio(config\config.json) aggiungere un oggetto json all’array plugin con per qualsiasi altro plugin.

In più rispetto ad un classico plugin, un project storage, possiede il parametro facoltativo name in config, questo parametro permette di specificare un nome per lo storage da visualizzare nell’elenco dei progetti, questo è utile quando ci sono progetti con lo stesso nome in storage diversi o per indicare comunque lo storage su cui sono salvati i progetti. Questo parametro sovrascrive la proprietà Name della classe ProjectStorage. Se non viene specificato ne il parametro nella configurazione nel il valore della proprietà Name, verrà usato il titolo del plugin(pluginInfo.name).

"plugins": {
  "loadOnStart": true,
  "plugins": [
  [...]
    {
      "enabled": true,
      "path": "OpenLab Studio\\plugins\\OpenLabStudio Plugin Projects Directory.dll",
      "config": {
        "name": "Local"
      }
    }

Installazione #

Una volta esportato il file dll questo va posizionato nella directory plugins

Updated on 22/04/2026

What are your Feelings

  • Happy
  • Normal
  • Sad

Share This Article :

  • Facebook
  • X
  • LinkedIn
  • Pinterest

Powered by BetterDocs

Table of Contents
  • Generale
    • Funzionamento
  • Implementazione di base
    • Configurazione
    • Installazione
Copyright © 2026 - Tema WordPress sviluppato da CreativeThemes