Mrz 02 2013

Immutable Objects am Beispiel von Passwort Hantierung in Java

Autor: . Abgelegt unter Java

In Java sind Strings „Immutable Objects“ (unveränderliche Objekte),
dass bedeutet sie werden zur Laufzeit nicht mehr geändert.  Immutables Objects haben viele Vorteile:

  • im Allgemeinen ist es einfach möglich zu parallelisieren
  • Implementierung von Undo- und Redo-Funktionalitäten sind normalerweise einfach (z.B. mittels Memento-Pattern)
  • James Gosling (einer der Erfinder von Java), gibt zusätzlich an, dass bei Immutable Objects es grundsätzlich möglich ist, Ergebnisse zu Cachen und das die Sicherheit wird erhöht. (vgl. https://www.artima.com/intv/gosling313.html )

Weiterlesen »

Kommentare deaktiviert für Immutable Objects am Beispiel von Passwort Hantierung in Java

Okt 14 2012

Ermitteln des PID (Processidentifier) des Vaterprozesses

Autor: . Abgelegt unter C# .Net

In manchen Fällen ist es notwendig heraus zu finden, welches der Vaterprozess eines Prozesses ist. Dafür gibt es im Allgemeinen drei verschiedene Lösungen im Windows .NET Umfeld.

Weiterlesen »

Kommentare deaktiviert für Ermitteln des PID (Processidentifier) des Vaterprozesses

Jul 28 2012

DSLs, Extension Methods und Fluent Interfaces

Autor: . Abgelegt unter C# .Net

In den letzten Jahren wurde in der Softwareentwicklung viel über Domänenspezifische Sprachen (domain specific language, kurz: DSLs) geschrieben. DSLs sollen von einem Domänenexperten gelesen werden können, auch ohne das die Domänenexperten über Programmierkenntnisse verfügen. DSLs können auch Entwicklern helfen die Quelltexte leserlicher zu machen, sowie Fehler zu vermeiden. Die Quelltextzeile:

if (!SessionEstablished)

Ist einfach verständlich (für diejenigen welche eine C ähnliche Syntax verstehen), als Alternative könnte folgende Quelltextzeile dienen:

if (Not(SessionEstablished))

Weiterlesen »

Kommentare deaktiviert für DSLs, Extension Methods und Fluent Interfaces

Jun 19 2012

Testgetriebene Entwicklung (mit NCrunch)

Autor: . Abgelegt unter C# .Net

Beim Testgetriebenen Entwickeln (TDD) wird ein Test-First-Ansatz verfolgt, dass bedeutet, dass erst der Test erstellt wird. Danach wird der Quelltext geschrieben, welcher notwendig ist, damit der Test erfolgreich durchläuft (umgangssprachlich: „grün wird“). Beim Entwickeln mittels TDD sollte nichts programmiert werden, was nicht durch einen Test vorher notwendig wird. Das führt zu einer hohen Abdeckung vom produktiven Quelltext mit Tests sowie zu einem testbaren Entwurf.

Weiterlesen »

Kommentare deaktiviert für Testgetriebene Entwicklung (mit NCrunch)

Jun 08 2012

Inversion Of Control(-Container), Service Locator und Dependency Injection

Autor: . Abgelegt unter C# .Net

IOC-Container und DI sind zurzeit in vielen Fachzeitschriften diskutiert. Hier der Versuch einer kompakte Übersicht, die IOC, DI, SL und IOC-Container im Zusammenspiel erklärt.

Weiterlesen »

Kommentare deaktiviert für Inversion Of Control(-Container), Service Locator und Dependency Injection

Mai 13 2012

FxCop Dispose von lokalen Variablen

Autor: . Abgelegt unter C# .Net

Die Freigabe von Ressourcen (verwaltet und nativ) wird im .Net mittels Implementierung der IDisposable Schnittstelle (bzw. Anwendung des IDisposable Patterns realisiert). Der Aufruf der Dispose-Methode ist so wichtig, dass Microsoft spezielle FxCop Regeln implementiert hat (FxCop ist ein Tool zur statischen Analyse von .Net Assemblys). Die Regel „Disposable fields should be disposed“ (CA2213) besagt, dass eine Klasse welche Member enthält, die IDisposable implementieren, selber IDisposable implementieren soll. In der eigenen Dispose-Methode, werden dann die Dispose-Methoden der Members aufgerufen. Genauso relevant wie Member freizugeben, ist es auch lokale Variablen wieder freizugeben. Für FxCop 1.36 bietet Microsoft keine entsprechende Regel.

Weiterlesen »

Kommentare deaktiviert für FxCop Dispose von lokalen Variablen

Apr 20 2012

Vermeidung von switch-case zur Typen Bestimmung beim Aufruf von generischen Methoden

Autor: . Abgelegt unter C# .Net

In der Entwicklung mit .NET hat man öfter folgendes Problem:

Methoden sind generisch implementiert und zu verwendende Objekte sind nur in Form von Referenzen auf Basistypen vorhanden (z.B. System.Array, System.Object). Diese Referenzen können nicht direkt an generische Methode übergeben werden (ergibt einen Compile Fehler).

Häufig liegen daher Typinformationen als String vor (über FullName-Property, aus Konfigurationsdatei, …). Diese Informationen werden anschließend verwendet, um den Typ der Referenz über switch-case aufzulösen. Weiterlesen »

Kommentare deaktiviert für Vermeidung von switch-case zur Typen Bestimmung beim Aufruf von generischen Methoden

Nov 07 2011

UnauthorizedAccessException beim Kopieren einer Datei

Autor: . Abgelegt unter C# .Net

Kopieren, verschieben, umbenennen und löschen von Dateien gehören zu häufigen Aufgaben eines Softwareentwicklers. In diesem Beitrag sollen ein paar Dinge aufgezeigt werden die einem beim kopieren von Datein vielleicht nicht bewusst sind. Wie kopiert man jetzt am besten eine Datei? Eine Variante ist die statische Methode der Klasse File:

File.Copy(@“C:\input\test.bmp“, @“C:\output\test.bmp“, true);

Damit man sich Überprüfungen wie ob die Datei bereits existiert (File.Exist()) sparen kann, wird die Überladung der Copy-Methode verwendet, welche bestehende Dateien überschreibt. Solange man die Software nur mit administrativen Rechten betreibt, hat man alles richtig gemacht. Weiterlesen »

Kommentare deaktiviert für UnauthorizedAccessException beim Kopieren einer Datei

Jul 10 2011

WPF Lern Videos

Autor: . Abgelegt unter C# .Net

WPF (Windows Presentation Foundation) ist gerade wenn man vorher im System.Windows.Forms Umfeld gearbeitet hat, nicht leicht zu verstehen.

XAML-Beschreibungen, Code-Behind-Konzept, Routed Events, machen einem anfangs das Leben schwer.  Um besser mit diesem Thema vertraut zu werden empfehle ich die Learning Videos von windowsclient.net.

Angesehen habe ich mir bis jetzt die Videos zum Thema 3D, Command Binding sowie Custom Commands diese fand ich klar Strukturiert und gut Erklärt.

Auch lernt man dadurch neue Tools kennen wie z.B.  den XamlPadX, einen kleinen schmalen XAML Editor.

Viel Spaß beim schauen!

Kommentare deaktiviert für WPF Lern Videos

Jun 18 2011

WPF RichTextBox mit Durchgestrichenden Text

Autor: . Abgelegt unter C# .Net

Um bei einer WPF RichTextBox einen Text Fett, Kursiv oder Unterstrichen darzustellen ist nicht viel notwenig. Eigentlich muss man im XAML nur einen (Toggle)Button definieren, der ein Kommando (EditingCommands) an die RichTextBox sendet:

<ToggleButton
  Command="EditingCommands.ToggleItalic"
  CommandTarget="{Binding ElementName=myRichTextBox}"
  Content="Italic"/>
<RichTextBox/>

Genauso einfach verhält es sich einen Text Hochgestellt oder Tiefgestellt darzustellen, mann muss nur zusätzlich noch die Schrift-Familie des Hinter der RichTextBox liegenden Dokumentes verändern:

<ToggleButton
  Command="EditingCommands.ToggleSubscript"
  CommandTarget="{Binding ElementName=myRichTextBox}"
  Content="Subscript"/>
<RichTextBox/>
  <!--on default fontfamily subscript and superscript dont work!!-->
  <FlowDocument FontFamily="Palatino Linotype" FontSize="14"/>
</RichTextBox>
 Weiterlesen »

Kommentare deaktiviert für WPF RichTextBox mit Durchgestrichenden Text

« Aktuellere Einträge - Ältere Einträge »