Dienstag, Juli 31, 2007
Neues Eisen
Montag, Juli 30, 2007
Im Westen geht die Sonne unter
LINQ: Csv To Xml
Wie kann man eigentlich mit LINQ schnell mal den Inhalt einer CSV-Datei in eine XML-Datei transferieren.
Wie nachstehende Abbildung zeigt, ist dies nicht so schwierig! Jedoch muss man ein wenig überlegen, wie man bei dem Select-Kommandos die erste Zeile überliest.
Als Lösung habe ich hier eine Outer-Variable gewählt, die - wie bei einer Outer-Variablen üblich - außerhalb des LINQ-Statements (bzw. einer Lambda-Expression = anonymen Methode) deklariert und mit 0 initialisert wird (int lineCounter = 0;). Mit einer Where-Klausel wird dann innerhalb des Statements geprüft ob lineCounter++ > 0 ist und schon wird die erste Zeile übersprungen.
Als Lösung habe ich hier eine Outer-Variable gewählt, die - wie bei einer Outer-Variablen üblich - außerhalb des LINQ-Statements (bzw. einer Lambda-Expression = anonymen Methode) deklariert und mit 0 initialisert wird (int lineCounter = 0;). Mit einer Where-Klausel wird dann innerhalb des Statements geprüft ob lineCounter++ > 0 ist und schon wird die erste Zeile übersprungen.
Samstag, Juli 28, 2007
iPhone in meinen Händen
Heute war ich bei Gravis, weil eine Freundin sich ein MacBook kaufen möchte und wie der Zufall so spielt, hatten sie das erste Mal ein iPhone zur Vorführung bereit. Diese Gelegenheit habe ich mir nicht nehmen lassen, da der Laden fast leer war und der freundliche Verkäufer mir das Handy für einen kurzer Test sogar übergab.
Und ich muss schon ehrlich sagen, dass das Handling dieses attraktiven Winzling extrem beeindruckend war.
Wenn dies nicht der Anfang einer neuen, langen Freundschaft war ...
Orcas Beta II
Nur noch kanpp 30 Minuten bis zum Ende des Downloads der Orcas Beta II. Ich habe mich, weil ich z.Z. auch mit dem VS Team System 2005 arbeite für dessen Nachfolger entschieden.
Es wird sicherlich recht interessant herauszufinden, welche Features sich im TS verbessert haben bzw. neu hinzugekommen sind nachdem ich schon viele Schritte mit der Beta 1 von Orcas gemacht habe.
Einen guten Einstieg in die einfache Installation der Beta II von Orcas bietet Scott Hanselman.
Einen guten Einstieg in die einfache Installation der Beta II von Orcas bietet Scott Hanselman.
Labels:
.NET 3.5,
Orcas,
Visual Studio
Donnerstag, Juli 26, 2007
Tool zur Optimierung der Freizeit
Jedem .NET-Programmierer, der seine (Frei-)Zeit gerne auf dem Sofa vorm Fernseher, der Stereoanlage oder Spielkonsole verbringt und für die Qualität der notwendigen Geräte ordentlich investiert hat, empfehle ich das Visual Studio Add-In ReSharper.
Zugegeben dieses Tool ist nicht kostenfrei. Jedoch weit preiswerter als die meiste Unterhaltungselektronik. Und durch den sinnvollen Einsatz dieses Tools kann leicht mehr Zeit für die Freizeit unter dem Strich herausspringen.
LINQ Where mit .NET 2.0
Mit LINQ ist es ab der kommenden Version 3.5 des .NET Frameworks möglich eine einheitliche Abfragesprache für alle IEnumerables zu verwenden. Diese Query Language ähnelt dem bekannten SQL und enthält auch ein Where-Kommando, um aus einer Collection alle die Elemente auszuwählen, die einer Bedingung entsprechen.
Ein solches Where-Kommando ist auch leicht mit Hilfe von Generics und anonymen Methoden (C#) ab .NET 2.0 zu erstellen. Mittels des folgenden Code-Schnipsels wird die Liste customerList mittels einer anonymen Methode auf Elemente überprüft, deren Eigenschaft Surname mit der Zeichenkette „Muster“ beginnt.
IEnumerable<Customer> names =
EnumerableEnhancement.Where(customerList,
delegate(Customer c)
{
return c.Surname.StartsWith("Muster");
});
Die Methode selbst kann wie folgt implementiert werden:
public static IEnumerable<T> Where<T>(IEnumerable<T> items, Predicate<T> predicate)
{
List<T> list = new List<T>();
IEnumerator<T> enumerator = items.GetEnumerator();
while (enumerator.MoveNext())
{
if (predicate(enumerator.Current))
list.Add(enumerator.Current);
}
return list;
}
Der als Parameter verwendete Delegate Predicate<T> ist als delegate bool Predicate<T> (T obj) in System deklariert. Die Implementierung dieses Delegates definiert einen Satz von Kriterien und bestimmt, ob das übergebene Objekt jene Kriterien erfüllt.
Falls die Kriterien erfüllt sind wird das Objekt der Liste, die zurückgegeben wird, hinzugefügt.
Beutzer von VB.NET können dies beinah auch so machen. Jedoch gibt es bei VB.NET keine anonymen Methoden. Aus diesem Grund dürfen VB.NET eine extra Methode implementieren, die der Signatur des Delegates Predicate<T> entspricht.
Ob dies in VB.NET wirklich so sinnvoll ist, bezweifele ich, da mittels einer Anonymer Methoden wie in C# mehr Möglichkeiten zur Verfügung stehen.
IEnumerable<Customer> names =
EnumerableEnhancement.Where(customerList,
delegate(Customer c)
{
return c.Surname.StartsWith("Muster");
});
public static IEnumerable<T> Where<T>(IEnumerable<T> items, Predicate<T> predicate)
{
List<T> list = new List<T>();
IEnumerator<T> enumerator = items.GetEnumerator();
while (enumerator.MoveNext())
{
if (predicate(enumerator.Current))
list.Add(enumerator.Current);
}
return list;
}
Montag, Juni 18, 2007
Architektur mit .NET
Einen guten Überblick und Einstieg in Architektur mit .NET bietet Skycrapr.
Bemerkenswert ist auch das englischsprachige Skyscrapr Archipedia auf der gleichen Site.
Bemerkenswert ist auch das englischsprachige Skyscrapr Archipedia auf der gleichen Site.
Sonntag, Mai 20, 2007
Codeerzeugung zur Laufzeit
Beim letzten TechTalk in Frankfurt mit Dirk Primbs im Mai 2007 gab es auch einige Bespiele für die Codeerzeugung zur Laufzeit. Dieses Thema wurde von Dirk anhand von Beispielen sehr gut vorgestellt, jedoch stieß diese Art der Programmierung bei nicht wenigen Teilnehmern auf Unverständnis. Warum soll man auch Code dynamisch zu Laufzeit erzeugen?
Einen guten Einstieg in dieses wichtige und interessante Thema bietet Ralf Westphal in seinem Artikel Codeerzeugung zur Laufzeit aus dem Objektspektrum.
Na, dann Prost!
Interessanterweise kann man in den Attributen eines Objekts (z.B. einer Person) im Active Directory auch das Lieblingsgetränk speichern.Na, dann Prost!
Freitag, März 16, 2007
Donnerstag, März 15, 2007
Leicht verständliches Beispiel der WPF
Eins der Bespiele der Windows Presentation Foundation, welches wohl jedem leicht verständlich die Leistungskraft dieser Technologie zeigt, ist wohl Color Swatch. Mit dieser sehr einfachen Applikation kann man die Einrichtungeines Badzimmers, also Wände, Fensterrahmen, Badwanne, etc, anhand von Farbvorlagen neu einfärben.
So werden wohl in Zukunft die Kataloge im Internet aussehen.
Montag, Februar 12, 2007
G h o s t D o c
Roland Weigelt's GhostDoc ist ein echt feines Werkzeug, welches sich in VS 2005 einklinkt, um Xml-Dokumentationen´mit weniger Aufwand erstellen zu können.
Von Haus aus unterstützt es eigentlich nur C+#! Man kann dieses Tool jedoch auch für die XML-Dokumenation in Visual Basic.NET verwenden. Dafür ist es jedoch eigentlich (noch) nicht gedacht und man muß aus diesem Grund die Unterstützung für VB.NET extra aktivieren.
Alles in Allem ein großartiges Tool zum Dokumentieren.
Von Haus aus unterstützt es eigentlich nur C+#! Man kann dieses Tool jedoch auch für die XML-Dokumenation in Visual Basic.NET verwenden. Dafür ist es jedoch eigentlich (noch) nicht gedacht und man muß aus diesem Grund die Unterstützung für VB.NET extra aktivieren.
Alles in Allem ein großartiges Tool zum Dokumentieren.
Sonntag, Februar 04, 2007
.NET 3.0 kompakt
Nach dem .NET kompakt von Ralf Westphal von 2001 ist von Ralf in Zusammenarbeit mit Christian Weyer nun .NET 3.0 kompakt erschienen.
Dieses kleine, handlich Meisterwerk ist jedem empfohlen, der kurz, prägnant und leicht verständlich in die Features von C# 2.0, VB 8, WF, WCF, WPF & Co.
Dieses preiswerte Buch macht tatsächlich dort weiter, wo .NET kompakt aufgehört hat.
Dienstag, Januar 02, 2007
Covarianz & Contravarianz
Zum meinem grossen Schrecken mußte ich gerade feststellen, daß VB.NET nicht wie C# Covarianz und Contravarianz in Delegates unterstützt.
In .C# 1.x und immer noch in VB.NET muss aufgrund von Invarianz eine Methode mit der Signatur eines zugehörigen Delegates exakt zusammenpassen. Mit der Version von 2.0 unterstützt C# auch Contravarianz bei Paramtertypen und Covarianz bei Rückgabetypen. Somit kann man Delegates mit Methoden verwenden, deren Parameter in der in der Vererbungshierachie vor den zugehörigen Typen kommen bzw. mit einer Methode dessen Rückgabetyp abgeleitet vom Rückgabetyp des Delegate ist.
Das finde ich gar nicht so lustig, da dann viel mehr Type Casts im VB.NET Code eingefügt werden müssen als in C#-Code.
C# geht da wohl schon viel konsequenter in Version 2.0 des .NET Framework den Weg einer dynamischen Sprache als VB.NET. Und damit hat man mit C# nicht nur in diesem Fall duch schnellere Entwicklung, verbesserte Betriebssicherheit und höhere Ausführungsgeschwindigkeit im Gegensatz zu VB.NET die Nase vorn.
Montag, Januar 01, 2007
WPF in Finance Applications
Seit geraumer Zeit programmiere ich für eine deutsche Investmentbank VSTO-Applikationen mit .NET 2.0, um Entwicklungen von Fonds und deren Produkte in Tabellen und Grafiken darzustellen.
Aufgrund der wenig erquickenden Verwendung von Excel-Objekten in .NET verarbeite ich die entsprechenden Daten aus einer auf einem HP-UX laufenden Oracle-Datenbank in selbsterstellten Komponenten, wobei ich mich nicht nur der objektorientierten Programmierung mit Vererbung und Komposition über Schnittstellen bediene, sondern auch Generics verwende. Das ist wirklich eine gr0ßartige Sache!
Über die Feiertage habe ich mal geprüft, was man für’s Erstellen von solchen Anwendungen aus dem reichhaltigen Paket von .NET 3.0 nutzen kann. Dabei bin ich über die Woodgrove Finance Application gestolpert.
Da kann man wirklich einmal sehen wohin die Reise mit .NET 3.0 und damit wohl auch Office geht. Es ist einfach verblüffend wie eine Web Applikation mit Windows Presentation Foundation dynamisch Daten in einer mehrdimensionalen Grafik darstellen kann. Und das schon heute mit einem frei verfügbaren .NET Framework 3.0.
Samstag, November 11, 2006
Keinen Pinsel zur Hand!
Mittwoch, Oktober 11, 2006
WCF Master Class with Juval Löwy
Nun geht es doch nicht mit der Deutschen Bahn ins Trainingslager nach Bad Ems (s.u.), sondern zur WCF Master Class mit Juval Löwy mit dem Flieger ins Sol Antillas, Magalluf auf dem hoffentlich noch warmen Mallorca.
Dienstag, Oktober 03, 2006
Nominiert
Abonnieren
Posts (Atom)








