.NET Blog   ·   .NET Casts   ·   .NET GUI Foren   ·   .NET BlogBook   ·   WPF Blogger   ·   visual studio one   ·   ASP.NET professional

  • ACHTUNG - NEUES BLOG

    Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
Download .NET Essentials Installer
Trickkiste

Design Patterns: Die Geschichte

28.03.06 - Patterns
Beitrag von Norbert Eder
 Unter Was sind Design Patterns wurde der Begriff Design Pattern bereits definiert und auch die unterschiedlichen Arten wurden angeführt.

In diesem Beitrag wird auf die Geschichte der Design Patterns eingegangen.

Bereits in den 1970er Jahren wurde die erste Sammlung von Entwurfsmustern erstellt - allerdings von einem Architekten namens Christopher Alexander. Die Idee dahinter hat sich seitdem nicht verändert. Nur fand seine Sammlung wenig Anklang unter anderen Architekten, in der Softwareentwicklung wurde die Idee jedoch bald darauf aufgegriffen und erfreut sich großer Beliebtheit. Ende der 1980er wurde die Sammlung von Chritopher Alexander von Kent Beck und Ward Cunningham aufgegriffen und entwickelten auf deren Basis Entwurfsmuster für grafische Benutzerschnittstellen.

Eine neue Ära begann dann mit Erich Gamma. Nach seiner Promotion an der Universität Zürich, 1991, ging er in die USA und verfasste zusammen mit Richard Helm, Ralph Johnson und John Vlissides das Buch Design Patterns - Elements of Reusable Object-Oriented Software. In diesem Buch wurden 23 Design Patterns beschrieben. Dies verhalf den Entwurfsmustern zum Durchbruch. Die vier Autoren sind gemeinhin auch unter Gang of Four (GoF) bekannt.

Zur Übersichtlichkeit verwendete die GoF ein einheitliches Schema um die Design Patterns zu beschreiben. Nachfolgend eine kurze Übersicht:

- Mustername und Klassifikation
- Zweck
- Synonyme
- Motivation
- Anwendbarkeit
- Struktur
- Beteiligte Klassen (Akteure)
- Zusammenspiel der involvierten Klassen
- Vor- und Nachteile
- Implementierung
- Beispielcode
- Praxiseinsatz
- Querverweise

Anhand dieses Schemas konnte ausreichend Information zum entsprechenden Design Pattern geliefert werden (Wann ist es einsetzbar, etc.).

  Kommentar hinzufügen   |  1 Trackbacks   |  Permalink  |  Trackback-URL


How to Remove Linux and Install Windows XP

25.03.06 - Internet
Beitrag von Norbert Eder
 ... zeigt uns Microsoft anhand eines netten Artikels. Eigentlich mische ich mich in derartige Themen ja nicht mehr ein, aber ich fand's irgendwie ganz witzig, als ich heute zufällig auf diesen Eintrag gestoßen bin.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Tool: Outlookmaster

23.03.06 - OutlookMaster
Beitrag von Norbert Eder
 Da ich Microsoft Outlook intensiv verwende, es aber nicht ständig geöffnet haben will (Ressourcen, die ich fürs Programmieren benötige), habe ich mir gestern ein kleines Tool gebaut, welches Zugang zu einigen Outlook-Funktionen per Traybar anbietet.

Es fehlt zwar noch eine MailChecker-Funktionalität, aber leistet zumindest mir recht gute Dienste. Daher möchte ich das Tool potentiellen Usern nicht vorenthalten und habe es online gestellt.

Zu finden ist das Tool auf der Projektseite zu Outlookmaster.

Anregungen etc. nehme ich natürlich entgegen, unter Verwendung der Kontaktseite.

  2 Kommentare - 1397 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


.NET Compact Framework Version 2: Welches CAB für welches Gerät?

23.03.06 - Mobile Devices
Beitrag von Norbert Eder
 Diese Frage hat das netcfteam sehr ausführlich im Artikel .NET Compact Framework Version 2 .CAB Files Explained erklärt. Ebenso wird erklärt was sich in diesen CAB-Files befindet und wie die Installation vor sich geht. Ergo also für jeden CF 2 Entwickler hilfreich und nützlich.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Patterns: Command Pattern

21.03.06 - Patterns
Beitrag von Norbert Eder
 Das nächste Pattern, welches ich in meiner Rubrik Patterns vorstellen möchte, ist das Command-Pattern.

Defintion
Das Command Pattern ermöglicht die Repräsentation von Aktivitäten in eigenständigen Objekten.

Was bedeutet dies in der Praxis?

Innerhalb der selben Struktur können unterschiedliche Commands ausgeführt werden, die jeweils eine bestimmte Aufgabe besitzen. Unabhängig davon, welche Aufgabe ein Command hat, muss das ausführende Konstrukt nicht verändert werden. Zusätzlich besteht die Möglichkeit, Commands in beispielsweise einer Queue abzulegen um hintereinander abgearbeitet zu werden.

Beispiel-Implementierung

Der Aufbau des Command Patterns wird zwar in manchen Fällen recht aufwändig und kompliziert dargestellt, gestaltet sich in der Praxis jedoch als sehr einfach. Es wird ein Interface ICommand erstellt welches die notwendige Methode Execute() zur Verfügung stellt. Jeder konkrete Command implementiert dieses Interface und die Methode Execute() wird dabei mit der Logik des Commands befüllt. In einigen Fällen macht es auch durchaus Sinn, einen abstrakten Command einzufügen, der bereits Basisfunktionalitäten zur Verfügung stellt.


public interface ICommand
{
string Message{get;set;}
void Execute();
}


Dieses Interface schreibt also die Methode Execute() vor, die von jedem Command implementiert werden muss. Weiters wird eine Eigenschaft Message vorgeschrieben, die eine entsprechende Nachricht speichern soll. Konkreter Anwendungsfall wäre eine Fehlermeldung wenn der Command auf einem entfernten Host ausgeführt wird (kann als eine Ergänzung zu einem State gute Dienste leisten).

In diesem Beispiel wird nun ein abstrakter Command erstellt, der die Eigenschaft als Basisfunktionalität zur Verfügung stellt:


public abstract class Command : ICommand
{
private string message = null;

public string Message
{
get { return this.message; }
set { this.message = value; }
}

public abstract void Execute();
}


Alle Commands, die nun vom abstrakten Command ableiten, müssen die Eigenschaft Message nicht mehr implementieren, da diese bei der Ableitung übernommen wird. Lediglich die Methode Execute ist zu überschreiben. Dies wird anhand des folgenden Sourcecodes gezeigt:


public class ConcreteCommand : Command
{
#region ICommand Members

public override void Execute()
{
this.Message = "This is a concrete command implementation.";
}

#endregion
}


Hier passiert nichts anderes, als dass die Eigenschaft Message mit einem String befüllt wird.

Weiters wird von mir noch eine Klasse Executor benutzt, der für die Ausführung der Commands zuständig ist.


public class Executor
{
public void ExecuteCommand(ICommand ic)
{
ic.Execute();
}
}


Wie hier zu sehen ist, wird ein ICommand übergeben, der anschließend ausgeführt wird. Dadurch kann jeder beliebige Command ausgeführt werden und eine Erweiterung ist nur dann notwendig, wenn der Executor selbst diverse neue Features bekommt.

Zusammenfassung

Da im Falle des Command Patterns nur mehr die einzelnen Commands implementiert werden müssen, das ausführende Framework sich jedoch nicht ändert, eignet sich dieses Pattern sehr gut für eine Client-Server Kommunikation und wird daher auch oft eingesetzt, wenn Clients beispielsweise mit WebServices interagieren.

Nachfolgend findet sich ein kleines Testprogramm, welches den gesamten Ablauf dieses Patterns zeigt.

Beispiel-Anwendung: Download

  6 Kommentare - 2679 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Forenbetreiber werden wieder einmal abgemahnt!

15.03.06 - Internet, Community
Beitrag von Norbert Eder
 Durch ungerechtfertigte Abmahnungen sind vor allem die privat geführten Internetforen sehr gefährdet. Diese beziehen sich auf den Heise-Fall, der zudem noch nicht abgeschlossen ist und zudem auch nicht übertragbar sein dürfte.

Wer also gerne an diversen Foren im Internet teilnimmt, der möge sich an dieser Spendenaktion beteiligen um die zugrundeliegende Klage zu unterstützen. Es kommt allen (deutschsprachigen) Foren zugute.

Helft mit!

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Tools: LaTeX Reference Manager

12.03.06 - 3rd Party Tools
Beitrag von Norbert Eder
 Wer so wie ich entweder gerade seine Diplomarbeit oder auch andere Dokumente mit LaTeX schreibt, der weiß auch, dass Literaturangaben sehr wichtig sind, jedoch bei der Pflege viel Aufwand bedürfen.

Um dies einfacher zu machen, sei zu einem Tool namens JabRef geraten. Hierbei handelt es sich um eine Verwaltungs-Oberfläche für BibTeX-Datenbanken. Viele Funktionen (zu erwähnen ist auch die Unterstützung von vielen unterschiedlichen Formaten) werden geboten und erleichtern die Arbeit mit Literaturverweisen ungemein.

Anforderungen: Java 1.4 und neuer.

  Kommentar hinzufügen - 4 mal angesehen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Community: Neue Kategorie und neues Glengamoi

09.03.06 - Community
Beitrag von Norbert Eder
 Zum einen habe ich heute die Neue Kategorie Community eingeführt, in der Themen/Informationen aus eben diesem Gebiet aufgegriffen werden.

Weiters hat sich Glengamoi weiterentwicklet und geht nun mit einem Forum ins Rennen. Die altbekannten Mailinglisten wird es (so sieht es aus) weiterhin geben.

Vielleicht liest man sich ja das eine oder andere Mal ;-)

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


C# Beginner: UserControl DoubleTrackBar Beispiel

04.03.06 - .NET, WPF
Beitrag von Norbert Eder
 Deisem Eintrag liegt ein Beispiel bei, welches zeigt, wie ein einfaches DoubleTrackBar-Control erstellt werden kann.

Mit Hilfe dieses Controls können mit zwei Schieberegler ein Minimum-Wert und ein Maximum-Wert eingestellt werden. Eigentlich ein recht simples Problem, jedoch nicht für C# Programmierer, die in Themen wie GDI+, UserControls wenig Erfahrung haben.

Der folgende Screenshot zeigt das Aussehen des UserControls in einer kleinen Testanwendung:



Zusätzliche Funktionalitäten sollten sich recht einfach einfügen lassen.

Anforderungen: .NET 2.0 für die Solution. Sourcecode auch unter .NET 1.1 nutzbar

Download

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL


Tools: DotLucene - Fulltext Search Engine for .NET

03.03.06 - 3rd Party Tools
Beitrag von Norbert Eder
 Wer für diverse Anwendungsfälle eine kostengünstige und vor allem schnell Volltextsuche benötigt, der sollte sich auf jeden Fall DotLucene genauer ansehen.

Hinter diesem Open-Source-Projekt verbirgt sich eine vielversprechende Lösung für dieses Thema.

Ein kurzer Auszug aus der Featureliste:
- Gute Performance
- Ranking
- Hervorhebung der Suchbegriffe in den Ergebnissen
- Suche nach Metadaten
- Speicherung von vollindizierten Dokumenten

Durch die Benutzung der Online Demo kann man sich von der Geschwindigkeit und von einigen Features überzeugen.

Im gleichen Atemzug kann man sich auch den - auf der Seite von DotLucene vorgeschlagenen - Indexing Server Seek a File ansehen. Der Server läuft als Windows Dienst und kann folgende und weitere Dateitypen indizieren:

- DOC
- PDF
- XLS
- PPT
- RTF
- HTML
- TXT
- XML

Ein Blick auf diese Tools sollte sich als durchaus lohnen.

  Kommentar hinzufügen   |  0 Trackbacks   |  Permalink  |  Trackback-URL



Zurück Weiter