-
ACHTUNG - NEUES BLOG
Ab sofort steht unter http://devtyr.norberteder.com mein neues Blog zur Verfügung. Dieses Blog wird nicht weiter betreut, bleibt aber erhalten. Neue Eintr%auml;ge erfolgen nur mehr im neuen Blog. Kommentare werden ebenfalls nicht mehr behandelt. Wer weiterhin meinen Einträgen und Aktivitäten folgen möchte, möge bitte RSS-Feeds, Verlinkungen etc. an die neue Location anpassen.
|
Commands aus ListView ausführen
19.09.09 - .NET, WPF Beitrag von Norbert Eder| | Mit Hilfe einer ListView ist es einfach möglich, Daten aus einer Datenquelle darzustellen. Dazu ist lediglich die Eigenschaft View zu definieren. Durch die Angabe von GridViewColumn Elementen und dem dazugehörigen DisplayMemberBindings werden die Daten aus der zugewiesenen Datenquelle auch schon angezeigt.
<ListView ItemsSource="{Binding MyOpenTickets}" BorderThickness="0" Margin="4">
<ListView.View>
<GridView>
<GridViewColumn Header="Id"
DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name"
DisplayMemberBinding={Binding Name}/>
<GridViewColumn Header="Version"
DisplayMemberBinding="{Binding Version.Name}"/>
<GridViewColumn Header="Status"
DisplayMemberBinding="{Binding State}"/>
</GridView>
</ListView.View>
</ListView>
Eine Anforderung ist nun sehr oft, dass die angezeigten Daten in einem Detailfenster geöffnet werden sollen. Dazu muss - idealerweise - ein Command untergebracht werden. Dies kann durch die Angabe eines CellTemplates bewerkstelligt werden.
<ListView ItemsSource="{Binding MyOpenTickets}" BorderThickness="0" Margin="4">
<ListView.View>
<GridView>
<GridViewColumn Header="Id"
DisplayMemberBinding="{Binding Id}"/>
<GridViewColumn Header="Name"
CellTemplate="{StaticResource TicketClickableButton}"/>
<GridViewColumn Header="Version"
DisplayMemberBinding="{Binding Version.Name}"/>
<GridViewColumn Header="Status"
DisplayMemberBinding="{Binding State}"/>
</GridView>
</ListView.View>
</ListView>
In der zweiten GridViewColumn-Definition wird das CellTemplate definiert. Zu beachten ist an dieser Stelle, dass kein DisplayMemberBinding angegeben werden darf. Hier nun das verwendete Template:
<DataTemplate x:Key="TicketClickableButton">
<Button Command="{Binding OpenTicketCommand}"
Content="{Binding Name}"
Style="{StaticResource ProjectLinkButton}" />
</DataTemplate>
Das Template stellt eine einfache Schaltfläche dar, welche an einen Command gebunden ist. Zusätzlich wird an der Schaltfläche das Binding definiert.
Eine mögliche Umsetzung kann so aussehen:

| | | 2 Kommentare
- 2950 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
.NET BlogBook wieder verfügbar
29.08.09 - Blog-Intern, .NET, Grundlagen, Base Framework, WPF, ASP.NET, Silverlight, Internet, Community Beitrag von Norbert Eder| | Wie auch mein Blog waren einige meiner Websites lange Zeit nicht online (bzw. sind es teilweise noch immer). Dies wird sich nun - durch einen Wechsel - wieder ändern.
Den Anfang macht dotnet-blogbook.com. Die Site steht ab sofort wieder zur Verfügung - jedoch noch nicht alle Downloads. Alle BlogBooks bis inklusive Version 3 können herunter geladen werden. Die weiteren Ausgaben werden in den kommenden Tagen hinzugefügt und stehen dann wie gewohnt zur Verfügung.
Gerade zum BlogBook habe ich sehr viele Anfragen bekommen. Das Projekt wird weitergeführt und es wird auch wieder aktualisierte Versionen geben.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Silverlight 3 ist da!
10.07.09 - .NET, Silverlight Beitrag von Norbert Eder
Neuer Artikel: Validierung unter WPF
02.07.09 - .NET, WPF, Silverlight Beitrag von Norbert Eder| | In der aktuellen Ausgabe der Visual Studio One findet sich mein neuester Artikel Validierung unter WPF.
Intuitive Anwendungen weisen den Benutzer auf Fehleingaben hin. Idealerweise geschieht dies direkt in der UI, frühzeitig, ohne lange Wartezeiten. Zusätzlich ist es notwendig, Daten in der Businesslogik auf Korrektheit und Vollständigkeit zu prüfen. Norbert Eder diskutiert die Validierungsmöglichkeiten im Rahmen der Windows Presentation Foundation.
Weitere Informationen finden sich auf der Homepage von Visual Studio One.
| | | Kommentar hinzufügen
| 1 Trackbacks
| Permalink | Trackback-URL |
Glückwunsch zum Microsoft MVP 2009!
01.07.09 - Blog-Intern, .NET, WPF, Silverlight, Internet, Community Beitrag von Norbert Eder| | Herzlichen Glückwunsch! Wir freuen uns, Ihnen den Microsoft® MVP Award 2009 verleihen zu können! Diese Auszeichnung wird an herausragende, führende Mitglieder der technischen Communities verliehen, die ihre wertvollen praktischen Erfahrungen mit anderen Menschen teilen. Wir schätzen Ihren außerordentlich bedeutenden Beitrag in den technischen Communities zum Thema Client App Dev im vergangenen Jahr hoch ein.
Ein Jahr ist rum und auch dieses Mal darf ich mich über die Verleihung des MVP Awards freuen. Dies macht Mut, so weiter zu machen und auch weiterhin mit vollem Elan, Teil dieser wunderbaren Community zu sein. Ein herzliches Dankeschön, ich fühle mich geehrt!
| | | 7 Kommentare
- 1508 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Wie gut sind Bing-Ergebnisse wirklich?
12.06.09 - Internet, Community Beitrag von Norbert Eder| | In den letzten Tagen habe ich total auf Bing gesetzt. Die Ergebnisse sind gefühlt gut. Aber sind sie das auch wirklich? Auf einen einfachen und schnellen Vergleich hat mich das MSDN Austria Team aufmerksam gemacht: http://blindsearch.fejus.com/.
Einfach den gewünschten Suchbegriff eingeben und die Ergebnisse von Bing, Google und Yahoo werden in drei Spalten nebeneinander aufgelistet. Ein direktes Vergleichen wird also leicht gemacht. Der Clou: Im ersten Moment erfährt man nicht, welche Ergebnisse von welcher Suchmaschine geliefert werden. Erst nach der Abgabe eines Tipps (welche Ergebnisse stammen von Bing?) erhält man die Auflösung.
Kleiner Hinweis: Man kann sich durchaus täuschen :)
| | | 1 Kommentar
- 1004 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL |
Artikel: Silverlight wird erwachsen
07.06.09 - .NET, Silverlight Beitrag von Norbert Eder| | In der aktuellen Ausgabe der Visual Studio One befindet sich von mir der Artikel Silverlight wird erwachsen
Eine Flut an neuen Versionen hat sich auf uns ergossen. Darunter finden sich auch neue Beta-Versionen zu Silverlight 3 und Expression Blend 3. Mit diesem Gespann können Sie ultimative Silverlight-Anwendungen entwickeln. Aber wie gut ist Silverlight 3 wirklich? Dieser Artikel stellt die Neuerungen vor und diskutiert einige interessante Aspekte.
Weitere Informationen finden sich auf der Homepage von Visual Studio One.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Viele Beispiele zu Data Binding, MVVM, MVC und mehr
02.06.09 - .NET, Grundlagen, WPF Beitrag von Norbert Eder| | Du suchst WPF-Beispiele zu Data Binding (Datenbindung), MVVM, MVC oder anderen Bereichen? .NET GUI bietet mittlerweile zahlreiche Beispiele zu diesem Thema und es werden mehr. Diese stehen als vollständige Solutions zum Download bereit: .NET GUI Downloads.
Zu den meisten Beispielen finden sich auch dazupassende Artikel, die Hintergrundwissen vermitteln.
Diese Liste wird laufend um neue Beispiele und Artikel erweitert und stellt mittlerweile einen guten Anlaufpunkt dar.
| | | Kommentar hinzufügen
| 0 Trackbacks
| Permalink | Trackback-URL |
Gezippt unter .NET
26.05.09 - .NET, Base Framework, Internet, Community, Tools, 3rd Party Tools Beitrag von Norbert Eder| | Zippen unter .NET ist gar nicht so einfach. Zwar gibt es unterschiedliche 3rd-Party-Libraries, die eingebunden werden können, aber dann hat es sich auch schon wieder. Das .NET Framework bietet zwar den DeflateStream an, aber auch das ist nicht so wirklich das Wahre, da man damit doch sehr eingeschränkt ist.
Microsoft hat dies erkannt und die Library DotNetZip auf CodePlex zur Verfügung gestellt, die hier eine wesentliche Verbesserung bringt.
Hier ein Auszug aus der Beschreibung:
DotNetZip works on PCs with the full .NET Framework, and also runs on mobile devices that use the .NET Compact Framework. Create and read zip files in VB, C#, or any .NET language, or any scripting environment. DotNetZip supports these scenarios:
- an ASP.NET app that dynamically creates ZIP files and allows a browser to download them
- a Windows Service that periodically zips up a directory for backup and archival purposes
- a WPF program that modifyies an existing archive - renaming entries, removing entries from an archive, or adding new entries to an archive
- a Windows Forms app that creates AES-encrypted zip archives for privacy of archived content.
- An administrative script in PowerShell or VBScript that performs backup and archival.
- a WCF service that receives a zip file as an attachment, and dynamically unpacks the zip to a stream for analysis
- creating zip files from stream content, saving to a stream, extracting to a stream, reading from a stream
- creation of self-extracting archives.
Ein Blick auf diese Library lohnt sich auf jeden Fall für diejenigen, die mit ZIPs zu tun haben.
Ebenfalls wichtig: Die Library ist kostenlos.
| | | 3 Kommentare
- 1318 mal angesehen
| 2 Trackbacks
| Permalink | Trackback-URL |
Effizienz durch Kreativität und Intuition steigern
22.05.09 - Entwicklung, Diskussionen, Qualitätsmgmt. Beitrag von Norbert Eder| | Das Gehirn besteht bekanntlich aus zwei Hälften. Der logisch und der kreativ geprägten. Der logische Part ist zuständig für Logik, Analyse, Sprache, Regeln usw. Die rechte Gehirnhälfte ist verantwortlich für unsere Phantasie, Kreativität, Gefühl, Formen und unsere Intuition. Als Softwareentwickler ist man geneigt, hauptsächlich den logischen Part des Gehirns zu nutzen. Klar, beschäftigen wir uns hauptsächlich mit der Analyse von Problemen, wollen wir doch Lösungswege finden und diese klar strukturiert umzusetzen.
Wie oft passiert es aber, dass wir vor einem Problem sitzen, dieses immer und immer wieder durchgehen und analysieren, ohne jedoch eine wirkliche Lösung zu finden. Diese trudelt dann bei einer niedrigen Tätigkeit ein, beispielsweise beim Ausräumen des Geschirrspülers, beim Staubsaugen, beim Laufen, Spazieren oder Wandern. Wie kommt es dazu?
Fangen wir bei der inneren Stimme an. Diese Stimme (und hoffentlich ist es nur eine) brabbelt ständig vor sich hin und spiegelt unsere logische Welt (also die linke Gehirnhälfte) wider. Sie erzählt uns, was wir bewusst wissen. Alles was in unserem Gehirn indiziert wurde und in Worten auszudrücken ist. Während dieser Zeit ist unsere rechte Gehirnhälfte blockiert. Kreativität kann sich nicht entfalten, unterbewusste Ereignisse, Ideen etc. können nicht aufgearbeitet werden. Sobald wir uns aber um niedrige Tätigkeiten kümmern, die schnell zu Langeweile führen, schaltet unser logischer Part ab. Die innere Stimme reißt ab und aktiviert dadurch unser kreativ geprägtes Wesen. Dieses kann nun Dinge, die uns beschäftigen, im Hintergrund aufarbeiten, was schlussendlich irgendwann zu einem Ergebnis führt. Und schwupp, wir haben eine Idee, einen Lösungsansatz. Eventuell können wir nicht nachvollziehen, woher diese kommt, oder wie wir darauf gekommen sind, aber wir können damit arbeiten.
Was möchte ich damit sagen? In vereinfachten Worten: Wir Softwareentwickler sind sehr logisch ausgeprägt. Alles muss seine Ordnung, seinen Ablauf und seine Regeln haben. Viele Entscheidungen werden jedoch intuitiv getroffen (wie war das mit Entscheidungen aus dem Bauch fällen?). Dazu wird die kreative Gehirnhälfte gebraucht, die von uns jedoch nicht ausreichend trainiert wird. Durch eine verbesserte Verkopplung beider Gehirnhälften können beide „Seiten“ benutzt werden. Das führt zu mehr Kreativität, zu höherer Leistung, zum schnelleren Erfassen des Kontextes, in dem wir uns bewegen, oder aber unser Problem.
Dies kann man trainieren. Durch einfachste Mittel. Schreiben ist eines davon. Viele schreiben Blogs. Das ist durchaus ein erster Schritt, kreativ zu werden und seine rechte Gehirnhälfte mit einzubeziehen. Um dies bewusst zu fördern bieten sich jedoch so genannte Morgenseiten an. Diese werden vorwiegend den Autoren unter uns bekannt sein. Zu den Morgenseiten muss ich etwas ausholen:
Während wir schlafen, existiert unsere innere Stimme nicht. Diese Welt gehört der kreativen Seite. Das spiegelt sich in unserem Träumen wider. In unseren Träumen sehen wir Bilder, eventuell ganze „Filme“. Diese entspringen nicht nur unserer Phantasie, sondern es werden auch Erlebnisse, Ereignisse, Fragestellungen und Probleme unterbewusst aufgearbeitet. An manches können wir uns nach dem Aufstehen erinnern, an manches nicht. Aber immer kann es uns weiterhelfen, wenn auch manches nicht wörtlich beschrieben werden kann. Wer kennt das Gefühl, in der Früh aufzustehen und eine Lösung zu haben?
Werden wir munter, schalten wir nicht sofort vollständig in den Logikmodus. Es bedarf einer bestimmten Zeit, die rechte Gehirnhälfte zu verlassen. Dies ist genau der richtige Zeitpunkt, um sich mit seinen Morgenseiten zu beschäftigen. Einfach ein paar Zettel und einen Stift zur Hand nehmen und einfach drauflos schreiben. Dabei ist es nicht wichtig, WAS man schreibt, sondern, dass man es tut. Anfangs weiß man nicht, was man schreiben soll, dann schreibt man eben das nieder. Aber es wird immer besser und schlussendlich werden äußerst hilfreiche Notizen zu Papier gebracht, die in vielen Situationen entscheidend sein können. Wichtig ist, nicht nur zwei Zeilen zu schreiben. Idealerweise schreibt man bis zu drei Seiten. Das hört sich nach viel an, ist es aber nicht. Außerdem sollten diese Seiten VOR ALLEM anderen geschrieben werden, sollte also die erste Aufgabe des Tages sein. Noch vor dem Kaffee, der Dusche oder dem Frühstück.
Wer dieses Vorgehen über einen Zeitraum von einigen Wochen probiert, wird außerordentliche Fortschritte erleben. Versprochen.
By the way: Immer den Kontext beachten!
| | | 3 Kommentare
- 1315 mal angesehen
| 0 Trackbacks
| Permalink | Trackback-URL | Zurück Weiter
|
|
|
|
|
|
|