Zum Inhalt springen

Just about .Net

It's just a blog about .Net…

Archiv

Kategorie: Tutorials

Mein Vortrag bei der DNUG Dresden ist jetzt schon 2 Wochen her, man wie die Zeit verfliegt. Schuldig geblieben bin ich seit dem aber immer noch die gezeigten Materialien und weiterführende Links. Das will ich an dieser Stelle wenigstens halbwegs nachholen und all Denen, die nicht da waren zumindest einen Weg zur Erkenntnis weisen :)
Continue reading “Specflow zum Selber-Spielen - Quellen zum Vortrag bei der DNUG DD” »

Aktuell baue ich den größten Teil meiner Arbeitszeit ViewModels und Controls für unseren UI-Designer. Dabei bin ich zwischenzeitlich über eine Anforderung gestolpert die wohl auch an viele andere Anwendungen gestellt wird. So sollen bei uns Suchen über eine spezielle Textbox erledigt werden, die auch einen Button beinhaltet mit dem man die Suche auslösen oder das Textfeld leeren kann. Dieses Verhalten kennt man zum Beispiel von der Suche bei Firefox.

Nun ist genau dieser Fall wunderbar geeignet um sich mit Custom-Controls in WPF auseinander zu setzen. Nur wie geht man da vor? Was muss man beachten und warum überhaupt die Entscheidung für ein Custom- und nicht für ein User-Control?

All die Fragen und noch viel mehr beantwortet David Owens in seinem Blogpost. Dieses sehr ausführlich und gut geschrieben und bietet das Ergebnis sogar als herunter ladbaren Quellcode.

Schritt für Schritt kann man damit jede Entscheidung nachvollziehen, also perfekt um die Entwicklung von Custom-Controls mal live zu erleben. Auf der anderen Seite ist das Post aber nicht für WPF-Anfänger geeignet, was schon darin begründet liegt, dass Custom-Controls ein gutes Vorwissen zu Dingen wie Styles, Trigger usw. benötigen.

Wie bereits hier auf der Seite angekündigt, war ich letzten Donnerstag bei der Dotnetusergroup in Dresden und habe einen Vortrag über Moq gehalten. Für mich selbst war dieser Abend sehr lehrreich. Immerhin hatte ich zuvor noch keine Präsentation vor einem solchen Publikum gehalten. Dazu kam, dass ich dem Irrglauben aufgesessen war, dass Unit-Testing tatsächlich für Viele Teil des Arbeitsalltags sei, dem ist aber nicht so und damit habe ich dem Vortrag wohl insgesamt zu viel vorausgesetzt.
Continue reading “Vortrag über MOQ vom 17.02.2011” »

Einen Großteil der letzten Jahre habe ich mit dem Erstellen von Reportinglösungen und demnach mit dem „Zeichnen“ von Diagrammen zugebracht. Mal wollte man die Geschwindigkeit eines Fahrzeugs live mitschneiden, mal die produzierten Endprodukte einer Fertigung in Qualitätsklassen eingeteilt sehen. Immer hat es mich genervt, dass ich selbst bei den kleinsten Aufgabenstellungen auf externe Tools wie ZedGraph (LGPL), TeeChart (rein kommerziell) o.ä. zurückgreifen musste, da das Framework keine eigene Bibliothek mitbrachte und somit zumindest eine gewisse Gefahr von Lizenzkonflikten bzw. zusätzlichen Kosten entstanden.

2008 hat sich dies zumindest ansatzweise geändert, da Microsoft MSChart bzw. die Microsoft Chart Controls für .Net Framework 3.5 veröffentlichte. Ein kleiner Nachteil an dieser Stelle war immer noch, dass man es quasi mit einem extra Paket zu tun hatte, denn um integraler Bestandteil von .Net 3.5 zu sein kam es „etwas“ spät. Jetzt mit .Net 4.0 ist dies aber Geschichte und alles wird gut, oder etwa nicht?
Continue reading “How-To: Charts und Diagramme mit MSChart – die Grundlagen” »

Das .NET Framework ist umfangreich und dank seiner mittlerweile 4 (bzw. 5) Versionen auch etwas unübersichtlich geworden. Vor allem wenn es um Schlüsselworte geht kann der geneigte Nutzer schon einmal den Überblick verlieren. Aus diesem Grund habe ich mir heute drei heraus gepickt die im Umgang mit generischen Datentypen verwendet werden. Zugegebenermaßen ist dies zum Teil absolutes Grundlagenwissen, dennoch werden zumindest zwei der drei in diesem Zusammenhang gern übersehen. Continue reading “How To: Generische Datentypen für (etwas) Fortgeschrittene” »

Ich habe mich schon eine ganze Weile gefragt warum Microsoft Extension Methods eingeführt hat. Diese sind zusammen mit LINQ ins Spiel gekommen und werden in VS durch einen kleinen blauen Pfeil beim Intellisense hervorgehoben. Besonders häufig trifft man sie, eben dank LINQ, bei Collections an.
Continue reading “Extension Methods - Sinn oder Unsinn?” »

Im letzten Post wurden die Grundlagen der Windows Services geklärt. Nun ist es notwendig unser Beispiel zu erweitern, denn was bringt uns ein Service der Daten aufzeichnet, sie aber nicht weitergeben kann? Das Ziel ist also klar: Wir wollen die gemessene Zeit! Continue reading “How To: Kommunikation mit Windows Services über IpcChannel” »

In der jungen Geschichte dieses Blogs haben wir schon jetzt eine Premiere: den ersten Wunschartikel. Ich wurde darum gebeten zu schildern wie man Windows Services programmieren und vor allem wie man mit diesen aus einer Applikation heraus kommunizieren kann. Als Beispiel dafür werden wir im ersten Teil einen Dienst schreiben der nichts anderes macht als uns die aktuelle Zeit zu ermitteln. Im zweiten Teil geht es dann um die Kommunikation mit einer Applikation und den dort notwendigen Datenaustausch. Der dritte Teil beschäftigt sich dann mit den gleichen Themen aber unter dem Gesichtspunkt der WCF (Windows Communication Foundation).

Was sind Windows Services und wie erstellt man sie

Bevor wir loslegen eine kurze Erläuterung was Dienste/Services eigentlich sind. Ein Dienst ist ein spezielles Programm ohne Benutzerschnittstelle welches dauerhaft im Hintergrund des Betriebssystems läuft.

Dies bedeutet:

  • Der Service wird gestartet noch bevor der Nutzer sich angemeldet hat
  • läuft demnach auch ohne angemeldeten Nutzer
  • kann nur mit bestimmten Rechten installiert oder beendet werden
  • kann keine direkten Benutzereingaben verarbeiten
  • und stellt besondere Anforderungen an die Fehlerbehandlung, sowie das Debugging. Continue reading “How To: Erstellen und Steuern von Windows Services” »

In meiner Diplomarbeit hatte ich ein einfaches Pluginframework umgesetzt welches per Reflection eine Assembly nach einem bestimmten Interface durchsucht, um dann die entsprechende Klasse mit Hilfe des Activators zu instantiieren. Nachteil an dieser sehr geläufigen Lösung ist vor allem, der zunehmende Speicherverbrauch da die geladenen Plugins nicht entladen werden können. Denn ist eine Assembly einer Application Domain einmal hinzugefügt wird man diese zur Laufzeit nicht mehr los.
Continue reading “Link: C# Plugins mit AppDomains realisieren” »

Nach dem ich über Verschlüsselung und Hashing geschrieben habe, kommen wir zum Signieren von Daten. Dies dient vor allem dazu zu überprüfen ob Daten verändert wurden und ist zum Beispiel beim E-Mailverkehr notwendig. Da dort auf dem Weg vom Sender zum Empfänger Daten leicht verändert werden oder sich jemand anderes für einen mir bekannten Adressaten ausgeben könnte.

Continue reading “How To: Datensignierung mit .NET” »