NModules

Til den seneste version af NMapper’en har jeg haft brug for en modul styrings komponent. Det er der kommet NModules ud af.

I NModules kan du registrere flere interfaces. NModules gennemsøger så en mappe for dll’er og finder alle de klasser der implementere et registreret interface. Ud af de klasser kan NModules så lave instanser som kan bruges som var de hårdkodet i systemet.

NCache

Til den seneste version af NMapper’en, har jeg lavet et par nye komponenter. Det ene er NCache.

NCache bruges til cache håndtering. Man kan smide hvad som helst i den og få det frem igen. Som standard gemmer den de cachede objekter i 10 minutter, hvorefter den fjerner dem. Men den fjerner kun de objekter der er ældre end 10 min. så alle objekter er cachede lige lang tid.

Man kan selvfølgelig selv ændre hvor lang tid cachen skal gemmes.

Du kan læse mere om NCache her.

NLog – Log-system.

Dansk:

Jeg er i gang med et eksamens projekt, og har i den anledning haft brug for at lave et logning system til at styre ændringer i system og evt. fejl. Til det system vi arbejder med er log-systemet lavet som en integreret del af systemet, men jeg tænkte om ikke kunne laves som en enkelt dll der blot skulle implementeres. Jeg er derfor kommet frem til det vedhæftede resultat: NLog. NLog består af en dll-fil og et css-dokument.

Disse to filer skal ligge i samme mappe som projektet bliver kørt fra. DLL’en er lavet i .NET 3.5 frameworket og kan implementeres i alle sprog der kører i dette framework. DLL’ens namespace er NLogClasses.

DLL-en og css-filen kan distribures frit. Dog må dll-en eller css-filen skifte navn og indholdet af dll-en må ikke ændres!

Eksempler (C#):

// Indlæs alle logs:
NLog.LoadAllLogs(); // Skal køres for der oprettes logge eller poster!
// Opret Log:
// CreateLog(string logName); logName angiver loggens navn!
Log minLog = NLog.CreateLog("LogNavn");
// Opret log-indlæg:
// CreateEntry(string description, bool error); description er en beskrivelse af hændelsen.
// error er true hvis der er tale om en fejl og false hvis ikke.
minLog.CreateEntry("Beskrivelse",false);
// Find Log:
// FindLog(string logName); logName er navnet på den log du vil finde.
Log fundetLog = NLog.FindLog("LogNavn");
// Find indlæg:
// FindEntry(DateTime time); time er tidspunktet hvor hændelsen finder sted.
Entry minEntry = fundetLog.FindEntry(DateTime.Parse("01-01-01"));
// Gem alle logs:
NLog.SaveAllLogs(); // Denne opretter en xml-fil hvis ikke denne allerede eksistere.
// Følgende er en beskrivelse af properties:
NLog.Logs; // Returnerer alle logge.
minLog.Name // Returnerer navnet på loggen.
minLog.Entries // Returnerer alle entries i den aktuelle log.
minEntry.Descr; // Returnerer beskrivelsen af hændelsen.
minEntry.Time; // Returnerer tidspunktet for hændelsen.
minEntry.Error; // Returnerer om hændelsen var en fejl eller ej.

Download NLog 0.1.

English:

I am in the middle af an exam project, in which we had to built a log-system to manage alle events to go back and se what happened when. Our log-system is embedded within our entire system so it can only run in our system. I then began to develop this little log-system which is not embedded in any way and can be used when and where it should be. It is made on the .NET 3.5 framework and is a dll-file and it can be implementet in all systems using that framework. The appended file contains the dll and a css-file. These two files has to be stored in the same directory as the rest of the executables is.

The namespace of the DLL is: NLogClasses.

The dll-file and the css-file is free to distribute but you may not change the name of the dll or the css-file. The content of the dll must stay as is!

Examples (C#):

// Load all logs:
NLog.LoadAllLogs(); // Has to be run before creating any logs or entries!
// Create Log:
// CreateLog(string logName); logName is the name of the log!
Log myLog = NLog.CreateLog("LogName");
// Create Log-entry:
// CreateEntry(string description, bool error); description is a descripten of the event.
// If the event is an error the error parameter is true.
myLog.CreateEntry("Description",false);
// Find Log:
// FindLog(string logName); logName is the name of the log you want to find.
Log foundLog = NLog.FindLog("LogName");
// Find entry:
// FindEntry(DateTime time); time is the time where the event took place.
Entry MyEntry = fundetLog.FindEntry(DateTime.Parse("01-01-01"));
// Save all logs:
NLog.SaveAllLogs(); // This creates an xml-file if it does not already exist.
// Th folowing is a description of alle the properties:
NLog.Logs; // Returns all logs.
myLog.Name // Returns the name of the log.
myLog.Entries // Returns all entries in the active log.
MyEntry.Descr; // Returns the discription of the event.
MyEntry.Time; // Returns the time of the event.
MyEntry.Error; // Returns wether the event is an error or not.

Download NLog 0.1.