Ich nutze nun schon seit geraumer Zeit das Framework Cinch von Sacha Barber um meine Anwendungen zu entwickeln. Cinch selber macht sich MEFedMVVM zu nutze um die Bindung zwischen View und ViewModel zu erstellen.
Mit dem Framework ist es leicht für die Design Zeit die gebundenen Klassen auszutauschen und das Testen wird durch die Schnitstellen sehr vereinfacht.
Hier die Links:
Donnerstag, 20. Juni 2013
Dienstag, 18. Juni 2013
Command Line Args mit MEFedMVVM
Wie bekommt man eigentlich Command Line Argumente mit MEFedMVVM in sein ViewModel? Die Argumente kommen ja wie üblich in WPF der StartUp Methode der App Klasse mit.
Es gibt zwei Wege:
Es gibt zwei Wege:
- Entweder man nutzt die Argumente der StartUp Methode und weißt diese einem Service des Containers zu.
ICommandLineArgs service = ViewModelRepository.Instance.Resolver.Container.GetExport<ICommandLineArgs>().Value; - Oder man greift ganz einfach auf die Methode System.Environment.GetCommandLineArgs() zu. Das hat den Vorteil, das es nicht nötig ist, in der StartUp Methode die Argumente zuzuweisen.
Nutzt man aber trotzdem einen eigenen Service, der intern die System.Environment.GetCommandLineArgs() nutzt, kann man diesen Service, wie gewohnt, seinem ViewModel übergeben. Für die Tests kann dann ganz einfach ein Test Service geschrieben werden, um die Argumente für die Testfälle vorzugeben.
Sonntag, 16. Juni 2013
Lesen um zu lernen
Jeden Tag schreitet die Entwicklung ein Stückchen vorran. Immer auf dem aktuellen Stand zu sein, ist nicht immer leicht. Clean Code Developer rät deshalb sechs Fachbücher im Jahr zu lesen. Wenn man nun mal überlegt, wie viel Fachbücher kosten, kann das schnell mal ins Geld gehen. Nehmen wir mal an ein Buch kostet 60 Euro und sollen sechs im Jahr lesen. Das wären schon mal 360 Euro im Jahr. Dabei gibt es immer wieder Bücher, bei denen schnell auffällt, dass das Buch für einen selbst nicht geeignet ist. Das heißt man würde sich, um die Anzahl sechs auch wirklich zu lesen, nochmal ein bis zwei Bücher extra kaufen. Und so landet man schnell bei kosten zwischen 400 und 500 Euro im Jahr.
safaribooksonline.com kann die Geldbörse entlasten. Für gut 240 Euro im Jahr, kann man eine viele viele Bücher online und auf mobilen Geräten lesen. Es gibt dort Fachbücher ohne ende und man kann sich zehn Bücher im Monat anschauen. Außerdem ist eine Volltextsuche über alle Bücher möglich, was einem das Suchen bei Problemen extrem vereinfacht.
Für 35 Euro monatlich bekommt man sogar einen komplett Zugang, in dem so viele Bücher gelesen werden können, wie man möchte.
Für die mobilen Geräte gibt es sogar die Möglichkeit die Bücher offline zu lesen!
Reinschauen lohnt sich in jedem Fall. Für 15 Tage kann man kostenfrei alles ausprobieren!
safaribooksonline.com kann die Geldbörse entlasten. Für gut 240 Euro im Jahr, kann man eine viele viele Bücher online und auf mobilen Geräten lesen. Es gibt dort Fachbücher ohne ende und man kann sich zehn Bücher im Monat anschauen. Außerdem ist eine Volltextsuche über alle Bücher möglich, was einem das Suchen bei Problemen extrem vereinfacht.
Für 35 Euro monatlich bekommt man sogar einen komplett Zugang, in dem so viele Bücher gelesen werden können, wie man möchte.
Für die mobilen Geräte gibt es sogar die Möglichkeit die Bücher offline zu lesen!
Reinschauen lohnt sich in jedem Fall. Für 15 Tage kann man kostenfrei alles ausprobieren!
Donnerstag, 13. Juni 2013
Nachtrag zu: Mauszeiger im Sourcecode setzen
Wie ich ja schon beschrieben hatte, ist es möglich den Cursor aus dem Sourcecode heraus zu setzen. Allerdings ist dabei zu beachten, dass dies bedeutet, dass das setzen der Eigenschaft Cursor am WPF Control keine Auswirkung mehr hat. Erst wenn man die Eigenschaft wieder auf null setzt, wird die Cursor Eigenschaft des Controls wieder berücksichtigt.
Dementsprechend sollte mein Beispiel viel eher so aussehen:
private void OnIsBusyChanged(object sender, bool isBusy)
{
if (isBusy)
Mouse.OverrideCursor = Cursors.Wait;
else
Mouse.OverrideCursor = null;
}
So wird die Anwendung, wenn sie in den Busy Modus versetzt wird, den Wait Cursor anzeigen. Ansonsten den Cursor, den das WPF Control vorgibt.
Mittwoch, 12. Juni 2013
TFS for free
Mit dem Team Foundation Server von Microsoft können Projekte geplant und verwaltet werden. Sowohl eine Sourcecode Verwaltung, als auch einen Buildagent bringt er mit sich.
Auf der Seite tfs.visualstudio.com kann man diesen kostenfrei nutzen!
Folgend ein paar Argumente, warum man es einfach mal versuchen sollte:
Auf der Seite tfs.visualstudio.com kann man diesen kostenfrei nutzen!
Folgend ein paar Argumente, warum man es einfach mal versuchen sollte:
- Es können beliebig viele Projekte angelegt werden.
- Bei der Sourcecode Verwaltung kann sogar zwischen der Microsoft eigenen und Git gewählt werden.
- Agile Projektplanung wird vom TFS auch unterstützt.
- Tests können ausgeführt werden.
- Arbeiten in Teams bei der kostenfreien Variante mit bis zu fünf Personen.
Und alles was man braucht, ist eine Windows Live ID. Also ausprobieren lohnt sich!
Dienstag, 11. Juni 2013
Mobile Farbwahl mit dem iPhone
Nachdem ich vor kurzem über den Adobe Service Kuler berichtete, habe ich nun auch eine mobile Version des Services entdeckt. Sobald man die App auf dem iPhone startet, wird die Kamera aktiviert und die Farbwahl beginnt.
Die fünf Farbpunkte sucht sich die App automatisch zusammen. Es ist möglich das aktuelle Bild mit einem Klick zu fixieren und die Farbpunkte beliebig zu verschieben.
Ein Farbschema kann dann gespeichert und wenn gewünscht auch direkt der Community zur Bewertung freigegeben werden.
Folgend der Link zur App:
Die fünf Farbpunkte sucht sich die App automatisch zusammen. Es ist möglich das aktuelle Bild mit einem Klick zu fixieren und die Farbpunkte beliebig zu verschieben.
Ein Farbschema kann dann gespeichert und wenn gewünscht auch direkt der Community zur Bewertung freigegeben werden.
Folgend der Link zur App:
Montag, 10. Juni 2013
Mauszeiger im Sourcecode setzen
Der Cursor kann, nicht nur wie schon beschrieben im XAML gesetzt werden. Er kann auch im Sourcecode, wie zum Beispiel im ViewModel, überschrieben werden.
Als klassisches Beispiel habe ich einen Event-Handler in dem ich schaue, ob die Anwendung Busy ist oder nicht und dementsprechend einen Wait Cursor oder einen Pfeil anzeigt.
Als klassisches Beispiel habe ich einen Event-Handler in dem ich schaue, ob die Anwendung Busy ist oder nicht und dementsprechend einen Wait Cursor oder einen Pfeil anzeigt.
private void OnIsBusyChanged(object sender, bool isBusy)
{
if (isBusy)
Mouse.OverrideCursor = Cursors.Wait;
else
Mouse.OverrideCursor = Cursors.Arrow;
}
Abonnieren
Posts (Atom)
