KISS Prinzip

November 30, 2009 by Johnny.Walker · Leave a Comment 

Ein weiteres Prinzip in der Anwendungsentwicklung.

KISS!

Damit ist aber nicht die Band gemeint sonder wieder eine Abkürzung.

KISS steht für KEEP IT SIMPLE, STUPID!

Gemeint ist damit, den einfachsten Weg bei der Entwicklung einer Lösung zu gehen. Auch wenn es evtl. interessanter ist einen komplexeren Algorithmus zu schreiben kostet das aber Zeit und damit Geld.

Mit so wenig Aufwand die gestellte Aufgabe so gut wie möglich  zu lösen – das ist das Ziel!

Na dann probieren wir’s mal :)

So long…

DRY Prinzip

November 29, 2009 by Johnny.Walker · Leave a Comment 

In der Anwendungsentwicklung gibt es verschiedene Richtlinien, die einem dabei helfen übersichtlicheren Code zu schreiben.

Eines dieser Prinzipien nennt sich DRY.

DRY steht für Don’t Repeat Yourself!

Ein guter Hinweis. Denn gibt es funktionalen Code, den man per Copy ‘n’ Paste in einer anderen Methode verwenden möchte ist man gut beraten stattdessen diesen Code in eine separate Methode auszulagern.

Muss nähmlich an dieser Logik etwas geändert werden, erfolgt die Änderung nur an einer Stelle – in der ausgelagerten Methode.

Das hilft Code zu schreiben, der besser wartbar ist.

Viele IDEs haben dafür auch eingebaute Funktionen, die es dem Programmierer erlauben vorhanden Code schnell zu überarbeiten. image

Hier im Beispiel die “Extract Method…” Funktion in Visual Studio 2008.

Wenn man sich an dieses einfache Prinzip hält wird der Code um vieles leichter wartbar.

So long…

Automatisierte Installation .Net Framework 3.5 SP1 (MOSS 2007 – Teil 2)

November 14, 2009 by Johnny.Walker · Leave a Comment 

Dieser Post ist Bestandteil einer mehrteiligen Serie zum Thema Installation des Microsoft Office SharePoint Servers 2007. Die Installation soll weitestgehend automatisiert über Skripte laufen.

Als Testkonfiguration verwenden wir einen Server 2008 x86, SQL Server 2005 Express mit SP3 und die Testversion von Microsoft Office SharePoint Server 2007.

Silentinstallation des .Net Frameworks 3.5 SP1

Für die Installation des Microsoft Office SharePoint Servers 2007 benötigt man zumindest das Framework 3.0. Da die Version 3.5 SP1 ne Menge Sicherheitslücken stopft empfielt es sich gleich dieses Framework zu installieren.

Read more

Installation von Team Foundation Server 2010 Beta1

October 14, 2009 by Johnny.Walker · Leave a Comment 

Als angehender Entwickler muss man sich natürlich auch mal über Revisionierung von Code und allgemein um dessen Verwaltung Gedanken machen.

Da nun der Team Foundation Server 2010 Beta1 vor kurzem erschienen ist, habe ich mich dazu entschlossen diese Version testweise mal zu installieren.

Read more

Singleton Pattern

October 8, 2009 by Johnny.Walker · Leave a Comment 

Das Singleton Pattern erlaubt es einem Programmierer von einer Klasse genau eine Instanz zu erstellen. Auf die Methoden und Eigenschaften dieser Klasse kann man von überall her zugreifen.

namespace MyApplication
{
    class Singleton
    {
        // instance of Singleton Class
        private static Singleton instance;
        // constructor set to private!
        private Singleton()
        {
        }
        // methode to access this class and all methodes
        // within Singleton Class
        public static Singleton getInstance()
        {
            if(instance == null)
                instance = new Singleton();
            return instance;
        }
        // a methode that you like to get access to
        public void DoSomethingVerySpecific()
        {
            // Does something very specific
        }
    }
    class SomethingElse
    {
        public void DoSomething()
        {
            // calling the methode from anywhere
            Singleton.getInstance().DoSomethingVerySpecific();
        }
    }
}

Was benötigt man nun um eine Klasse als Singleton zu implementieren?

Der Konstruktor wird private gesetzt, sodass man von außen keine Instanz dieser Klasse erstellen kann. Als nächstes benötigt man eine Variable vom Typ der Singletonklasse. Diese wird ebenfalls private und auf static gesetzt.

Wie kommen wir nun an die Methoden und Eigenschaften dieser Klasse?

Wir schreiben eine public Methode getInstance(). Diese Methode prüft, ob die Variable instance schon einmal initialisiert wurde. Wenn nicht, wird die Variable initialisiert (innerhalb der Klasse können wir ja auf den Konstruktor zugreifen) und zurückgegeben.

Jetzt können wir in anderen Klassen über Singleton.getInstance().DoSomethingVerySpecific() auf die Singletonklasse zugreifen.

Soviel erstmal dazu.

So long…

Zahlen aus einem Textabschnitt extrahieren mit C#

October 7, 2009 by Johnny.Walker · Leave a Comment 

Manchmal hat man eine Textpassage die eine Zahl beinhaltet. Und genau diese Zahl hätte man nun gerne ausgelesen.

// extract int from string
        private int extractIntFromString(string s)
        {
            int i = 0;
            string str;
 
            try
            {
                // get number from string
                str = string.Join(null, System.Text.
RegularExpressions.Regex.Split(s, "[^\\d]"));
                // convert type to int
                i = int.Parse(str);
                // return int i
                return i;
            }
            catch(Exception e)
            {
                // show errormessage
                MessageBox.Show(e.ToString());
                // return i, in that case 0
                return i;
            }
        }

 

Diese Methode gibt die extrahierte Zahl als Integer zurück.

Man verwendet hierbei die Join-Methode von string und identifiziert alle Zahlen mit Hilfe einer Regular Expression.

Auf jeden Fall ein Thema, das es lohnt sich genauer anzuschauen.

So long…

Text/HTML Datei speichern mit C#

October 7, 2009 by Johnny.Walker · Leave a Comment 

Um einen Text- bzw. HTML-Datei (ist ja auch nur Text) in C# abspeichern zu können geht man folgendermaßen vor:

public void WriteFile(string s)
       {
           // Stream als File speichern
           Stream myStream;
           string sString = s;
           SaveFileDialog saveFileDialog1 = new SaveFileDialog();
           saveFileDialog1.Filter = "HTML Report(*.html)|*.html";
           saveFileDialog1.FilterIndex = 2;
           saveFileDialog1.RestoreDirectory = true;
           if (saveFileDialog1.ShowDialog() == DialogResult.OK)
           {
               if ((myStream = saveFileDialog1.OpenFile()) != null)
               {
                   StreamWriter wString = new StreamWriter(myStream);
                   wString.Write(sString);
                   wString.Close();
               }
           }
       }

Die Methode nimmt einen String auf und legt diesen als Textdatei ab. Zum Abspeichern wird der aus der Windowswelt bekannte Dialog verwendet um im Dateisystem navigieren zu können.

Der Filter im Code gibt an, welchen Dateityp die Methode verwenden soll um den Text abzuspeichern.

Der String muss natürlich schon HTML Code enthalten. Eine automatische Umwandlung und Ergänzung von HTML Tags erfolgt nicht.

Find ich ganz nützlich um z. B. Fehlerberichte oder ähnliches aus dem Programm dem Benutzer als HTML Dokument zur Verfügung zu stellen.

So long…

Einträge ins Windows Eventlog schreiben mit C#

October 6, 2009 by Johnny.Walker · Leave a Comment 

Wie man eigene Einträge ins Windows Eventlog schreiben kann soll folgende Methode zeigen:

public void WriteToLog(string source, string log, string message)
{
    if(!EventLog.SourceExists(source))
        EventLog.CreateEventSource(source, log);
    EventLog.WriteEntry(source, message, EventLogEntryTyp.Warning);
}

 

source ist die Quelle des Events. Z. B. der Name deiner Applikation.

log ist die Kategorie unter der die Events eingetragen werden. Man kann hier die vorhandenen verwenden oder auch eigene erstellen.

message ist die eigentliche Nachricht, die im Eventlog festgehalten wird.

Um die Abhängigkeiten aufzulösen fehlt nun noch ein:

using System.Diagnostics;

Eine interessante Quelle zu diesem Thema ist die MSDN Seite von Microsoft:

Eventlogs

So long…

Dateien in einem Ordner löschen mit C#

October 6, 2009 by Johnny.Walker · Leave a Comment 

Folgende Methode verdeutlicht, wie man Dateien in einem Ordner löschen kann

private void DeleteFiles(string path)
        {
            string[] fileList = Directory.GetFiles(path);
            foreach (string file in fileList)
            {
                FileInfo fi = new FileInfo(file);
                fi.Delete();
            }
        }

Zunächst listet man alle Dateien in einem Ordner auf und löscht danach jede einzelne mit Hilfe einer Schleife.

So long…

Ordner auf vorhandene Dateien überprüfen mit C#

October 4, 2009 by Johnny.Walker · Leave a Comment 

Auf diesem Weg kann man einen Ordner überprüfen und schauen, ob dieser Dateien enthält oder nicht.

private bool checkIfFilesExists(string path)
        {
            string[] fileList = Directory.GetFiles(path);
            if (fileList.Length > 0)
            {
                return true;
            }
            else 
            {
                return false;
            }
        }

Über Directory.GetFiles(pathToDirectory) erhält man eine komplette Auflistung aller Dateien in dem Ordner.

Und so kann man schauen wieviele Dateien in dem Ordner sind.

Kann man z. B. einsetzen für ein Pollingsystem.

So long…

Next Page »