Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

.NET Plugin

.NET plugin funktionaliteten är ett kraftfullt sätt att utöka Ethiris Server med nya funktioner. Genom att läsa in externa dll-filer, så kan Ethiris Server utökas med nya skriptfunktioner och event.

Notera! Grafiska objekt stöds ej.

Plugin-filerna utvecklas oberoende av Ethiris Server och är därför helt separata moduler. Modulerna kan utvecklas med vilket objektorienterat programmeringsspråk som helst, så länge det har stöd för .NET.

Ethiris Server integrerar modulernas funktionalitet genom att läsa av deras struktur vid start. Ethiris Server genererar sedan ett gränssnitt (API) som exponeras för skriptmotorn, vilket i sin tur kan användas i Ethiris Admin och syns med hjälp av code complete funktionen i skripteditorn.

Dessa skriptfunktioner är osynliga för slutanvändaren, men kan ge ny funktionalitet. Till exempel kan de nya funktionerna lyssna på input från hårdvara eller kanske ge mer matematiska funktioner än de som ingår som standard. Kommunikationen med Ethiris Server kan göras genom funktionsanrop och events.

Vissa tredjeparts assemblys innehåller väldigt många objekt och funktioner, i dessa fall bör man skapa en så kallad wrapper runt dessa, så att endast relevanta objekt och funktioner exponeras. Wrappern gör det även möjligt att minska komplexiteten så att integrationen underlättas, samt gör felsökning lättare, speciellt i de fall då man nyttjar en modul där man saknar tillgång till källkoden.

Normalt behöver man inte tänka på minneshanteringen vid användandet av .NET plugin, då de flesta minnesresurserna automatiskt kommer att städas upp. Dock kan det vara bra att övervaka minnesanvändningen vid utvecklingen så att inget oväntat inträffar.

Ethiris använder en separat skripttråd för att köra skriptet och göra anrop till assemblina. Man bör därför undvika anrop som tar mycket lång tid innan de returnerar, då detta kommer att påverka övrig skriptkörning. Använd i stället trådar nere i assembliet. Dessa kan även nyttjas för att trigga events som kan fångas i scriptet.

Själva .Net-assemblyn placeras I katalogen ScriptPluginAssemblies som finns i installationskatalogen för EthirisServer. Exemplet, EthirisCalendar.dll, installeras som standard. Både wrappern och original assemblyn skall placeras här.

Notera! Filnamnen får inte innehålla några punkter eller mellanslag och måste sluta på .dll.

Ethiris Server måste startas om för att dll:erna ska laddas. Även Ethiris Admin måste startas om, om den var i gång vid serverns omstart. Detta för att ladda om code completion informationen.

Källkoden för EthirisCalendar.dll är tillgänglig och kan installeras som ett val under installationen, detta hittas under Samples när man väljer en Custom installation.

Denna funktionalitet kräver licens nivå Premium och optionen .Net script plugins.

Exempel:

var today = (new Date).toLocaleDateString();
var ph    = EthirisCalendar.EthirisCalendar.Calendar.GetPublicHoliday(today);
if(ph != undefined)
{
Debug.Print(today + " är en helgdag: " + ph.LocalName);
}
else
{
Debug.Print(today + " är ingen helgdag");
}

Exemplet kommer att skriva ut om idag är en helgdag eller inte. Om det är en helgdag, kommer det även skriva ut namnet på helgdagen.

Exempel:

var day = "2020-06-06";
if(EthirisCalendar.EthirisCalendar.Calendar.IsPublicHoliday(day))
{
var ph = EthirisCalendar.EthirisCalendar.Calendar.GetPublicHoliday(day);
Debug.Print(day + " är en helgdag: " + ph.LocalName);
}

I detta exempel så provar vi om en specifik dag är en helgdag, och om den är det så skriver vi ut helgdagens namn. I detta fall Nationaldagen.