MyWpfNLogDBApp

Hinterlasse einen Kommentar

NLog ist eine weit verbreitete Logging Bibliothek im .Net Umfeld zum Loggen von Debug-Informationen und Fehlern. Ich benutze sie sehr häufig, um Nachrichten in eine Log-Datei zu schreiben. Aber NLog kann noch mehr als in eine Datei schreiben, NLog kann in viele unterschiedliche Ziele schreiben, ins EventLog von Windows oder auch in eine Datenbank. In diesem Beispiel soll eine WPF-Anwendung in eine MS-SQL Server Datenbank schreiben.

Es werden diese Nuget Pakete benötigt:

Install-Package NLog -Version 5.1.0
Install-Package System.Data.SqlClient -Version 4.8.5
Install-Package NLog.Database -Version 5.1.0 

eine Datenbank wurde mit folgendem Statment erzeugt:

USE master
GO

--USE master; DROP DATABASE NLog;
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = 'NLog')
BEGIN
  CREATE DATABASE NLog;
END;
GO

USE NLog;
IF OBJECT_ID('Logs', 'U') IS NULL
BEGIN
	CREATE TABLE Logs(
		Id bigint NOT NULL PRIMARY KEY IDENTITY(1,1),
		CreatedOn nvarchar(max),
		Level nvarchar(10),
		Message nvarchar(max),
		StackTrace nvarchar(max),
		Exception nvarchar(max),
		Logger nvarchar(255),
		Url nvarchar(255)
	);
END;
GO

SELECT * FROM Logs ORDER BY Id;

Folgende Features werden gezeigt:

  • mit NLog in eine MS-SQL Datenbank schreiben

Das Projekt auf Github gibt’s hier.

MyWpfCorePluginTemplate

Hinterlasse einen Kommentar

MyWpfCorePluginTemplate ist ein Wpf .Net 5/6-Programm, das als Vorlage verwendet werden kann und neben einigen anderen Funktionen MEF (Managed Extensibility Framework) mit .Net 5/6 demonstriert.

Im Prinzip ist in MyWpfCorePluginTemplate nichts wirklich Neues, was nicht schon in diesem Blog zu finden ist. Es wurden aber einige Dinge zusammengefasst und auf .Net 5/6 portiert.
Im Kern ist es eine WPF Anwendung wie das MEF Beispiel (Managed Extensibility Framework) von MySimpleWPFMefApp, nur eben für .Net Core.

Was noch hinzugefügt wurde, ist ein einfaches Setup und eine alte klassische Windows-Hilfe:

Das Setup wurde mit InnoSetup und die Hilfe mit HelpMaker (avhsetup.exe 9.818.360 Bytes) erstellt.

Hinweis:
Das Setup-Script ist so geschrieben das beim Ausführen des Setup-Skripts MyWpfCorePluginTemplateiss.iss die Debug-Version für .Net 5 in das Sertup_*.exe deployed wird. Will man z.B. stattdessen die .Net 6 Release deployen so ist die Plattform-Einstellung auf .Net 6 in Visual Studio 2022 einfach zu ändern, das Setup-Script muss allerdings entsprechend angepasst werden und die Hilfe-Datei MyWpfCorePluginTemplate.chm muss mit HelpMaker vor dem Bulid mit Visual Studio erstellt werden.

Ansonsten sind noch einige andere Dinge im Projekt enthalten, die ich immer wider in den unterschiedlichsten Projekten verwende, als da wären: AboutBox, Loging, ChangeLog, Menüs mit Icons, ToolBar, StatusBar etc.

In dem Projekt werden diese NuGet-Pakete verwendet:

  • Install-Package NLog
  • Install-Package System.ComponentModel.Composition

Folgende Features werden gezeigt:

  • .Net 5.0/6.0
  • VS 2022
  • Zuordnung eine Icons (*.ico) zur Anwendung (Template zum ändern)
  • Plugins mit MEF
  • WPF Menüs
  • WPF Tool-Bar
  • WPF Status-Bar
  • AboutBox (Template zum kopieren)
  • Transparente-Fenster
  • Fenster mit abgerundeten Ecken
  • LogFile mit NLog
  • ChangeLog Window
  • Klassische Windows-Hilfe mit HelpMaker
  • Einfaches Setup mit InnoSetup

Das Projekt auf Github gibt’s hier.

MyWpfSetingsApp

Hinterlasse einen Kommentar

MyWpfSetingsApp ist ein kleines Wpf .Net 6 Programm das einige nützliche Features zeigt:

Folgende Features werden gezeigt:

  • .Net 6
  • VS 2022
  • Globales Exception Handling in .Net 6 Anwendungen
  • Settings (merken der Fensterposition)
  • Maus-Position
  • Fester-Größe
  • Laden eines Textes aus eine .txt Datei
  • Abrufen der Startpostion der .exe
  • NLog in .Net 6 Anwendungen
  • Alternative eigene Settings mit
    Serialisierung der Klasse Globals

Das Projekt auf Github gibt’s hier.

MyCoreConsoleLogApp

Hinterlasse einen Kommentar

ist eine .Net 5 (Core Anwendung).
Gedacht als einfachstes Template für eine .Net 5 Core Konsole Anwendung mit NLog.

Dazu ist es notwendig über die NuGet Konsole (Package Manager Consol) das NLog Paket zu installieren:

PM> Install-Package NLog
siehe https://www.nuget.org/packages/NLog/

oder so:

Folgende Features werden gezeigt:

  • .Net 5 (Core)
  • .Net Core Konsolen Anwendung
  • NLog für .Net 5 (Core)

Das Projekt auf Github ist hier.

MyTelerikEFSimpleExample

Hinterlasse einen Kommentar

Ich benutze in meinen Projekten gerne Telerik-Controls. Die Auswahl ist relativ groß und es gibt eine Menge Beispiele Code und der Support ist, nach meiner Auffassung, gut. Außerdem ist der Preis von ca 1000,- € vernachlässigbar wenn man sich überlegt das man alles selber programmieren müsste was man davon benutzt.
Ursprünglich wollte ich eigentlich nur ein kleines Beispiel schreiben, dass eine SQL-Tabelle enthält die über das Entity Framework 6 mit dem Telerik-Control RadGridView verknüpft ist. Nun ist es doch ein wenig größer geworden, dafür enthält es ein paar nette Besonderheiten:

  • Ich habe NLog mit eingebunden, das demonstriert wie man in einem C# Programm eine Log-Datei erzeugt und füllt.
  • Es ist die Funktion SetExecutionStrategy von EF6 implementiert, in der SQL-Server-Exceptions abgehandeln werden (ganz wichtig wenn man stabile Anwendungen schreiben möchte).
  • Es ist der von EF6 unterstütze Log-Mechanismus implementiert (aus diesem Grund habe ich auch auf NLog hinzugefügt)

Das Projekt besitzt volle CRUD Funktionalitäten(Create, Read, Update and Delete) und hat eigentlich alles was so eine kleine smarte Datenbank-Anwendung mit nur einer Tabelle braucht. Wie oben erwähnt habe ich Aufmerksamkeit darauf verwendet das Beispiel möglichst stabil zu schreiben. Man sollte zum Beispiel den SQL-Server einfach herunterfahrenden können, irgend welche Aktionen im Programm ausführen können (Delete, Update, Insert oder Select) und alle Exceptions sollen abgefangen sauber werden. Das ist hier auch der Fall.
Durch das implementieren der EF-SQL-Log-Funktion kann man auch schön sehen das die SQL-Abfragen effizient sind.

19_1

Folgende Features werden gezeigt:

  • Entity Framework 6
  • NLog
  • Telerik RadGridView
  • CRUD

Das Projekt gibt’s hier.