B-Arts DocumentationIndice generale

BBundleConfig - Esempi

Rigenerazione condizionale di un bundle

using B.BConfigurations;
using B.BStatics;
using B.BUtility;

string bundleDirectory = @"C:\Web\Theme";
string configFile = BSystem.CreatePathFile(bundleDirectory, "BMinify.b");

BMinifier minifier = new BMinifier(bundleDirectory, escludeMinFile: true)
{
  MergeFile = true,
  MergeFileNameJS = "theme-min.js",
  MergeFileNameCSS = "theme-min.css"
};

BBundleConfig? config = BBundleConfig.CreateInstance(configFile);
if (config == null)
{
  throw new InvalidOperationException("Configurazione bundle non disponibile.");
}

if (config.IsNothing || config.CheckUpdate(minifier))
{
  if (minifier.Minify(true))
  {
    config.LoadFromMin(minifier);
    config.Update();
  }
}

Questo è il flusso adottato dai componenti web B-Arts: caricare la configurazione, confrontare nome e data di modifica dei file sorgenti, rigenerare il bundle soltanto quando necessario e infine salvare il nuovo stato.

Significato dei metodi

  • CreateInstance carica il file tramite il ciclo di vita di BBaseSetting; se non esiste applica MappingDataDefault.

  • CheckUpdate restituisce true quando un file JavaScript o CSS manca dalla configurazione oppure ha una data di modifica diversa.

  • LoadFromMin ricostruisce gli elenchi dei file e incrementa le versioni JavaScript e CSS.

  • Update, ereditato da BBaseSetting, salva la configurazione aggiornata.

  • FindFile ricerca un file per nome nell'elenco delle versioni.