Contents tagged with .NET
-
Computer Books to Read on a Lonely Island
I recently had the pleasure to visit this place:
On an island of approx 300x200 meters, snorkeling, swimming, eating, sleeping and relaxing is pretty much all you do. And reading, lots of reading:
Two [computer] books that passed my personal “good to read far away from the keyboard” test are:
- “Clean Code: A Handbook of Agile Software Craftsmanship”
Robert C. Martin
I had this on my bookshelf for quite some time, but never did more than quickly scan the chapters. When you talk to people who have read this book, they usually say “you will not agree on everything the book says, but it is an important book to read” – now I’m one of them.
I won’t go into more detail here; the reviews on e.g. Amazon pretty much capture what this book is about, so I recommend you take a look there.
- “Pro Silverlight 3 in C#”
Matthew MacDonald
Unlike “Clean Code”, this may not a book that would come to one’s mind as something that could be read well away from the computer – after all, it’s dealing with a specific technology and not general concepts.
But this book does the walkthrough through the various code samples so well that you don’t need Visual Studio to follow what’s going on. I never had the feeling “Wait, where does this thing come from? If I only could hit F12” (which was what happened to me with one of the early books on WPF).
- “Clean Code: A Handbook of Agile Software Craftsmanship”
-
Bonn: Vortrag über “Dynamic Languages” aus erster Hand
Sehr kurzfristig hat sich die Gelegenheit ergeben, Harry Pierson, Program Manager bei Microsoft im IronPython Team, für einen Vortrag nach Bonn zu holen – da sagt man natürlich nicht Nein, wenn man die Chance hat.
Am 17.11.2009 um 19:00 (Einlass ab 18:30) wird Harry über dynamische Sprachen im Microsoft .NET Umfeld sprechen:
As you may know, Microsoft is developing IronPython and IronRuby, .NET implementations of the popular open-source programming languages Python and Ruby. While it's clear that Microsoft wants to attract existing Python and Ruby developers to .NET, the role of IronPython and IronRuby for existing .NET developers is less clear. What value is there for a .NET developer in learning IronPython? What are the tradeoffs between IronRuby and a more traditional .NET language like Microsoft Visual C# or Visual Basic? Harry Pierson, new PM for IronPython, discusses where dynamic languages fit in the.NET developer's toolbox.
Veranstaltungsort sind die Räume der Comma Soft AG, nur wenige Minuten von der A59 Ausfahrt Pützchen entfernt (Anfahrtsbeschreibung). Dort finden auch regelmäßig die Treffen der Bonner .NET User Group “Bonn-to-Code.Net” statt, das nächste übrigens bereits eine Woche später.
-
.NET Open Space 2009 in Leipzig – Ich war dabei!
Es ist eine Sache, ob man von anderen Leuten erzählt bekommt, dass ein bestimmtes Konzept funktioniert. Es ist eine ganz andere Sache, wenn man es tatsächlich erlebt.
So geschehen beim .NET Open Space 2009 in Leipzig an diesem Wochenende. Ich hatte zwar die Berichte über den Erfolg der letztjährigen Veranstaltung im Hinterkopf, eine gewisse Skepsis konnte ich mir trotzdem nicht verkneifen, wie denn ein “Open Space” in der Praxis aussehen würde.
Würde es funktionieren, wenn ein Haufen Entwickler morgens zusammensteht, sich auf die Sessions des Tages einigt und dann einfach loslegt? Nach dem Wochenende lautet die Antwort ganz klar: JA!
Ein kleiner, aber feiner Punkt dabei war, dass die Vorschläge für Sessions nicht unbedingt in der Form “Ich beschäftige mich mit Thema X, darüber könnte ich etwas erzählen” sein mussten – erlaubt waren auch Themenwünsche. So entstammten im Endeffekt nicht wenige Vorschläge der Frage “Wie geht Ihr eigentlich mit dem Thema Y um?”. Die Diskussionen waren insgesamt sehr interessant und selbst wenn man irgendwo am Anfang dachte “ok, das gibt nichts mehr”, ergaben sich plötzlich wertvolle Gespräche.
Ich selbst hatte zwei Themen (auch eher als Frage) vorgeschlagen:
- WPF/Silverlight GUIs für Business-Anwendungen
Das Thema dümpelte mit durchaus interessanten, aber recht allgemeinen Betrachtungen vor sich hin, bis plötzlich Lothar Grieb und ein Kollege ein Notebook mit einer Silverlight Business-Anwendung aus der Tasche zog, die im Laufe des Wochenendes durch eine ganze Reihe Details noch mehrfach für offene Münder sorgte.
- WPF/Silverlight Performance
Mit einer Reihe erfahrener WPF/Silverlight besetzt, war dies die Session bei der ich am meisten gerlernt habe. Der Arbeitsbereich User Interfaces und User Experience enthält eine Zusammenstellung von Links zum Thema.
Die zwei Tage waren im Nu vorbei; was mir aufgefallen ist, dass innerhalb der jeweils einstündigen Sessions gar nicht die übliche “Konferenzmüdigkeit” zwischen Minute 30 und 50 eintrat, dafür war man viel zu involviert.
Ich bin jedenfalls jetzt vom Konzept endgültig überzeugt. Und die Umsetzung (Veranstaltungort, Orga, Essen, Drumherum) war einfach Klasse, herzlichen Dank dafür an Torsten Weber, Alexander Groß, Stefan Lieser und Marcel Hoyer sowie weitere fleißige Helfer im Hintergrund.
Wenn es sich zeitlich einrichten lässt, bin ich nächstes Jahr wieder dabei!
- WPF/Silverlight GUIs für Business-Anwendungen
-
How to avoid flicker when resuming video playback inside MediaElement
I just fought with some noticeable flicker during the first few frames when resuming a paused video inside a WPF MediaElement. It turned out that setting the ScrubbingEnabled property to “True” fixed the problem.
(Posted just in case somebody else is searching the web for the same problem)
-
.NET Open Space 2009 in Leipzig – Ich bin dabei!
Am 17./18.10.2009 findet in Leipzig der .NET Open Space 2009 statt. Dabei handelt es sich um eine “Unkonferenz”, also eine Veranstaltung, bei der es keine feste Rollenaufteilung Sprecher / Zuhörer wie bei traditionellen Entwicklerkonferenzen gibt.
Kann so etwas funktionieren? Die positiven Erfahrungen des ersten .NET Open Space 2008 in Leipzig und des Ablegers .NET Open Space Süd 2009 in Ulm zeigen eindeutig: Ja!
Anmeldung und weitere Infos auf http://netopenspace.de/
Nachdem es letztes Jahr bei mir nicht geklappt hat, werde ich dieses Jahr auch in Leipzig sein und mich dort wohl viel im Arbeitsbereich User Interfaces und User Experience herumtreiben.
-
Sprecher für WPF/Silverlight Konferenz in Köln gesucht
Die .NET User Groups Bonn (Bonn-to-Code.Net) und Köln (.net user group Köln) veranstalten am 15. Mai 2009 in Köln in den Räumen der neuen Microsoft-Niederlassung ein gemeinsames Community Event zu den Themen WPF und Silverlight – die dotnet Cologne 2009.
Das Ziel ist, den Teilnehmern (ca. 150-200) zum Selbstkostenpreis einen ganzen Tag mit praxisnahen Vorträgen (verteilt auf zwei Tracks) inkl. Verpflegung und einer abschließender Verlosung von Sachpreisen zu bieten.
Dafür suchen wir noch Sprecher, die dem Publikum zeigen, dass WPF und Silverlight mehr sind als nette Spielereien. Die zeigen, wie aus technischen Features konkreter Mehrwert in echten Anwendungen in richtigen Projekten wird.
Bis zum 8. März 2009 läuft der "Call for Papers", bei dem Vorschläge für Vorträge bei der dotnet Cologne 2009 eingereicht werden. Die Länge einer Session (Vortrag plus Fragen) beträgt 60 Minuten.
Bitte schickt Eure Vorschläge mit
- Titel des Vortrags
- Abstract
- Kurzbiographie
- E-Mail Adresse
- optional: Website/Blog
an orga [at] dotnet-cologne.de.
Die Veranstaltung ist als Event von der Community für die Community so kalkuliert, dass wir leider keine Honorare für Sprecher zahlen können, allerdings übernehmen wir gerne für Sprecher mit einer etwas weiteren Anreise (und ggf. Übernachtung) die Reisekosten bis zu einer Höhe von 200,- Euro.
-
Behavior Driven Design in Bonn
The .NET User Group "Bonn-to-Code.Net" of Bonn, Germany is happy to welcome Jean-Paul Boodhoo on September 29th for a talk about Behavior Driven Design. The talk starts at 19:00 and will be in English, admission is free (as all of our user group meetings). Information about the location is available here and here (Google Maps in English).
An Introduction To BDD
For years many of us in the TDD crowd have been repeating the statement "Tests are documentation". How many of us can truly say that is the case.
In this session we are going to take a look at how to transform stories and translate them down into human readable code that truly can live as "business documentation". We will also take a look at simple organizational tools that will enable us to generate natural language reports from the tests that we are writing. Tests that can be read and validated by developers and domain experts themselves.
-
1st Place for EventFilter!
The winners of the programming contest over at the German website www.dotnet-snippets.de have been announced – my entry EventFilter was chosen by a jury from almost 100 entries to be the winner.
EventFilter is a generic helper class for dealing with events that may be raised multiple times in rapid succession, when only the last event of a “burst” is of interest.
You find the English version in this blog post I published recently.
-
GhostDoc 2.1.3 Released
<summary>
GhostDoc is a free add-in for Visual Studio that automatically generates XML
documentation comments for C#. Either by using existing documentation inherited
from base classes or implemented interfaces, or by deducing comments from
name and type of e.g. methods, properties or parameters.
</summary>Quick Facts
- Version 2.1.3 is a minor bugfix release, fixing problem with documentation for specific operators and import/export of partial configurations.
- Download on the GhostDoc Website
- Users of earlier versions: Please read the ReadMe on upgrading!
What’s New in GhostDoc 2.1.3:
- Fixed: No documentation was generated for the operators "&", "<" and ">".
- Fixed: Rules for classes, events, interfaces and structs were not shown in the export dialog, making it impossible to exclude them from an export.
- Changed: Tags for empty rule collections in config files are now removed (cosmetic change, does not break compatibility of the file format).
- Added: Some "of the" triggers and prefixes, "no the" words and acronyms.
Note that VB.Net support is turned off by default and has to be turned on in the configuration dialog.
-
EventFilter Helper Class
EventFilter is a generic helper class for dealing with events that may be raised multiple times in rapid succession, when only the last event of a “burst” is of interest.
Introduction
Imagine a Windows Forms program mimicking the GUI of the Windows Explorer, where selecting a folder in the tree view on the left side will update the list of files on the right. A "quick'n dirty" implementation would handle the
SelectedNodeChanged
event of theTreeView
control to update the file list, but a robust implementation that works nicely with slow media like CD/DVD or network drives should use a different approach.When playing around with an actual instance of Windows Explorer and watching it more closely, you'll quickly notice that the file list is not updated immediately, but after a slight delay. You can use the keyboard in the tree view to move quickly from folder to folder, skipping folders you are not interested in. Only after you stay on a folder for a little while, the file list gets updated.
This approach of "wait until things have settled down a bit and then handle the last occurrence of an event" is pretty common in GUI development. The typical implementation uses a timer that is reset each time a new event is raised within a certain time interval, until the timer is finally allowed to elapse. Only at that time the event will actually be handled.
During development of a small hobby project called RemoteCanvas I got tired of taking care of timers, helper variables and event handlers over and over again, so I finally wrote a helper class acting as a "filter" for events.
Usage
- Declare a member variable to hold an instance of the
EventFilter
class, with an event argument type matching that of the event to be filtered:private EventFilter<EventArgs> _filter
= new EventFilter<EventArgs>();. - Hook up the
HandleOriginalEvent
method to the original event of the control. There's no great design time support for this, so you have to do that manually, e.g.myControl.SelectedIndexChanged += _filter.HandleOriginalEvent;
- Connect the
FilteredEventRaised
event to your event handler:_filter.FilteredEventRaised += MyHandler;
- That's it!
Download
The source code for the helper class (plus a small demo project for Visual Studio 2005) can be downloaded here.
- Declare a member variable to hold an instance of the