Archive for März, 2008

XML-Serialisierung von Objekten mit Hilfe von WCF-Klassen

Mittwoch, März 26th, 2008

Wer schon einmal vor der Aufgabe stand, den Zustand seiner Objekt in eine XML Datei zu serialisieren weiß das .NET hierfür den Namespace System.Xml.Serialization und im speziellen die Klasse XmlSerializer vorsieht. Jeder der diese Klasse zum Serialisieren oder Deserialisieren schon benutzt hat wird festgestellt haben das nur öffentliche Member der zu serialisierenden Objekte in die XML Datei geschrieben werden. Alle anderen Member werden leider nicht berücksichtigt. Um diese nun doch noch serialisieren zu können, kann man public Properties einführen. Dies ist aber oftmals nicht erwünscht, da andere Klassen diese Member erst gar nicht kennen sollen geschweige denn darauf zugreifen dürfen.

Für dieses Problem liefert WCF (ab dem .NET Framework 3.0) nun Abhilfe. Der Schlüssel zum Ziel hierfür ist die Klasse DataContractSerializer im Namespace System.Runtime.Serialization. Primär dient diese Klasse zur Serialisierung/Deserialisierung von Objekten die mittels WCF z.B. über das Netzwerk verschickt oder empfangen werden. Man kann die Klasse aber auch hervorragend zur Serialisierung seiner eigenen Objekte verwenden und sehr einfach XML-Code aus seinen Objekten erzeugen.

(weiterlesen…)

ODBC unter 64Bit Systemen

Donnerstag, März 20th, 2008

Gestern bin ich auf ein Problem mit ODBC-Treibern unter 64Bit Systemen wie z.B. Windows 2003 Server oder Windows Vista gestoßen. Dabei sollte eine .NET Anwendung die bisher auf allen 32Bit Systemen problemlos lief auf einem 64Bit Windows 2003 Server installiert und betrieben werden. Das Starten der Anwendung war auch problemlos möglich nur beim Verbinden mit der Datenbank konnte meine Anwendung den ODBC-Treiber bzw. den zugehörigen DSN nicht finden.

Nach aufwendiger Suche hat sich als erstes gezeigt das unter 64 Bit Systemen ODBC nicht gleich ODBC ist. Dies liegt daran das es zwei Arten von ODBC Treibern gibt, 32Bit und 64Bit ODBC Treiber. Viele Systeme liefern bisher aber noch ausschließlich die 32Bit Treiber aus und installieren diese auch. Wenn man nun unter dem Menüpunkt Systemsteuerung->Verwaltung->Datenquellen die Einträge für den System-DSN, User-DSN oder den zugehörigen ODBC Treiber sucht wird man nichts finden. Hier werden lediglich die DSN’s und Treiber angezeigt die 64Bit tauglich sind.

(weiterlesen…)

Pappala XBAP

Montag, März 17th, 2008

In letzter Zeit ist Silverlight das große Schlagwort wenn es um neue Webtechnologien im Hause Microsoft geht. Mit der kommenden Version 2.0 werden erstmals viele nützliche Features aus dem .NET Framework in die stark abgespekte Laufzeitumgebung von Silverlight übernommen. Unter den Neuerungen befinden sich Technologien wie LINQ oder die Unterstützung von WS*-Diensten. Das Microsoft auch intern auf Silverlight umstellt kann man z.B. an der Beta der nächsten Download Center Version sehen. Die andere Seite der Medaille gibt es aber auch, so zeigt Rob Eisenberg in seinem Post das in Silverlight noch nicht alles Gold ist was glänzt. Ein Beispiel ist die fehlende 3D-Unterstützung oder Hardwarebeschleunigung.

Eine Alternative stellt hier meiner Meinung nach XBAP (XAML Browser Application) dar. XBAP ist keine neue Technologie sondern schon seit beginn von WPF verfügbar. Es ermöglicht WPF Anwendungen im Browser ausführen zu können. Ein Beispiel findet sich hier.

(weiterlesen…)

Position des Maus-Cursors unter WPF setzen

Mittwoch, März 12th, 2008

Heute bin ich auf das Problem gestoßen die Position des Cursors zu verändern, das bedeutet ich wollte meinen Cursor in der Mitte meines Canvas platzieren. Projektbedingt musste eine WPF Lösung her da ich kein WinForms einsetze. Nach einiger Recherche habe ich herausgefunden das es bisher keine richtige Möglichkeit gibt dies unter WPF zu tun. Dennoch gibt es dafür zwei alternative Lösungsansätze:

(weiterlesen…)

Initial revision

Dienstag, März 11th, 2008

Mit diesem Beitrag eröffne ich meinen Blog: .NET worker rund um das Thema .NET. In Zukunft veröffentliche ich auf dieser Seite Tips und Tricks zu Technologien und und Tools der verschiedenen Frameworks. Dabei versuche ich sowohl die Entwickler und Architekten, wie auch die Anwender ansprechen zu können.

Für jegliche Art von Kommentaren bin ich stets offen, nur so kann ich erfahren was die Leser interessiert oder bewegt. Den Schluss des ersten Beitrags möchte ich mit meinem Lieblingszitat machen:

 

"Ich weiß nicht, ob es besser werden wird, wenn es anders werden wird:
aber soviel ist  gewiss, dass es anders werden muss, wenn es gut werden soll."

Lichtenberg