code it

Martins Tech Blog

VirtualBox und VERR_SVM_IN_USE

Vor einigen Monaten bin ich zu VirtualBox als Virtualisierungsumgebung gewechselt. Heute nun wollte ich eine virtuelle Maschine starten und wurde begrüßt mit einer schönen Fehlermeldung:

VirtualBox schien sich also mit irgend einer anderen Virtualisierungssoftware um Ressourcen zu streiten. Da ich mir sicher war, dass keine andere Software dieser Art lief, machte ich mich auf die Suche nach anderen laufenden Prozessen. 

Nach einigem Probieren wurde ich dann auch fündig: VirtualBox und der Windows Phone 7 Emulator können nicht zur gleichen Zeit auf einem Host laufen - und irgendwie ist der Emulator ja auch eine Art der Virtualisierung.

.NET Open Space 2010 Leipzig

Vom 16. Oktober bis zum 17. Oktober 2010 wird erneut der .NET Open Space in Leipzig stattfinden. Bereits im letzten Jahr war diese Veranstaltung sehr erfolgreich und zählte mehr als 150 Teilnehmer. Seit gestern ist die Anmeldung möglich und auch für dieses Jahr haben sich bereits in kürzester Zeit über 130 Teilnehmer angemeldet. Ein Open Space hat als wesentlichstes Merkmal, dass es keine feste Agenda gibt. Die Inhalte der einzelnen Sessions ergeben sich weitestgehend spontan und durch die Teilnehmer getriggert - einzig als Rahmen ist der große Themengebiet Entwicklung mit .NET vorgegeben. Ebensowenig gibt es eine Rollenaufteilung in Sprecher und Zuhörer. Unabhängig von der Ausbildung, dem bisherigen Lebenslauf oder der aktuellen Position soll eine offene Diskussion gefördert werden. Die Teilnehmer gestalten ihr Programm somit vollkommen selbst. Und so ist ein Erfahrungsaustausch verschiedensten Bereichen vorprogrammiert.

Die Teilnahme am .NET Open Space ist kostenlos. Mehr Informationen und die Anmeldung sind unter http://netopenspace.de/2010 zu finden. Zeit: 16.10.2010, 8 Uhr bis 17.10.2010, 19 Uhr Ort: Commundo Tagungshotel Leipzig, Zschochersche Straße 69, 04229 Leipzig

Auch ich werde mit dabei sein und freue mich auf spannende Diskussionen.

Einladung zum Treffen der .NET Usergroup Dresden am 29.09.2010

Das nächste Treffen der .NET Usergroup Dresden findet am 29.09.2010 bei der T-Systems MMS statt. Beginn ist wie immer 18:00 Uhr. Peter Fleischerwird eine kurze Einführung zum Thema MVVM-Pattern (Model-View-ViewModel) geben. Dies gibt uns auch die Gelegenheit, in eine Diskussion über Best Practices, Erfahrungen und Meinungen zu diesem Pattern einzusteigen. Detailliert geht es um:
  • Probleme bei der Erstellung einer Anwendung mit Bedienoberfläche
  • Entwurfsmuster
  • Elemente des MVVM
  • Grundprinzipien (Bindung von Eigenschaften, Commands, Ereignisse)
  • MVVM in WPF
  • MVVM in Silverlight
  • MVVM in Winforms
Um eine grobe Teilnehmerzahl zwecks Raumplanung zu haben, bitten wir euch, im Xing-Event einzutragen, ob ihr dabei sein wollt. Nach dem Treffen ist jeder gern eingeladen, zum Stammtisch zu mitzukommen und in geselliger Runde über .NET oder jedes andere Thema zu plauschen.

back to basics: Generische XML-Serialisierung

Im heutigen btb-Post soll es um das Thema XML-Serialisierung gehen. Häufig sieht man im Alltag oder in Foren die Frage, wie ein Objekt in einen String serialisiert werden kann - z.B. um diese Daten dann in einem Datenspeicher abzulegen.

Im Grunde ist der Vorgang recht einfach: Man erzeugt einen XMLSerializer des zu (de-)serialisierenden Objekts und ruft dessen Serialize- bzw. Deserialize-Methode auf. Wenn man sich noch nie mit der Problemstellung beschäftigt hat, stellt sich dann aber die Frage, welche Parameter man der Methode übergibt, da hier String als Parametertyp nicht existiert. Verwendet man diese Methode häufiger, so ist es zudem noch nervig, am Ende der Deserialisierung den Cast zum Ziel-Typ zu machen.

Um die Sache zu vereinfachen kann man sich mit Hilfe von Generics recht einfach zwei Methoden schreiben, die diesen Task übernehmen.

static string SerializeObject<T>(T objectToSerialize)
{
  XmlSerializer serializer = new XmlSerializer(typeof(T));
  using (StringWriter writer = new StringWriter())
  {
      serializer.Serialize(writer, objectToSerialize);
      return writer.ToString();
  }
}

static T DeserializeObject<T>(string serializedData)
{
  XmlSerializer serializer = new XmlSerializer(typeof(T));
  using (StringReader reader = new StringReader(serializedData))
  {
      return (T)serializer.Deserialize(reader);
  }
}

Der Aufruf ist dann recht einfach:

Employee employee1 = new Employee { Name = "André Meyer" };
string serializedEmployee = SerializeObject(employee1);
Employee employee2 = DeserializeObject<Employee>(serializedEmployee);

Einen kleinen interessanten Nebeneffekt hat diese Art noch, wenn es auch nicht die beste Art ist, dieses Ziel zu erreichen: Durch die Serialisierung und Deserialisierung ist eine 1:1-Kopie des ursprünglichen Objekts entstanden.

Wer lesen kann...

Wer lesen kann ist klar im Vorteil. Hinter diesem Spruch steckt immer wieder etwas Wahrheit. Das hat sich auch heute mal wieder gezeigt.

Für das Prüfen vom Verhalten von Websites in den verschiedenen Versionen von Internet Explorer bietet Microsoft Virtual PC Images an. So weit so gut. Ein Problem ergibt sich dann, wenn der Kennwortschutz greift und der Rechner geperrt ist, denn dann muss man das Kennwort des Benutzers IETest kennen. Und wenn man Microsoft kennt, dann ist es meist irgend eine Mutation des Wortes "password" - aber auch da gibt es noch mehrere Möglichkeiten.

Manchmal ist es einfacher als gedacht denn die Lösung findet sich in der mit ausgelieferten readme.txt - aber wer liest schon die readme.txt. Daher hier der Tipp für alle Nicht-ReadMe-Leser. Das Kennwort der aktuell gültigen Images ist: P2ssw0rd