Programmierung

Alles zur Programmierung

UnitTests

0

Passend zum 3 Schichten System habe ich mich nun ein wenig in Unit Tests eingelesen. Nette Sache und kann einem die Arbeit ungemein erleichtern. Nutze es nun dazu, um zu schauen, ob ich vergesse in meinem Programm irgendwas zu übersetzen. Der Text mag zwar in der Resourcendatei drin stehen aber ich kann ja vergessen das Objekt an sich zu aktualisieren. Dies geht nun einfach über ein Unittest und ich brauch nicht mehr selbst schauen. Easy und vor allem praktisch!

3 Schichten Modell

0

Ich versuche mich aktuell, ein C# Projekt schön nach dem 3-Schichten-Modell aufzubauen. Ich orientiere mich dazu an einem HowTo von Robert Mühsig (netter Blog btw.).

Klappt alles schon ganz gut, es ist etwas aufwendiger mit dem programmieren, wie ich finde, da man sich über mehr Sachen gedanken machen muss.
Aber es hat zum Beispiel den Vorteil, dass alles schön sauber getrennt ist. Ich könnte theoretisch statt einer SQLite Datenbank als Datenquelle eine XML-Datei nutzen, nur indem ich eine anderes Objekt instanziere. Ein ordentliches Interface vorrausgesetzt, habe ich nirgendwo Probleme, dieses auch anzusprechen. Natürlich könnte man dies auch ohne das 3-Schichten-Modell machen, allerdings sind hier die Bereiche schön getrennt. So hab ich wirklich nur eine Stelle, die dafür zuständig ist, die Daten aus der Datenquelle auszulesen und wegzuschreiben und muss an anderer Stelle absolut nichts anpassen.

Wie gesagt, der Aufwand ist etwas größer und langsam wird mir zum Beispiel klar, wozu man schöne Klassendiagramme brauchen kann ;) War der Berufsschulquatsch doch nicht ganz umsonst. Ich könnte mich an diese Programmierweise echt gewöhnen!

Ach ja, bei dem Projekt geht es um eine DVD-Archiv-Software mit “Verleih”-Modull. Kann es privat selbst ganz gut gebrauchen. Als mögliche Datenquellen soll es neben (aktuell) SQLite auch XML sowie MSSQL geben (evtl. auch MySQL). Desweiteren überlege ich später als weitere Übung, eine ASP.NET Weboberfläche zu erstellen, so dass man diese Verwaltung auch Online nutzen kann. Aber erstmal eins nach dem anderen :)

F40 Division

0

Oh man, hab ich mich eben gewundert, warum in einem Script unterschiedliche Zahlen herauskommen obwohl es die selben sein müssten. Wenn man den Dividend und den Devisor in einer Division vertauscht ist das ja auch kein Wunder

*Klonk*

C#: Zahlen formatieren

2

Bei Uwe ist kurz erklärt, wie man in Strings Zahlen formatiert.
Allerdings werden die Zahlen vom System abhängig ausgegeben. Also auf deutschen Systemen wird aus “123.45″ » “123,45″.
Um sowas zu umgehen müsst ihr folgendes machen:

// Siehe Kommentare
// CultureInfo cultureInfoProvider = new CultureInfo("en-US");
CultureInfo cultureInfoProvider = CultureInfo.InvariantCulture;
MessageBox.Show(string.Format(cultureInfoProvider, "{0:F2}", 123.45));

Und schon wird euch die Zahl wie gewünscht ausgegeben.
Ist auch interessant bei Datumswerten oder Währungen.

C# schönere schreibweise

2

Durch Resharper wurde ich auf folgende schreibweise aufmerksam:

            this.tsSchwarzWeißBild = new ToolStripMenuItem
                                         {
                                             Name = "tsSchwarzWeißBild",
                                             ShortcutKeys = (Keys.Alt | Keys.W),
                                             Size = new System.Drawing.Size(226, 22),
                                             Text = "Schwarz-&Weiß-Bild"
                                         };
            this.tsSchwarzWeißBild.Click += this.optionSchwarzWeissBild;

Besser lesbarer als meine “alte” schreibweise:

            this.tsSchwarWeißBild = new ToolStripMenuItem();
            this.tsSchwarzWeißBild.Name = "tsSchwarzWeißBild";
            this.tsSchwarzWeißBild.ShortcutKeys = Keys.Alt | Keys.W;
            this.tsSchwarzWeißBild.Size = new System.Drawing.Size(226, 22);
            this.tsSchwarzWeißBild.Text = "Schwarz-&Weiß-Bild";
            this.tsSchwarzWeißBild.Click += this.optionSchwarzWeissBild;

nach oben