Rainer Hilmer - dotnet-forum.de Knowledge Base http://dotnet-forum.de/KnowledgeBase/writers/Rainer%20Hilmer.aspx VB-Magazin KnowledgeCenter - http://www.vb-magazin.de de-de VB-Magazin KnowledgeCenter Reactive Extensions und Windows Forms Controls <link rel="stylesheet" type="text/css" href="dokustyle.css" /><style type="text/css"> .style1 { font-size: small; font-family: tahoma; } </style> <h2>Control Invokation mit Rx</h2> <p>Revision 2 dieses Artikels. Alle Kommentare die vor dem 16.10.2010 geschrieben wurden, sind obsolet. <br />Änderungen:</p> <ul> <li>Eine Version nach Anregungen von Mike Bild wurde hinzugefügt. </li> <li>Meine ursprüngliche Version wurde überarbeitet. </li> </ul> <hr /> <p>Ich habe mich verliebt. Sie heißt “<a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx" target="_blank" temp_href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx">Reactive Extensions</a>” oder kurz Rx und stammt aus den Microsoft DevLabs. <br / ... c8ca61d1-d0ff-4f00-a44a-76d814ee283e:352 7 Sat, 09 Oct 2010 12:41:33 GMT http://dotnet-forum.de/KnowledgeBase/articles/2010/10/09/352-reactive-extensions-und-windows-forms-controls.aspx Rainer Hilmer http://dotnet-forum.de/KnowledgeBase/articles/2010/10/09/352-reactive-extensions-und-windows-forms-controls.aspx Controls aus einem anderen Thread setzen (SynchronizationContext, CancellationToken, Bonus: Tooltips) <p>Version 2 vom 7.9.2010 <br />Änderungen:</p> <ul> <li>Die Übergabe der Daten an die Controls findet jetzt in der Form1-Klasse statt (SRP). </li> <li>Eine Referenz der Form1-Klasse wird <u>nicht mehr</u> an die Workerklasse übergeben –&gt; geringere Kopplung und Wegfall der Referenzproperties für die involvierten Controls. </li> <li>Das Messaging zwischen den Klassen wird über Events abgewickelt. </li> <li>Extra Methoden für das Handling des SynchronizationContext wurden entfernt und durch Lambdas ersetzt –&gt; schlankerer Code. </li> </ul> <p>Dieser KB-Artikel befasst sich mit der Frage, <em>“wie behandelt man Windows-Forms Controls aus einem anderen Thread heraus”</em>.</p> <p>Jeder Entwickler hat wohl schon folgende Exception gesehen: </p> <p><font color="#ff0000" si ... c8ca61d1-d0ff-4f00-a44a-76d814ee283e:350 0 Sun, 29 Aug 2010 12:14:20 GMT http://dotnet-forum.de/KnowledgeBase/articles/2010/08/29/350-controls-aus-einem-anderen-thread-setzen-synchronizationcontext-cancellationtoken-bonus-tooltips-.aspx Rainer Hilmer http://dotnet-forum.de/KnowledgeBase/articles/2010/08/29/350-controls-aus-einem-anderen-thread-setzen-synchronizationcontext-cancellationtoken-bonus-tooltips-.aspx Tutorials Cliententwicklung Mocks und Stubs im Einsatz (TDD Part 2) <link rel="stylesheet" type="text/css" href="DokuStyle.css" /><style type="text/css"> a:link, .commonsidebararea a:link { color: #2488f9; } a { font-family: tahoma,arial,helvetica; text-decoration: none; color: #2388f7; /*background:url(../images/ExternalLink.gif) center right no-repeat;padding-right:13px;*/ } .style1 { color: #008000; } .style2 { font-family: consolas; font-size: small; background-color: white; font-weight: bold; } </style> <h2>2. Mocks</h2> <h3>2.1 Das Problem</h3> <p>In <a href="http:/ ... c8ca61d1-d0ff-4f00-a44a-76d814ee283e:349 0 Fri, 06 Aug 2010 14:32:47 GMT http://dotnet-forum.de/KnowledgeBase/articles/2010/08/06/349-mocks-und-stubs-im-einsatz-tdd-part-2-.aspx Rainer Hilmer http://dotnet-forum.de/KnowledgeBase/articles/2010/08/06/349-mocks-und-stubs-im-einsatz-tdd-part-2-.aspx Tutorials IT Professional Das kleine 1x1 des Test Driven Development (TDD Part 1) <link rel="stylesheet" type="text/css" href="DokuStyle.css" /><style type="text/css"> a:link, .commonsidebararea a:link { color: #2488f9; } a { font-family: tahoma,arial,helvetica; text-decoration: none; color: #2388f7; /*background:url(../images/ExternalLink.gif) center right no-repeat;padding-right:13px;*/ } .style1 { color: #ff0000; } .style2 { color: #008000; } </style> <h2>Vorwort</h2> <p>Artikel zu diesem Thema gibt es wohl fast so viele wie Sand am Meer, ja ganze Bücher wurden schon darüber geschrieben. Warum also noch ein Artikel? Eine anschauliche Einführ ... c8ca61d1-d0ff-4f00-a44a-76d814ee283e:348 0 Fri, 30 Jul 2010 22:12:12 GMT http://dotnet-forum.de/KnowledgeBase/articles/2010/07/30/348-das-kleine-1x1-des-test-driven-development-tdd-part-1-.aspx Rainer Hilmer http://dotnet-forum.de/KnowledgeBase/articles/2010/07/30/348-das-kleine-1x1-des-test-driven-development-tdd-part-1-.aspx Tutorials IT Professional Windows Forms Controls-Generierung zur Laufzeit <p>oder: Wie man sich Arbeit erspart, wenn man viele Buttons braucht.</p> <p>Eines der Mitglieder des Forums fragte ob es möglich sei, viele Buttons automatisch erstellen zu lassen. <br />Der Trick dabei ist, dass man Controls (hier Buttons) erst zur Laufzeit erzeugt. </p> <p>Eine weitere Anforderung war: Wenn man einen Rechtsklick auf einen der Buttons macht, soll dieser verschwinden. <br />Die Generierung von Controls ist schon die halbe Miete, aber natürlich muss man mit ihnen auch interagieren können. Dazu werden die Controls zentral registriert. <br />Wie das alles geht, zeigt dieser Artikel.</p> <p>Alles was sie für das folgende Tutorial benötigen, ist ein TableLayoutPanel. Das ziehen sie in den Forms-Designer. Legen sie jetzt noch die Anzahl der Columns und Rows auf jew ... c8ca61d1-d0ff-4f00-a44a-76d814ee283e:347 0 Wed, 28 Jul 2010 21:27:56 GMT http://dotnet-forum.de/KnowledgeBase/articles/2010/07/28/347-windows-forms-controls-generierung-zur-laufzeit.aspx Rainer Hilmer http://dotnet-forum.de/KnowledgeBase/articles/2010/07/28/347-windows-forms-controls-generierung-zur-laufzeit.aspx Tutorials Cliententwicklung ToolBox Items fehlen und es gibt eine ToolBox-Kategorie &quot;#13119&quot; <P>Ich mußte das jetzt zum zweiten mal erleben und darum schreibe ich hier jetzt mal die Lösung für das Problem! <BR>Die Ursache für den Fehler ist ein zerstörter Toolbox-Cache. Diesen findet man hier (gilt für Windows XP!)</P> <P><IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=256 alt=ToolBox-Cache src="/uploads/Cyron/WindowsLiveWriter/ToolBoxItemsfehlenundesgibteineToolBoxKa_C2D2/ToolBox-Cache_3.png" width=586 border=0> </P> <P>Falls das Bild nicht erscheint, hier noch einmal der Pfad:</P> <P>C:\Dokumente und Einstellungen\BENUTZERKONTONAME\Lokale Einstellungen\Anwendungsdaten\Microsoft\VisualStudio\9.0</P> <P>Das gilt für Visual Studio 2008. Wer VS2005 benutzt, ersetzt 9.0 durch 8.0.</P> <P>Man sieht vier versteckte Dateien, die alle mit ... c8ca61d1-d0ff-4f00-a44a-76d814ee283e:325 1 Sat, 18 Oct 2008 14:11:19 GMT http://dotnet-forum.de/KnowledgeBase/articles/2008/10/18/325-toolbox-items-fehlen-und-es-gibt-eine-toolbox-kategorie-quot-13119-quot-.aspx Rainer Hilmer http://dotnet-forum.de/KnowledgeBase/articles/2008/10/18/325-toolbox-items-fehlen-und-es-gibt-eine-toolbox-kategorie-quot-13119-quot-.aspx IT Professional Extension Methods (C#3 Spracherweiterung) am Beispiel eines Value Limiters <h3>Was sind Extension Methods?</h3> <p>Mit C# 3 hat Microsoft die Möglichkeit geschaffen, Klassen, Structs und Typen (ist im Prinzip das Gleiche) in anderen Assemblies nachträglich in der Funktionalität zu erweitern. <br />Extensions sind einfach zu schreiben. Man muss dafür nur eine handvoll Regeln beachten.</p> <ul> <li>Alle Extension Methods müssen in einer (oder auch mehreren) <strong>statischen Klasse</strong>(n) stehen (static keyword).</li> <li>Diese Klasse darf <strong>public</strong> oder <strong>internal</strong> sein.</li> <li>Die Extension Methods selber müssen ebenfalls <strong>statisch</strong> sein.</li> <li>Der <strong>erste Parameter</strong> einer Extension Method muss der <strong>Typ</strong> sein, <strong>der erweitert werden soll</strong>. Dieser Parame ... c8ca61d1-d0ff-4f00-a44a-76d814ee283e:305 3 Tue, 01 Jul 2008 15:08:58 GMT http://dotnet-forum.de/KnowledgeBase/articles/2008/07/01/305-extension-methods-c-3-spracherweiterung-am-beispiel-eines-value-limiters.aspx Rainer Hilmer http://dotnet-forum.de/KnowledgeBase/articles/2008/07/01/305-extension-methods-c-3-spracherweiterung-am-beispiel-eines-value-limiters.aspx Sprachspezifisch C#