Ab und an braucht man auch heutzutage noch Konsolenanwendungen, z. B. für kleine Tools. Nun ist an einer Konsolenanwendung nicht sonderlich viel spannendes abzuringen – bis auf das immer wieder kehrende Leid der Übergabe von Parametern.

Im Netz gibt es einige Code-Snippets und Parser, die Kommandozeilenparameter aufbereiten und das lästige interpretieren von Werten abnehmen. Bei der Suche nach eben so einem Parser bin ich auf NConsoler gestoßen, einem “Mini-Framework” für Konsolenanwendungen.

Das interessante an NConsoler ist der Ansatz der deklarativen Definition von Parametern und Operationen. Anstatt das Standard String-Array von Argumenten zu interpretieren, werden die möglichen Aktionen und Parameter einfach per Attribut definiert. Ein Vorteil dessen ist sicherlich der “Design by Contract”-Ansatz. Ein kleines Beispiel veranschaulicht die einfache Verwendung:

namespace ConsoleCalculator
{
	class Program
	{
		static void Main(string[] args)
		{
			Consolery.Run(typeof(Program), args);
		}

		[Action]
		public static void Add
			(
			[Required]
			int first,

			[Required]
			int second,

			[Optional(0)]
			int third
			)
		{
			Console.WriteLine("Result: {0}", first + second + third);
		}

		[Action]
		public static void Multiply
			(
			[Required]
			int first,

			[Required]
			int second,

			[Optional(1)]
			int third
			)
		{
			Console.WriteLine("Result: {0}", first * second * third);
		}
	}
}

Auf der Konsole sieht das Ergebnis dann foldendermaßen aus:

NConsoler-Anwendung in Aktion

NConsoler-Anwendung in Aktion

Fazit: Ein nettes kleines Tool, mit dem man schnell Konsolenanwendungen mit Parameterübergabe entwickeln kann.

Comments
This article has no comments yet. Comments are very welcome.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


(c) 2000-2012 ilker.de - Creative Computing.

For any case of inquiry regarding this document, you can always contact the website owner.