Web- und Software Development

UX und UI Guidelines von Microsoft

Written By: Mario Priebe - Okt• 16•11

Ein paar Richtlinien von Microsoft, rund um User Experience und das User Interface.

 

image

 

.. noch mehr UX Guidelines für Windows Application Development findet man im Dev Center von Microsoft.

Google Reader – Send to Google+

Written By: Mario Priebe - Okt• 15•11

Der Google Reader verfügt ja über die Funktion ”Send to”. Diese ermöglicht es einem, den aktuellen Artikel den man gerade liest, auf weiteren Medien zu teilen.

Send to Google+ from Google Reader

So auch für Google+, welches sich übrigens zu meinem Lieblings-Social-Medium entpuppt hat. Dies an der Stelle, aber nur nebenbei bemerkt :)

Um ein Custom “Send to” Link zu erstellen, trägt man in den Google Reader Einstellungen unter Send to > Create Custom Link

Howto Send to G+

folgende Daten ein:

Name:Google+
Url:https://plusone.google.com/_/+1/confirm?url=${url}
Icon-Url:https://ssl.gstatic.com/s2/oz/images/favicon.ico

Das war’s schon. Nun öffnet sich nach einem Klick auf Google+ im Reader, ein neues Fenster in dem man den Artikel “plussen” und mit einem Text versehen in seinem Netzwerk teilen kann.

In einem weiteren Artikel, habe ich noch weitere Verbindungen zu anderen Medien aufgeschrieben.

Und was ich vor Kurzen noch gesehen und interessant fand, der Vladimir von Perun.net erklärt wie man über den Google Reader, einen Artikel an sein Kindle schicken kann. Ausprobiert habe ich das leider noch nicht, ich bekomme aber wenn alles klappt, heute meinen Kindle und ich werde das dann sofort ausprobieren.

Na dann, viel Spaß beim teilen : )

Timeout im RIA-Service ändern

Written By: Mario Priebe - Sep• 26•11

Bei einem WCF-Service ist man es gewohnt, Änderungen wie beispielsweise den Timeout in den Binding-Konfigurationen zu ändern.

Bei einem Silverlight-Projekt hatte ich nun das Problem, dass ich eine Berechnung im Service verwenden wollte, die jedoch mehr als die eingestellten 60Sekunden benötigt. Ein Binding wie man das nun von WCF kennt, ist mit einem RIA-Service erst einmal so nicht möglich.

Um die Timeout-Einstellungen nun trotzdem im RIA-Service anzupassen, muss man etwas Hand anlegen.

Man geht dazu wie folgt vor:

Im Silverlight-Projekt lasse ich mir alle Dateien anzeigen und finde im Order “Generated Code” meine Klasse die mit “Web.g.cs” endet.

image

In dieser, suche ich meinen Kontext den ich verwende und finde auch den dazugehörigen Contract:

image

Nun erstelle ich in meinem Silverlight-Projekt die partielle Klasse mit den selben Namen, wie der in meinem Kontext.

In dieser Klasse implementiere ich dann die Methode OnCreated() und kann meinem ChannelFactory-Endpoint-Binding ein Timeout programmatisch zuweisen:

public partial class TcmdbContext { partial void OnCreated() { ((WebDomainClient<Tcmdb.Web.Services.TcmdbContext.ITcmdbServiceContract>)this.DomainClient) .ChannelFactory.Endpoint.Binding.SendTimeout = new TimeSpan(0, 15, 0); } }

Wichtig dabei ist, dass man sich im selben Namespace wie der der generierte Klasse befindet!

Visual Studio Makro für Shoulda Methoden erstellen

Written By: Mario Priebe - Sep• 13•11

Wenn man Tests mittels sogenannten Shoulda-Methoden (..should_return_a_object_from_type_myobject..) schreibt, kann das Schreiben der Methoden schon recht mühsam mit der Zeit werden.

Idee

Was wäre wenn ich eine Inputbox hätte, die es mir möglich macht, einfach und ohne Unterstriche zu setzen, meine Methode zu beschreiben und der Methodenrumpf nach einem Klick erstellt wird…

Die Idee dazu fand ich dazu bei codekicker, vielen Dank nochmal an dieser Stelle.

Makro erstellen

Um sich die Arbeit zu erleichtern, kann man mittels Makro sich einen Haufen Arbeit und eventuelle Verkrampfungen in den Fingern ersparen.

Um ein Makro zu erstellen ruft man dazu den Makro-Explorer auf, den man unter Tools -> Macros findet.

clip_image001

Dort bekommt man ein Auflistung der bereits gespeicherten Makros. Hier mit einem Rechtsklick auf MyMacros beispielsweise gehen und dann ein neues Modul hinzufügen.

clip_image002

Das Template Modul wählen und das Makro betiteln. Mittels Rechtsklick auf das erstellte Makro dann das Makro editieren.

Hier kann dann das Makro nun programmiert werden. Für unseren Fall implementieren wir folgenden Code:

Imports System Imports EnvDTE Imports EnvDTE80 Imports EnvDTE90 Imports EnvDTE90a Imports EnvDTE100 Imports System.Diagnostics Public Module ShouldaMethodMacro Sub ShouldaMethodMacro() Dim input = InputBox("insert text please").Replace(" ", "_") ActiveDocument.Selection.Text = String.Format("[Test]public void {0}(){1} {{ {1}//arrange{1}{1}//act{1}{1}//assert{1}{1} }}", input, Environment.NewLine) End Sub End Module

(Modulname und Konstruktor muss angepasst werden und speichern nicht vergessen ;)

Tipp: Um jeden Anfangsbuchstaben in dieser Methode groß zu schreiben, verwendet man aus dem Namespace System.Globalization die Methode CultureInfo.CurrentCulture.TextInfo.ToTitleCase:

Dim input As String input = InputBox("insert text please") input = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input).Replace(" ", "_")

Tastenkombination zuweisen

Nun sollten wir das Makro noch eine Tastenkombination zuweisen. Hierfür geht man unter Tools -> Options -> Environment -> Keyboard und suchen im "Show commands containing" Feld nach den Namen unseres Makros.

Im Feld "Press shortcut keys" dann die Tastenkombination wählen. Wenn möglich eine die noch nicht vorhanden ist. Ich wähle hier Ctrl + Shift + Alt + T und weise meinem Command diesen zu.

clip_image003

So, das war es auch schon. Wenn man nun in der Testklasse sein Shortcut ausführt, bekommt man eine Inputbox in der man seine Methode beschreibt.

clip_image004

Mit einem Klick auf OK, wird daraufhin diese Methode erzeugt. Die natürlich jedem freisteht anzupassen (Bitte die firmeninternen Richtlinien beachten ;)

clip_image005

 

Na dann, wie immer viel Spaß beim entwickeln : )