.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv Oktober 2011

WP-Tipp #041 – Notizen mit OneNote

31.10.2011 10:00:00 | Gordon Breuer

Es kommt immer wieder mal vor, dass wir uns schnell etwas notieren oder eine Sprachnotiz aufnehmen möchten. Meistens brauchen wir diese Information dann nicht nur unterwegs, sondern vor allem später wenn man am Schreibtisch sitzt. Leider findet man im Windows Phone auf den ersten Blick weder eine App "Notizen", noch einen "Audiorekorder", wie es noch bei Windows Mobile der Fall war. Beide Funktionen - und noch viel mehr - sind aber dennoch vorhanden, nur ein wenig versteckter! Schauen wir uns im heutigen Tipp des Tages an, wie OneNote auf dem Windows Phone das klassische Notizbuch ablöst!

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Software Legende Juval Löwy am 8. Dezember in Koblenz

29.10.2011 23:11:56 | Andre Kraemer

Am 8. Dezember hat unsere User Group in Koblenz mit Juval Löwy nach Tony Lombardo den zweiten internationalen Sprecher zu Gast.

Juval wird bei uns seinen Vortrag “The Architect” halten, der für alle Software Architekten sowie Entwickler interessant ist.

Da wir dieses Mal die Kapazitäten ein wenig besser planen müssen, bitten wir um eine formlose, kurze Anmeldung unter dnug@konzeptum.de.

Das Treffen wird dieses Mal übrigens nicht bei Konzeptum, sondern ausnahmsweise bei der Görlitz AG statt finden.

Weite Details zum Treffen gibt es auf der Homepage der DNUG-Koblenz. Eine Anfahrtsbeschreibung zu Görlitz findet ihr hier.

HTTP Fehler 401 beim hinzufügen eines Custom WebParts

29.10.2011 23:11:56 | Andre Kraemer

Gestern überraschte mich Sharepoint mit einem mir zunächst vollkommen unverständlichen Verhalten.

Ich versuchte zu einer Seite ein WebPart hinzuzufügen, welches ich kurz davor entwickelt hatte. Jedoch kam jedes Mal nachdem ich das Webpart auswählte ein Dialog der mich zur Eingabe von Benutzernamen und Passwort aufforderte. Meine korrekt eingegebenen Benutzerdaten akzeptierte der Dialog nicht. Der Klick auf “Abbrechen” führte schließlich zu einer Standard HTTP 401 Unauthorized Seite.

Weder im Event-Log, noch in den Sharepoint-Logs konnte ich Informationen zur Fehlerursache finden.

Also folgte einige Zeit der Ratlosigkeit und des Fluchens ehe ich mehr zufällig auf die Lösung kam:

Ursache des Problems war eine fehlerhaft von mir implementierte Property meines Webparts. Diese sah ungefähr wie folgt aus:

private string pfad
public string Pfad
{
   get
   {
      return Pfad.EndsWith("/")?Pfad:string.Concat(Pfad,"/");
   }
   set
   {
      pfad = value;
   }
}

Wie man sieht habe ich einen kleinen, aber entscheidenden Fehler innerhalb des Getters. Anstatt mein Feld mit dem Namen pfad zurück zu geben, gebe ich innerhalb des Getters der Eigenschaft Pfad die Eigenschaft Pfad zurück. Somit ruft diese Eigenschaft sich so lange selber auf, bis eine StackOverflowException auftritt.

Diese StackOverflowException führte dazu, dass der Workerprozess meiner Sharepoint Web Applikation recycled wurde. Somit waren meine zuvor eingegebenen Credentials ungültig und der IIS fragte mich erneut nach den korrekten Zugangsdaten.

Nachdem ich den Getter entsprechend korrigiert hatte, lies sich das Webpart problemlos einfügen.

private string pfad
public string Pfad
{
   get
   {
      return pfad.EndsWith("/")?pfad:string.Concat(pfad,"/");
   }
   set
   {
      pfad = value;
   }
}

Du kommst hier nicht rein!

29.10.2011 23:11:56 | Andre Kraemer

Nutzer des IE 6 sehen sie im Internet immer häufiger: mehr oder weniger diskrete Hinweise, dass der genutzte Browser veraltet wäre und man doch bitte die aktuelle Version einspielen, oder aber einen alternativen Browser einsetzen solle.

Gegen solche Hinweise habe ich nichts einzuwenden. Schließlich ist der IE 6 nun wirklich kein aktueller Browser mehr und aufgrund seiner vielen bekannten Fehler bei der Darstellung von standardkonformen (X)HTML / CSS ist es für den Webdesigner nur unter großem Aufwand möglich, einen Internetauftritt so zu gestallten, dass er sowohl in standardkonformen Browsern und im IE 6 vernünftig aussieht. Außerdem sollte man auch die zum Teil recht eigenwillige Implementierung des DOMs und von JavaScript nicht vergessen, die den IE 6 auch für JavaScript Entwickler schnell zum Alptraum werden lassen.

Türsteher

Heute kam mir jedoch eine sehr restriktive Variante des bekannten “Rette deine Seele und nutze einen moderneren Browser” Hinweises unter: Und zwar wollte ich kurz einen Eintrag auf Jan Welkers Blog lesen, der meine Aufmerksamkeit erregt hatte. (Anmerkung: Ich schätze Jan wirklich sehr! Dieser Beitrag soll sich nicht persönlich gegen ihn richten!) Nach dem Öffnen des Beitrags im Browser bekam ich jedoch nicht die gewünschte Information zugesicht, sondern wurde automatisch auf eine Seite weitergeleitet, die mir freundlich erklärte, dass man meinen Browser nicht möge und ich doch bitte mit einem neueren oder anderen Browser wieder kommen soll. Ab diesem Augenblick war ich also ausgesperrt. Ausgesperrt, weil der Rechner an dem ich saß (es war nicht mein Rechner) von der dortigen IT Abteilung nur den IE 6 installiert bekommen hatte.

Nun wusste ich also endlich, wie sich meine Freunde vor 15 Jahren gefühlt haben müssen, als der Türsteher vor der Disco sagte “Du kommst hier nicht rein! Deine Klamotten gefallen mir nicht!”. Tja, damals lachte ich noch über die Jungs, die die Kleidung noch morgens von ihrer Mutter herausgelegt bekamen und mit diesem Outfit dann halt nicht in die Disco kamen. Heute war ich es jedoch, der im wahrsten Sinne des Wortes dumm aus der Wäsche guckte.

Gegenwind

Etwas missmutig über das gerade geschehene wechselte ich auf Twitter – wo ich im Übrigen nur einen Hinweis “your browser is outdated” erhielt – und fragte Jan, oder die Idee mit dem Aussperren wirklich für so gut hält.

Leider bekam ich bis jetzt noch keine Antwort Jan, dafür aber von anderen bekannten Gesicherten der Community, die zu meiner Verwunderung Jans Strategie vollstens unterstützten und zum Teil sogar das gleiche taten.

Grob zusammengefasst lauteten die Argumente:

  • Wenn mehr große Webseiten genauso agieren würden, wäre der IE 6 endlich weg
  • Der Aufwand für ein IE 6 konformes Layout ist im Vergleich zum Nutzen viel zu groß

Beide Argumente kann ich sehr gut nachvollziehen – und um eines ganz klar zu stellen: Ich bin kein Fan des IE 6. Auch mich hat er, wie wahrscheinlich die meisten Webentwickler bereits viel Zeit, Nerven und Haare (nein, Haare nicht: die waren schon vor dem IE 6 weg ;-) gekostet.

Wie denn sonst?

Trotzdem halte ich wenig vom aktiven Aussperren von interessierten Nutzern (m)einer Website. Für weitaus besser und vor allem anwenderfreundlicher halte ich es in den meisten Fällen, im Falle des IE 6 einen Hinweis einzublenden, dass der genutzte Browser nicht aktuell ist, was dazu führen könnte, dass sowohl Darstellungs-, als auch Funktionsfehler auftreten.

Über diesen Weg habe ich niemanden den Zugriff auf die von mir bereitgestellten Informationen verwehrt und Nutzer veralteter Browser trotzdem über mögliche Fehler auf der Seite, welche durch ihn verschuldet sind, informiert.

Wenn ich nämlich kurz überlege, warum jemand noch den IE 6 einsetzen könnte, dann fallen mir folgende Gründe ein:

  1. Geringe Computerkenntnisse: Der IE 6 war vorinstalliert und der Anwender ist sich entweder nicht bewusst, dass er updaten sollte, oder aber traut sich dies nicht zu.
  2. Falsche Informationen: Ein befreundeter “Computerspezialist” hat dem (laienhaften) Anwender erzählt, dass der IE 6 der schnellste Browser sei, weil er schon so alt ist und deshalb auf moderner Hardware besonders schnell läuft.
  3. Faulheit: Der Anwender weiss zwar, dass der IE 6 fehlerhaft ist, hat ihn aber aus dem selben Grund noch installiert, aus dem er auch keine regelmäßigen Backups macht und keinen bzw. keinen aktuellen Virenscanner hat.
  4. Gewohnheit: Der Anwender nutzt den IE 6 bereits seit Jahren, kommt gut mit ihm zurecht und will deshalb gar nicht updaten.
  5. Abhängigkeiten von alten, aber wichtigen Intranet Anwendungen: Der Anwender würde gerne updaten, kann es aber nicht, weil seine geschäftskritische Intranetanwendung nur vernünftig unter dem IE 6 läuft (ja, das soll es auch geben ;-)).
  6. Die IT-Abteilung: Der Anwender würde gerne upgraden, hat gar keine Rechte dies zu tun. Die IT-Abteilung hingegen weigert sich gegen das Update, weil sie dann vielleicht eine Liste unzähliger Intranetanwendungen auf Kompatibilität testen und den neueren IE direkt auf unmengen von Clients ausrollen müsste.

Wenn ich nun auf diese Liste Blicke frage ich mich, welche Kategorie ich wirklich von meinem Internetangebot ausschließen möchte. Drei und Vier wären vielleicht geeignete Kandidaten, der ganze Rest jedoch eigentlich nicht. Und selbst bei drei und vier frage ich mich, ob man hier nicht doch die Freiheit gewähren sollte mit einem Browser der Wahl zu arbeiten.

Wenn das Ergebnis dann anschließend nicht vernünftig aussieht: Selber schuld!

Mein Appell

Mein Aufruf an die Betreiber von Webangeboten lautet daher: Schließt keine interessierten Anwender aus! Informiert lieber dezent, dass der Browser und somit das Ergebnis nicht optimal ist, aber lasst IE 6 User nicht draußen warten!

Denn wenn wir tief in uns gehen und uns ehrlich fragen, ob durch das Aussperren des IE 6

  • die Welt besser wird?
  • das Web besser wird?
  • Der IE 6 schneller aussterben wird

dann müssen wir, oder zumindest ich diese Fragen wohl mit nein beantworten. Dies ist übrigens die gleiche Antwort, die man wahrscheinlich auf die Frage:

  • Wird der User den ich eben wegen seines Browsers ausgesperrt habe jemals wieder kommen?

In diesem Sinne: http://saveie6.com/ ;-)

Natürlich lasse ich mich aber auch gerne vom Gegenteil überzeugen. Sprich: Eure Meinung zu diesem Thema interessiert mich sehr.

Die ASP.NET ObjectDataSource und abhängige Business Objekte

29.10.2011 23:11:56 | Andre Kraemer

Ja, ich gebe es offen und ehrlich zu! Ich habe sie noch nie wirklich genutzt, die ASP.NET WebForms ObjectDataSource. Irgendwie hatte ich ein Unbehagen bei der Vorstellung mir das alles bloß zusammen zu klicken und habe daher bisher einen Bogen um die ObjectDataSource gemacht. Außerdem habe ich bisher auch noch niemanden getroffen, der ernsthaft in Erwägung gezogen hätte die ObjectDataSource zu nutzen - oder sich zumindest getraut hätte, dies zuzugeben ;-)

Kürzlich war es dann aber soweit. meine Für eine kleine Demo startete ich damit, die serverseitige ASP.NET MVC Implementierung meiner Beispielanwendung für meinen jQuery Vortrag auf der dotnet Colgone nach Webforms zu konvertieren. Mein Ziel war es dabei, wo immer es nur geht, den WebForms "Baukasten" zu nehmen. Da ich bereits einen bestehenden Business Service hatte, der mir meine Objekte laden und persistieren konnte, kreuzte sie nun also meinen Weg, die ObjectDataSource.

Nach ein paar Klicks durch den Wizzard und einem beherztem F5 bestätigte sich vorerst mein initiales Vorurteil: "Totaler Mist!".

Mein Business Service hatte nämlich eine Abhängigkeit auf eine weitere Klasse, die für die  Datenhaltung zuständig war. Diese Abhängigkeit fand sich in meinem Quellcode in Form eines Konstruktor Parameters wieder. In meiner ASP.NET MVC Implementierung war der DI Container StructureMap für das Auflöösen dieser Abhängigkeit zuständig.

Die WebForms Variante brach die Ausführung des Codes nun allerdings mit einer Exception ab und wies mich in freundlichem Gelb darauf hin, dass mein Business Objekt keinen parameterlosen Konstruktor hätte.

In der Hoffnung, eine Factory für mein Business Objekt angeben zu können durchsuchte ich also die Eigenschaften der ObjectDataSource. Leider wurde ich nicht fündig, fluchte ein wenig darüber, dass meine Anforderung doch gar nicht so ungewöhnlich wäre und beendete Visual Studio frustriert.

Glücklicherweise guckte ich ein wenig später doch noch mal nach einer Lösung. So kann zwar keine Eigenschaft für eine Factory angegeben werden, stattdessen wird jedoch ein Ereignis zur Verfügung gestellt, in dem ich das entsprechende Business Objekt erstellen und meiner ObjectDataSource zuweisen kann.

Konkret sieht dies wie folgt aus:

protected void AufgabenDataSource_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
   AufgabenService service = ObjectFactory.GetInstance<AufgabenService>
   e.ObjectInstance = service;
}

Nun habe ich über die ObjectFactory zwar einen direkten Verweis innerhalb meiner CodeBehind Datei auf den genutzten DI Container (in meinem Fall StructureMap), dies ist mir aber immer noch lieber, als die Abhängigkeit zur Persistenzschicht in meinem Business Service hart zu verdrahten.

Und die Moral von der Geschicht ...

... lautet: Erst ausprobieren und dann (gegebenenfalls) meckern ;-)

Deutsche Texte in Infragistics NetAdvantage 10.2

29.10.2011 23:11:56 | Andre Kraemer

Wie Craig Shoemaker bereits in seinem Blog geschrieben hat, werden die Infragistics NetAdvantage Controls für Silverlight und WPF ab der Version 10.2 auch mit Deutschen Oberflächentexten ausgeliefert. In diesem Beitrag möchte ich die Notwendigen Schritte noch einmal im Schnelldurchlauf in deutscher Sprache am Beispiel von Silverlight erläutern.

Initiales Setup

Mein Silverlightprojekt besteht aus einer einzigen Seite, in der ein XamGrid definiert wurde:

<UserControl x:Class="NAGermanLocalization1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400" xmlns:ig="http://schemas.infragistics.com/xaml">

    <Grid x:Name="LayoutRoot" Background="White">
        <ig:XamGrid HorizontalAlignment="Left" Name="xamGrid1" VerticalAlignment="Top"  AutoGenerateColumns="false"  >
            <ig:XamGrid.FilteringSettings>
                <ig:FilteringSettings AllowFiltering="FilterMenu" />
            </ig:XamGrid.FilteringSettings>
            <ig:XamGrid.GroupBySettings>
                <ig:GroupBySettings AllowGroupByArea="Top" />
            </ig:XamGrid.GroupBySettings>
            <ig:XamGrid.Columns>
                <ig:TextColumn Key="Id" />
                <ig:TextColumn Key="Name"/>
                <ig:TextColumn Key="Vorname"/>
                <ig:TextColumn Key="Land" />
            </ig:XamGrid.Columns>
        </ig:XamGrid>
    </Grid>
</UserControl>

Für das Grid habe ich wie der vorherige Codeausschnitt zeigt Filtern und Gruppieren aktiviert.

Meine Codebehind Datei sieht ähnlich schmal aus:

using System.Collections.Generic;
using System.Windows.Controls;

namespace NAGermanLocalization1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            InitGrid();
        }

        private void InitGrid()
        {
 	        List<Kunde> kunden = new List<Kunde>();
            for (int i = 0; i<10; i++)
            {
                Kunde kunde = new Kunde{Id = i, Name = string.Format("Name {0}", i), Vorname = string.Format("Vorname {0}", i), Land = "DE"};
                kunden.Add(kunde);
            }
            xamGrid1.ItemsSource = kunden;
        }
    }

    public class Kunde
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string Vorname { get; set; }
        public string Land { get; set; }
    }
}

An der Oberfläche schaut das ganze nun wie folgt aus:

GridVorher

DialogVorher

Und einmal auf Deutsch bitte ...

Um das ganze nun zu lokalisieren, sind lediglich zwei Schritte erforderlich.

Zunächst muss das Silverlight Projekt entladen und anschließend im Textmodus editiert werden:

unloadproject editproject

Der vorhandene leere Tag SupportedCultures muss mit dem Wert de versehen werden.

supportedcultures

Anschließend muss die Projektdatei gespeichert und erneut geladen werden. Als letzter Schritt muss dann innerhalb der Webseite, die das Silverlight Control hostet noch die Zeile <param name="uiculture" value="de" /> innerhalb des Object Tags eingefügt werden:

uiculture

Wenn nun nichts schief gegangen ist, sollten die Oberflächentexte nun auf Deutsch erscheinen:

GridNachher

DialogNachher

Fazit

Lokalisierte Oberflächen werden mit Infragistics NetAdvantage 10.2 zum Kinderspiel, da das umständliche Setzen der Oberflächentexte über die runtime resource-string customization in Zukunft entfällt.

Hattrick!

29.10.2011 23:11:56 | Andre Kraemer

Passend zur Fußball WM konnte ich einen virtuellen Hattrick landen. Kürzlich ist nämlich mein dritter Artikel in Folge auf der deutschen ASP.NET Site http://www.asp.net/de veröffentlicht worden. Cool :-)

aspnet_de

Nachdem ich die Artikel des Tages nun also "gestürmt" habe, frage ich mich nur noch, wie ich mein Blog in den Feed links bekomme ...

Mein jQuery Vortrag auf der dotnet Cologne

29.10.2011 23:11:56 | Andre Kraemer

Das Beispielprojekt meines jQuery Vortrags während der dotnet Cologne kann ab sofort hier herunter geladen werden.

Es handelt sich dabei um ein kleines ASP.NET MVC 2 Projekt, in dem folgendes genutzt wurde:

  • ASP.NET MVC 2 ;-)
  • StructureMap als IOC Container
  • SQLite als leichtgewichtige In-Memory-DB
  • NHibernate für den Datenbankzugriff
  • jQuery für den Wow-Faktor ;-)

Die Solution liegt passend zur Veranstaltung im VS 2010 Format vor. Bei Bedarf kann ich aber auch eine VS 2008 Solution bereit stellen.

Hauptaugenmerk solltet ihr auf die Datei aufgabenlist.js setzen. Hier befindet sich der relevante jQuery / JavaScript Code. Der ganze Rest ist nur "Infrastruktur", damit ich jQuery an einem halbwegs realistischen Beispiel zeigen kann ;-)

An Feedback zu den Quellcodes bin ich immer interessiert. Am besten über das Kontaktformular, oder die während des Vortrags mitgeteilte E-Mail Adresse.

Ich weiß übrigens, dass das ASP.NET MVC Projekt keine Unit Tests beinhaltet. Angesichts der Projektgröße und der verfügbaren Zeit habe ich hier ein wenig geschludert. Thomas Bandt hat mich während des Vortrags übrigens auch darauf aufmerksam gemacht, dass mein JavaScript Code nicht via Unit Tests geprüft wurde. Auch hier gelobe ich Besserung :-)

Literaturempfehlungen

Im Anschluss an den Vortrag wurde ich außerdem gefragt, welche Literatur ich zu dem Thema empfehlen könnte.

Nun, da sich jQuery hauptsächlich mit der Modifikation des DOMs, insbesondere dem Ein- / Ausblenden sowie dynamischem CSS befasst, sollte man meiner Meinung nach zunächst über solide (X)HTML und CSS Kenntnisse verfügen (kein Witz).

Zu diesem Thema kann ich das Buch Head First HTML with CSS & XHTML empfehlen:

Außerdem können generelle JavaScript Kenntnisse auch nicht schaden ;-) Hier habe ich persönlich sehr gute Erfahrung mit dem Buch Professional JavaScript for Web Developers gemacht.

Speziell zum Thema jQuery hat mir das Buch jQuery in Action, Second Edition sehr gut gefallen. Ich habe es mir im Rahmen des Manning Early Access Program als E-Book bestellt. Wer lieber ein gedrucktes Exemplar haben möchte, muss sich noch ein wenig gedulden, kann es aber dann auch z. B. bei Amazon bestellen.

dotnet Cologne 2010 - was ein riesen Spaß

29.10.2011 23:11:56 | Andre Kraemer

Letzten Freitag hatte ich die Freude, an der dotnet Cologne teilzunehmen. Mit über 300 Teilnehmern war es ein wirklich riesiges Event, dass sich vor "professionellen", oder besser gesagt kommerziellen Konferenzen nicht verstecken muss.

Der Teilnehmer

Vor Ort war ich in mehreren Rollen. Zum einen natürlich als Teilnehmer. In dieser Rolle nutzte ich die Möglichkeit, endlich mal die Gesichter zu einigen Bekannten aus der Community zu sehen und auch mal persönlich das ein oder andere Wort zu wechseln. Außerdem hörte ich mir auch spannende Vorträge, unter anderem von Jörg Krause zu Sharepoint als Entwicklungsplattform, Neues in Silverlight 4 von Stefan Lange sowie Neues in ASP.NET 4.0 von Jan Welker.

Irritierend fand ich, dass gefühlte 90 % der Besucher von Jörg Krauses Sharepoint Vortrag keinerlei Sharepoint Vorkenntnisse hatten und somit wohl nicht im geringsten wussten, wie so eine Site, eine Sitecollection, ein Web, eine Liste, ein Webpart ... an der Oberfläche wohl aussehen. Die gleiche Situation habe ich übrigens auch mehrfach schon auf der Shareconnect (Basta Sharepoint Days) beobachtet. Vielleicht wäre hier einfach mal ein "Was ich über Sharepoint wissen sollte, bevor ich Visual Studio aufmache" Vortrag angebracht. Leider habe ich einen solchen Vortrag bisher noch auf keiner (Entwickler-)Konferenz im Angebot gesehen. Nichts desto trotz fand ich Jörgs Vortrag prima! Auch die anderen besuchten Vorträge haben mir gut gefallen, daher mein Fazit als Teilnehmer:

Voller Erfolg! Gute Vorträge, gute Kontaktmöglichkeiten zur Community, was will man mehr.

Der Aussteller

Unter den Sponsoren des Events war unter anderem auch die Firma Infragistics. Wie auch auf anderen Konferenzen lies ich es mir als fleißiger Infragistics MVP  in den Pausen natürlich nicht nehmen, Kiril und Nils tatkräftig zu unterstützen. Dies war auch bitter nötig, da der Andrang am Stand weit höher war, als ich es von anderen Konferenzen gewohnt war. Kamen wir normalerweise zu zweit immer ganz gut zurecht, waren dieses Mal sogar drei Personen eigentlich schon fast zu wenig.

Fazit als Aussteller: Tolle Veranstaltung! Viele Kontakte, interessante und zum Teil sogar sehr trickreiche Fragen, genauso muss es sein!

Der User Group Leader

Jeder der schon mal ein User Group Treffen besucht hat wird sich sicherlich fragen:

Wo kommen eigentlich die Sprecher her?

Nun ja, als sie ganz klein waren, wird sie voraussichtlich einer der beiden hier unten gebracht haben.

image

Foto: Valter Jacinto | Portugal   http://www.flickr.com/photos/valter/87429062/sizes/m/ Creative Commons License

Irgendwann werden die Jungs und Mädels dann aber groß und spätestens dann stellt sich für einen User Group Leiter die Frage:

Wo bekomme ich eigentlich Sprecher her?

Ein besonders guter Ort, Sprecher für die eigene User Group zu finden ist selbstverständlich eine Konferenz, denn dort treten Speaker häufig in Rudeln auf ;-)

Also machte ich mich während der dotnet Cologne auf den Weg und zog Sprecher für die nächsten Treffen der .NET User Group Koblenz an Land.

Die Ausbeute war übrigens mit zwei definitiven, einer relativ verbindlichen und einer losen Zusage recht gut. Daher auch hier: dotnet Cologne, 12 Points ;-)

Der Sprecher

Zu guter letzt (und angesichts der Agenda ist dies wörtlich gemeint), war ich auch als Sprecher unterwegs. Mein Thema war die Einführung in jQuery unter dem spontan geänderten Titel:

jQuery - oder warum Sie JavaScript in Zukunft nicht mehr hassen werden.

Den Verlauf des Vortrags würde ich wie folgt beschreiben

  • Der Saal füllt sich, die Menge wird still. Ich will loslegen, aber mein Mikro überlegt sich, dass es sich lieber in meinem T-Shirt verdreht. Kein Mensch hört mich ... so ein Mist
  • Mikro Problem gelöst, schnell durch die Folien gejagt. Auf gehts zur Demo!
  • Meine ASP.NET MVC Anwendung reißt niemand vom Hocker und stößt kaum auf Interesse
  • Ist zum Glück nicht schlimm, schließlich ist mein Thema ja auch jQuery und nicht ASP.NET MVC ;-)
  • Die ersten UI Gimmicks (alternierende Tabellenzeilen, Hover Effekte) zaubern ein müdes Lächeln auf die Gesichter der Menge - da muss wohl noch mehr her
  • Ich erstelle mit einer Zeile jQuery Code auf- und zuklappbare Bereiche in der Sidebar der Anwendung. Im Publikum sehe ich die ersten funkelnden Augen
  • Auf der Welle muss ich weiter reiten, also jetzt schnell ein wenig Ajax;-)
  • In der Einleitung habe ich etwas vom Update Panel erzählt. Heißt dann wohl ich sollte auch ein wenig WebForms zeigen. Ich entschließe mich also, im Firebug mal zu zeigen, was über die Leitung geht wenn man Ajax mit dem Update Panel erlegt erledigt. Als ich zum ViewState scrolle scheinen einige Teilnehmer zu glauben ich hätte gerade die Matrix gehacked oder zumindest gedebugged.
  • Oh je, nur noch 3 Minuten Zeit und ich habe doch versprochen früher Schluss zu machen - jetzt muss schnell etwas großartiges her. Ich greife also noch mal in die Trickkiste und greife zu meinem größten Trumpf: runde Ecken;-) Puh, geschafft, die Zuschauer jubeln. Ein Glück, dass es runde Ecken gibt ;-)

Mein Fazit als Sprecher lautet also:

Wahnsinn! Auch wenn es nur ein Einsteiger Vortrag war und laut Handzeichen mindestens die Hälfte der Anwesenden jQuery bereits kannte und nutzte war das Publikum allem Anschein nach während des Vortrags voll dabei. So macht vortragen Spaß!

Der Grillfreund

Zum Abschluss fand für einige Teilnehmer, Sprecher und Sponsoren dann noch die durch Microsoft gesponsorte und durch Jan Welker gestifftete Grill-Party des dotnet Forums statt. Essen und Getränke waren sehr lecker, die Gespräche spannend, von daher auch hier mein Kompliment.

Fazit

Der Besuch der dotnet Cologne hätte in keinster Weise besser laufen können. Großes Lob und alle Achtung an die Organisatoren! Nächstes Jahr bin ich - in welcher Form auch immer - sicherlich auch wieder mit dabei!

Hey, du hast dir die Zeit genommen, den ganzen Beitrag zu lesen, oder zumindest bis hier hin zu scrollen. Nimm dir doch bitte auch noch die Zeit, ihn über den unten stehenden Button bei dotnet-kicks.de zu kicken!

Ein zweites Zuhause

29.10.2011 23:11:56 | Andre Kraemer

Habe ich für meine Blog Beiträge gefunden. Zumindest die englischen, die einen Bezug zu den Infragistics NetAdvantage Controls haben.

Seit kurzem gibt auf der Infragistics Homepage nämlich einen MVP Blog, für das ich einer der Autoren bin.

Selbstverständlich gibt es auch schon einen ersten Blog Post von mir. Dieser beinhaltet neben einer kurzen (OK, langen ;-)) Vorstellung ein kleines jQuery Script, welches hilfreich beim Einsatz des Infragistics ASP.NET Aikido WebDropdown Controls ist.

igmvpblog

Was hast du vor 10 Jahren programmiert

29.10.2011 23:11:56 | Andre Kraemer

Vor ein paar Wochen haben unter anderem Darius, Alex und Thomas darüber geblogged, was sie vor 10 Jahren programmiert haben.

Natürlich kam ich auch ins Grübeln und so fiel mir ein, dass ich zu dieser Zeit meine Zeit meist mit VB 6 Desktop Anwendungen, Outlook Formularanwendungen, oder aber PHP oder Classic ASP Webanwendungen verbracht habe. Allerdings habe ich seitdem mehrfach den Arbeitgeber gewechselt und die Source Codes daher auch nicht mehr im Zugriff. Somit war das Thema, einen Blogeintrag zu dieser Frage zu schreiben für mich eigentlich erledigt.

Eigentlich ...

Aber auch nur eigentlich, denn lustigerweise schickte mir letzte Woche ein ehemaliger Kollege aus heiterem Himmel einen alten Screenshot, den er irgendwo gefunden hatte.

Bei diesem Screenshot handelte es sich um einen Gag Screen einer Anwendung, die wir 1999 für die Finanzbuchhaltung der Nürburgring GmbH geschrieben hatten. Das Bild öffnete sich übrigens, wenn ich mich recht erinnere beim Klick auf ein Label. In den vier Jahren, in denen ich die Anwendung anschließend noch weiter betreut habe, kam allerdings nie eine Anfrage zu dieser Bildschirmmaske. Daher gehe ich mal davon aus, dass es niemand gefunden hat :-)

Auf dem Bild zu sehen sind übrigens mein damaliger Kollege, der ein ehemaliger Schulkamerad und mein späterer WG Mitbewohner war, und ich. Das Bild wurde allerdings nicht während der Arbeit, sondern während eine Pre-Game Grill Party eines Spiels der Frankfurt Galaxy aufgenommen. Zu rätseln, wer von uns beiden wer ist, überlasse ich den Lesern dieses Blogs.

programmierer

Schöne Erinnerung! Vielen Dank für das Bild Oliver!

Tags: ,

Lebendige ASP.NET Webseiten mit jQuery

29.10.2011 23:11:56 | Andre Kraemer

Moderne Webseiten beinhalten in der heutigen Zeit einen hohen Anteil clientseitiger Quellcodes in Form von JavaScript. Für diesen Anwender führt dies im Idealfall zu einer verbesserten Benutzbarkeit der Applikation, da diese neben netten UI Effekten nun meist durch Ajax auch weitaus flüssiger bedienbar ist.

Bei vielen Entwicklern solcher dynamischer Webseiten führt der vermehrte JavaScript Anteil allerdings häufig zu Wein- und/oder Schreikrämpfen, denn nur die wenigsten mögen JavaScript wirklich. Die Ursachen für diese Antipathie liegen jedoch selten an JavaScript als Sprache selbst, sondern in den meisten Fällen eher an der unterschiedlichen Implementation des DOMs / BOMs durch die verschiedenen Browserhersteller. Diese Inkonsistenz führt nämlich dazu, dass JavaScript Code, der in einem Browser bzw. einer Version eines Browsers problemlos läuft im nächsten Browser Fehler verursacht und schlichtweg nicht läuft.

Weiter wird häufig bemängelt, das Selektionen fernab von einem einfachen document.getElementById(IdMeinesElements) relativ kompliziert sind. Als Beispiel wären hier zu nennen: alle Elemente mit einer bestimmten Klasse, ungerade Zeilen einer Tabelle, das aktivierte Element einer RadioButtonGroup usw.

Und nun?

Nun gibt es folgende Strategien mit diesen Problemen umzugehen:

  1. Man drückt sich immer davor JavaScript zu schreiben und wälzt dies auf einen Kollegen ab
  2. Man kopiert sich irgendwoher JavaScript Codeschnippsel, die angeben browserunabhängig zu sein und hofft, das dem auch so ist
  3. Man investiert Unmengen Zeit in die eigene browserübergreifende Implementierung diverser Funktionalitäten
  4. Man bedient sich eines der am Markt verfügbaren JavaScript Frameworks

Strategie Nr. 1 mag eine Weile ganz gut funktionieren, früher oder später wird aber der Zeitpunkt kommen, an dem man sich nicht mehr drücken kann (ich spreche da aus eigener Erfahrung ;-)).

Strategie Nr. 2 funktioniert immer dann, wenn der Umfang des benötigten JavaScript Codes überschaubar ist. Gemeinsam mit der Applikation wird aber auch irgendwann der zusammenkopierte Code wachsen und die Wartbarkeit entsprechend sinken.

Strategie Nr. 3 ist sicherlich eine prima Idee für alle die außerdem auch ein eigenes Logging Framework, einen eigenen OR Mapper usw implementiert haben, oder kurz gesagt für alle die gerne das Rad neu erfinden ;-)

Gangbar scheint also nur Strategie Nr. 4 zu sein. Schaut man sich nun am Markt um, stößt man unweigerlich auf jQuery. Die freie JavaScript Library adressiert unter anderem genau die zuvor genannten Probleme und hat in letzter Zeit einen wahren Hype verursacht. Dieser Rummel wurde sicherlich auch dadurch verstärkt, dass Microsoft jQuery offiziell supportet, mit Visual Studio ausliefert und die Arbeiten an der hauseigenen JavaScript Bibliothek ASP.NET Ajax Library zugunsten von jQuery eingestellt hat.

Wie legen wir nun aber mit jQuery los? Genau diese Frage möchte ich in diesem und den folgenden Blog Posts beantworten. Da jQuery in einem neuen ASP.NET MVC Projekt automatisch hinzugefügt wird und ASP.NET MVC Entwickler somit sowieso jQuery gewöhnt sind, soll als Beispiel zunächst eine Webforms Anwendung dienen.

Auf die Plätze, fertig, los!

Wenn man jQuery benutzen möchte, besteht der erste Schritt darin, die freie JavaScript Library in seine Seite einzubinden. Dazu lädt man unter http://www.jQuery.com einfach die aktuelle Version der Bibliothek herunter und kopiert diese anschließend zum Beispiel in einen Unterordner Scripts seiner Webanwendung. jQuery ist übrigens in einer für Menschen lesbaren (z. B. jQuery-1.4.2.js) und in einer verkleinerten Version (z, B. jQuery-1.4.2.min.js) verfügbar. In der verkleinerten Version sind unnötige Leerzeichen, Zeilenumbrüche und Kommentare entfernt. Außerdem wurden die Namen der Variablen und nicht öffentlichen Funktionen auf ein oder zwei Buchstaben verkürzt. Sinn dieser Maßnahme ist es die zum Client übertragene Datenmenge zu reduzieren. So ist die verkleinerte Version knappe 100 kb kleiner als die lesbare Variante. Für Produktivszenarien sollte demnach also in jedem Fall die .min Version genutzt werden, wohingegen während der Entwicklungszeit eher die lesbare Variante eingebunden werden sollte. So kann man den Scriptcode im Fall der Fälle nämlich noch debuggen.

So, genug der Vorrede und zurück zur Praxis. Tatsächlich einbinden können wir jQuery nun über folgende Zeile:

<script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script>

Platzieren sollte man diese Zeile übrigens innerhalb des Kopfbereichs der Seite:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.2.js" type="text/javascript"></script>
</head>

Prima, aber was mache ich nun damit?

Gute Frage! Jetzt haben wir jQuery zwar eingebunden, aber wie geht es jetzt weiter. Dazu sollten wir zunächst kurz einen Blick darauf werfen, was wir normalerweise mit JavaScript machen. In den meißten Fällen reduziert sich dies auf:

  • Elemente aus dem DOM zu selektieren
  • Selektierte Elemente zu manipulieren (ein- / ausblenden, Styledefinitionen zu verändern...)
  • Code bei bestimmten Ereignissen ausführen (z. B. click event)
  • Neue Elemente dem DOM hinzuzufügen
  • Elemente aus dem DOM zu löschen
  • AJAX Aufrufe zum Server zu machen und die Antwort zu Verarbeiten

Als kleinen Einstieg picken wir uns exemplarisch die ersten drei Punkte heraus. Wir werden also DOM Elemente selektieren und diese manipulieren. Geschehen wird dies bei dem Klick auf einen Button.

Dazu werden wir eine Meldungszeile, ähnlich wie man sie von Stackoverflow kennt nachbauen.

01_so_message

Der erste Schritt besteht in der Erstellung eines HTML und CSS Grundgerüsts:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>jQuery Demo</title>

    <style type="text/css">
        body
        {
            margin: 0px;
        }
        #message
        {
            background-color: #FFFF88;
            border-bottom: solid 1px #000000;
            font-weight: bold;
            text-align: center;
            padding: 8px;
            margin: 0px;
            display:none;
            font-family: Arial, Verdana, Sans-Serif;
        }
        #message a
        {
            float: right;
            border: solid 3px black;
            font-family: Arial, Verdana, Sans-Serif;
            font-weight: bold;
            text-decoration: none;
            color: Black;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div id="message"><span>Dummy Nachricht</span><a href="Default.aspx">X</a>
    </div>
    <div id="content">
        <p>
            Dies ist eine jQuery Demowebsite</p>
        <button id="showMessage">
            Klick mich</button>
    </div>
    </form>
</body>
</html>

Wie man sieht, wird ein DIV Element  mit dem Namen "message" erstellt, dass als Unterlemente ein SPAN Element und einen Link enthält. Über CSS wird dieses DIV Element noch ein wenig gestyled und initial ausgeblendet. Außerdem ist auf der Seite noch ein Button definiert. Ein Klick auf diesen Button soll der Auslöser sein, um die Meldung anzuzeigen.

Wie aber genau sieht nun der Code aus, um die Nachricht - mit verändertem Text - anzuzeigen?

Mit der Hilfe von jQuery ist dies garnicht so schwer:

$("#showMessage").click(function(evt) {
    evt.preventDefault();
    $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
    $("#message").fadeIn(2000);
});
Auf den ersten Blick mag der Code etwas verwirrend aussehen. Vor allem durch die vielen $-Zeichen. Daher ein paar erklärende Worte:

In Zeile 1 selektieren wir mit dem Befehl: $("#showMessage") zunächst das DOM Element mit der ID showMessage, also unseren Button. Das $-Zeichen ist übrigens ein Alias für die jQuery Funktion. Statt $("message") hätte ich also auch jQuery("$message") schreiben können. Die Rückgabe des Aufrufs - unabhängig ob via jQuery(...) oder $(...) ist ein Objekt vom Typ jQuery. Dieses Objekt beinhaltet die selektieren DOM Elemente bzw. das selektierte DOM Element sowie einige weitere Funktionen.

In unserem Fall bekommen wir also ein Objekt vom Typ jQuery zurück, dass das DOM Element showMessage beinhaltet. Für dieses DOM Element wird nun eine anonyme Funktion als Handler für das Ereignis Click registriert.

In Zeile 2 wird mit dem Befehl evt.preventDefault(); nun die Standardaktion die der Browser bei diesem Ereignis, also z. B. das posten des Formulars nach Klick auf den Button, verhindert.

In Zeile 3 werden anschließend alle span Elemente innerhalb des DOM Elements mit der Id message selektiert. In unserem Fall ist dies also genau eins. Für dieses span Element wird mit der Funktion text jetzt ein neuer Text vergeben. Außerdem wird das Element mit der Id message in Zeile 4 langsam (über einen Zeitraum von zwei Sekunden) eingeblendet.

Der Quellcode zum Ausblenden der Nachricht sieht ähnlich aus:

$("#message a").click( function(evt) {
     evt.preventDefault();
     $("#message").fadeOut("slow");
 });

In Zeile 1 wird an alle A-Elemente innerhalb des DOM Elements mit der Id message ein Eventhandler für das Ereignis Click angehangen. Dieser verhindert in Zeile 2 die Standardaktion des Links und blendet in Zeile 3 unsere Nachrichtenzeile wieder aus. Dieses mal wird statt einer Angabe in Millisekunden der String "slow" als Argument übergeben. Dieser ist in den jQuery Quellcodes mit einem Wert von 600 ms hinterlegt.

Perfekt, aber wo schreibe ich den Code nun rein?

So, jetzt wo wir eigentlich den ganzen Quellcode fertig haben stellt sich natürlich die Frage, wie wir ihn in unsere Seite einbinden. Eine naive Implementierung sähe wie folgt aus:

<head>
<!-- ... -->
<script type="text/javascript">
    $("#showMessage").click(function(evt) {
        evt.preventDefault();
        $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
        $("#message").fadeIn(2000);
    });
    $("#message a").click( function(evt) {
        evt.preventDefault();
        $("#message").fadeOut("slow");
    });
</script>
<!-- ... -->
</head>

Der Code würde also einfach in ein Scripttag innerhalb des Head Tags kopiert werden. Dies läuft so nicht! Der Grund ist, dass mit diesem Code versucht wird, ein Eventhandler an ein DOM Element zu binden, das es zu diesem Zeitpunkt noch garnicht gibt.

Wie sieht aber die Lösung für das Problem aus?

Alles zu seiner Zeit

Wie wir zuvor gesehen haben, ist unser Code wirkungslos, wenn wir ihn ausführen ehe es ein entsprechendes DOM Element gibt. Daher sollten wir ihn erst auslösen, sobald das DOM vollständig initialisiert ist.

Ein weg dies zu erreichen wäre es, den Code aufzurufen wenn das Ereignis window.onload eintritt:

window.onload = function() {
  $("#showMessage").click(function(evt) {
     evt.preventDefault();
     // Restlicher Code hier
  });
}

Diese Variante würde bereits fehlerfrei funktionieren. Allerdings wird das Ereignis onload erst ausgelöst, wenn das DOM vollständig initialisiert wurde und alle externen Ressourcen, wie zum Beispiel Bilder oder Stylesheets geladen wurden. Dies kann von Fall zu Fall recht lange dauern, so dass der Anwender den Button bereits anklicken könnte, ohne dass unser Script ausgeführt wird. Zum Glück bietet jQuery einen besseren Ansatz, nämlich $(document).ready. In dieser Variante wird das Ereignis ready ausgelöst, sobald das DOM vollständig initialisiert wurde, aber bevor externe Ressourcen geladen wurden.

Das vollständige Beispiel mit $(document).ready sieht dann wie folgt aus:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>jQuery Demo</title>

    <script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script>

    <style type="text/css">
        body
        {
            margin: 0px;
        }
        #message
        {
            background-color: #FFFF88;
            border-bottom: solid 1px #000000;
            font-weight: bold;
            text-align: center;
            padding: 8px;
            margin: 0px;
            display:none;
            font-family: Arial, Verdana, Sans-Serif;
        }
        #message a
        {
            float: right;
            border: solid 3px black;
            font-family: Arial, Verdana, Sans-Serif;
            font-weight: bold;
            text-decoration: none;
            color: Black;
        }
    </style>

    <script type="text/javascript">
        $(document).ready(function() {
            $("#showMessage").click(function(evt) {
                evt.preventDefault();
                $("#message span").text("Du hast den Button geklickt. Klicke nun auf das X, um die Nachricht auszublenden.");
                $("#message").fadeIn(2000);
            });
            $("#message a").click(function(evt) {
                evt.preventDefault();
                $("#message").fadeOut("slow");
            }
        }
      });
    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div id="message"><span>Dummy Nachricht</span><a href="Default.aspx">X</a>
    </div>
    <div id="content">
        <p>
            Dies ist eine jQuery Demowebsite</p>
        <button id="showMessage">
            Klick mich</button>
    </div>
    </form>
</body>
</html>

Ausblick und Fazit

Wie dieser Blog Eintrag gezeigt hat, ist jQuery eine recht komfortabel zu bediene JavaScript Library, mit der sich mit wenigen Zeilen Script Code interessante Effekte erzielen lassen. Neben der intuitiven und Browser unabhängigen API besticht die Bibliothek vor allem durch die Fülle an Funktionen und erhältlichen Plug-Ins. Selbstverständlich konnte ich hier nur einen kurzen (ersten) Einblick verschaffen. Da ich das Thema Clientseitige Entwicklung in (ASP.NET) Webanwendungen jedoch für sehr interessant halte, habe ich vor in der nächsten Zeit weitere Einträge zum Thema jQuery mit folgenden Schwerpunkten zu schreiben:

  • Nutzen von Content Delivery Networks (CDNs)
  • jQuery Selektoren
  • Möglichkeiten der DOM Manipulation
  • jQuery und Firebug
  • jQuery Plugins selber entwickeln
  • jQuery UI
  • jQuery Utility Funktionen
  • jQuery und Ajax für Webforms und ASP.NET MVC

Eventuell werde ich im Anschluss an die Artikel auch kurze Video Tutorials bereitstellen.

Bevor ich allerdings loslege würde mich natürlich interessieren, ob das Thema für euch überhaupt von Interesse ist. Am liebsten in Form eines kurzen Kommentars.

Sollte jemand von euch übrigens das Verlangen haben, das Thema jQuery, oder auch generell ASP.NET mit mir persönlich in lockerer Atmosphäre zu diskutieren: Am 28. Mai werde ich einen Einsteigervortrag zu jQuery auf der dotnet Cologne 2010 halten. Über zahlreiche Besucher des Vortrags und natürlich auch spannende Diskussionen danach würde ich mich sehr freuen.

In den Pausen findet man ihr mich übrigens wahrscheinlich im Ausstellerbereich am Stand der Firma Infragistics. Dort wäre ich dann zusätzlich auch für den ein oder anderen Plausch über die Infragistics NetAdvantage Komponenten zu haben.

War dieser Artikel hilfreich für dich? Dann kicke ihn doch bitte bei dotnet-kicks.de!

ASP.NET Anwendungen mit der Powershell warmklicken

29.10.2011 23:11:56 | Andre Kraemer

Startet man eine ASP.NET Anwendung zum ersten Mal, kommt man nicht gerade in einen Geschwindigkeitsrausch. Dies liegt zum Beispiel daran, dass der IIS den ASP.NET Worker Prozess hochfahren muss. Außerdem läuft eventuell im Ereignis Application_Start hinterlegter Initialisierungscode und schließlich müssen die vorliegenden Assemblies noch durch den JITer in nativen Code überführt werden.

All dies führt dazu, dass man relativ selten so etwas wie "rasend schnell" hört, wenn vom ersten Zugriff auf eine ASP.NET Anwendung gesprochen wird.

Glücklicherweise ist all dies nach dem ersten Request einer Seite kein Problem mehr. Der Worker Prozess ist da, der Initialisierungscode lief und die Just In Time Compilation lief auch.

Zu einem Problem wird die Situation jedoch, wenn man seine ASP.NET Anwendung während der Entwicklung als ein Bestandteil des Nightly Builds automatisch deployed und auch seinem Kunden Zugriff auf diesen täglich frischen Applikationsstand gibt.

Da Kunden morgens nämlich meist früher als Entwickler im Büro sind, sind sie auch die ersten, die die Webanwendung öffnen, um zu sehen, was am Vortrag umgesetzt wurde. Ist dieser erste Zugriff nun aus den oben genannten Gründen langsam, ist negatives Feedback des Kundens zur Applikationsperformance - oder sogar noch schlimmer: im Stillen sinkendes vertrauen in Applikation und Entwickler nicht selten die Folge.

Um dieses Problem zu umgehen, habe ich ein kleines Powershell Script geschrieben, das nach Angabe einer URL die einzelnen Seiten einer Webapplikation ansurft. 

function warmup-site( [string] $rootUrl){
	
	$proxy = New-Object System.Net.WebProxy("mein.firmen.proxy:8080")
	$proxy.UseDefaultCredentials = 1
	
	$wc = New-Object System.Net.WebClient
	$wc.Proxy = $proxy
	
	$pages = @("default.aspx", "seite1.aspx", "seite2.aspx", "subfolder/seite3.aspx")

	# Jede Seite 3 Mal ansurfen, um Sie "warmzuklicken"
	for ($i=0; $i -lt 3; $i++){
		foreach($page in $pages){
			trap [System.Net.WebException] {
			  write-error $("TRAPPED: " + $_.Exception.ToString());
			  continue;
		   	}
			$content = $wc.DownloadString($rootUrl+$page)
			write $("URL " + $rootUrl+$page + " angesurft");
		}
	}

}

warmup-site("http://meine.url/")

Bisher gebe ich die einzelnen Seiten die angefragt werden sollen noch manuell innerhalb des Arrays $pages an. Im nächsten Schritt würde ich jedoch lieber nur noch die URL der Sitemap angeben, diese auslesen und dann sämtliche in der Sitemap aufgeführten URLs anfragen. Da ich jedoch noch Powershell Neuling bin, könnte es noch ein wenig dauern, bis ich die Lösung so weit automatisiert habe. Sollte einer der Leser nun sagen: "Das ist doch ein Dreizeiler, den ich in der Kaffeepause aus dem Ärmel schütteln könnte", dann würde ich darum bitten genau diesen Dreizeiler über die Kommentarfunktion meines Blogs hier einzustellen ;-)

Was bringts?

Die Anwendung startet beim ersten Request nun bedeutend schneller. Somit ist der Kunde beruhigt und wir können uns auf die wichtigen Sachen des Projekts konzentrieren ;-)

Habe übrigens gesehen, dass es ab dem IIS 7 (oder 7.5?) von Hause aus eine Warmup gibt. Hat jemand von euch Erfahrung damit? Im Moment ist es für mich zwar noch nicht akut, da wir den IIS 6 nutzen, wäre aber Interessant für die Zukunft ein paar Erfahrungsberichte zur Hand zu haben.

Wie ziehe ich mir eigentlich einen Memory Dump meiner Anwendung

29.10.2011 23:11:56 | Andre Kraemer

Vor einiger Zeit habe ich ein kleines Einsteigertutorial zum Umgang mit WinDbg geschrieben. Etwas später folgte dann auch ein kurzes Video hierzu.

Sowohl im Tutorial als auch im Video war eine Windows Forms Anwendung das Ziel meiner Debuggingaktivitäten. In einem kurzen Nebensatz erwähnte ich, dass die Zielanwendung bei der gezeigten Vorgehensweise, nämlich dem direkten Anhängen an den Prozess der Wahl, zumindest zeitweise blockiert wird.

In einer Windows Forms Anwendung mag dies kein Problem sein, schließlich bin ich ja alleine auf dem System. Unschön wird es jedoch, wenn man Probleme in einer produktiven ASP.NET Anwendung sucht. Verständlicherweise reagieren hier nämlich die wenigsten Anwender erfreut, wenn die Website steht weil gerade jemand im Hintergrund daran herumfummelt. Außerdem ist es je nach IT Richtlinie auch problematisch den lokalen Administrator des Kundens davon zu überzeugen, dass man mal gerade physikalisch oder auch nur per Remote Desktop an seinen Webserver will.

Und nun?

Abhilfe schafft hier die VBScript Datei adplus.vbs innerhalb des WinDbg Verzeichnisses. Sie ermöglicht es, ein aktuelles Speicherabbild des problematischen Prozesses in Form einer *.DMP Datei zu erstellen. Diese kann wiederum in WinDbg geöffnet und analysiert werden.

Adplus kann in zwei verschiedenen Modi genutzt werden: hang und crash.

Im hang Modus wird einmalig ein aktueller Memory Dump des Prozesses zum Zeitpunkt der Ausführung des Scripts gezogen. Dieser Modus eignet sich besonders wenn die Applikation "hängt" ;-), also in Deadlock Szenarien, oder aber auch um Memory Leaks zu finden. Zur besseren Analyse sollten im Fall ein Memory Leaks jedoch mehrere Dumps bei verschieden hoher Speicherauslastung gezogen werden.

Der Befehl zum Erzeugen eines Dumps im hang Modus lautet übrigens:

adplus.vbs -hang -p processId

Die Id des Prozesses kann entweder über den Taskmanager, oder aber im Fall einer ASP.NET Anwendung die in einem IIS 6 gehostet wird, über den Befehl IISAPP gefunden werden.

Alternativ zum Parameter -p kann über den Parameter -pn auch ein Prozessname angegeben werden. Im Fall einer ASP.NET Anwendung wäre dies also W3WP.exe (Windows Server mit IIS) bzw. WebDev.WebServer.exe im Falle des lokalen Entwicklungsservers. Außerdem kann über den optionalen Parameter -o auch ein dediziertes Ausgabeverzeichnis angegeben werden. Standardmäßig wird nämlich sonst ein Unterverzeichnis, unterhalb des Ordners aus dem adplus heraus aufgerufen wurde, angelegt.

Innerhalb des Zielverzeichnisses wird nun eine Datei mit der Endung .DMP angelegt. Diese kann in WinDbg über den Menüpunkt File -> Open Crash Dump ... geöffnet und mit den bereits bekannten Befehlen analysiert werden.

Der zweite Modus neben hang ist der Modus crash.

Der Aufruf erfolgt hier ähnlich zum hand Modus, mit dem einzigen Unterschied, dass statt -hang -crash übergeben wird.

adplus.vbs -crash -p processId

Im Crash Modus bleibt der Debugger so lange am entsprechenden Prozess angehangen, bis dieser unfreiwillig beendet wird. Tritt dieser Fall ein, wird ein Dump auf die Festplatte geschrieben. Außerdem werden Dumps geschrieben, wenn ein zuvor definierter Breakpoint erreicht wird, oder aber eine access violation Exception auftritt.

Fazit

Mit adplus liegt ein leichtgewichtiges Skript zur Hand, dass bei der Problemanalyse innerhalb produktiver Umgebungen enorm helfen kann. Gerade in Umgebungen, in denen das Live-System nicht durch Debugging blockiert werden darf, oder aber der Administrator keinen Zugriff auf das System gewährt, kann das Skript seine stärken Ausspielen.

Tags:

WP-Tipp #040 – Fotos optimieren

28.10.2011 13:00:00 | Gordon Breuer

Nicht immer sind die Lichtverhältnisse ideal und je nach dem welches Handymodell man verwendet hat sind die erzielten Resultate der eingebauten Kamera mehr oder weniger gut. Wie von anderen Smartphone-Plattformen gewohnt bietet nun auch Windows Phone seit dem Update auf Version 7.5 ("Mango") eine interne Möglichkeit, ein paar einfache Bildoptimierungen direkt durchzuführen. Das Ergebnis lässt sich durchaus blicken und so manches Foto, was auf den ersten Blick zu dunkel oder blass wirkte, wurde deutlich verbessert. Viel Spaß beim Lesen und ein schönes Wochenende!

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Getting JSON undefined error (or weird layout results) in IE9 on intranet site

28.10.2011 10:37:42 | Alexander Zeitler

If you’re receiving errors like ‘JSON undefined’ in Internet Explorer 9 on your intranet site:

JSONundefined

You should check this default setting:

Tools / Compatibility View Settings:

Display intranet sites in Compatibility View

Uncheck this.

DotNetKicks-DE Image

WP-Tipp #039 – Internet Explorer 9, ein Nachschlag

27.10.2011 11:00:00 | Gordon Breuer

Bereits vergangene Woche habe ich zahlreiche neue Funktionen des Internet Explorer 9 auf dem Windows Phone 7.5 "Mango" vorgestellt. Heute gibt es dazu noch einen Nachschlag mit ein paar zusätzlichen Tipps, die in den vorherigen nicht mehr mit hinein gepasst haben. Auch gibt es eine praktikable Notlösung für die weggefallene Suchfunktion für Websites, die noch im Tipp #035 angeprangert wurde.

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

ALL-INKL.COM: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag) 

26.10.2011 19:22:00 | Kay Giza

ALL-INKL.COM: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei ALL-INKL.COM registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die ALL-INKL.COM-Website erstellen... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

United Domains: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag) 

26.10.2011 19:21:23 | Kay Giza

United Domains: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei United Domains registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die United Domains-Website erstellen... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Strato: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag)

26.10.2011 19:20:43 | Kay Giza

Strato: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei Strato registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die Strato-Website erstellen... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Host Europe: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag) 

26.10.2011 19:19:59 | Kay Giza

Host Europe: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei Host Europe registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die Host Europe-Website erstellen.... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Hetzner Online: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag)

26.10.2011 19:19:08 | Kay Giza

Hetzner Online: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei Hetzner Online registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die Hetzner Online-Website erstellen... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Domain Factory: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag) 

26.10.2011 19:18:24 | Kay Giza

Domain Factory: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei Domain Factory registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die Domain Factory-Website erstellen... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Verio: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag) 

26.10.2011 19:17:43 | Kay Giza

Verio: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei Verio registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die Verio-Website erstellen... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

1 und 1 Internet AG: Hinzufuegen bzw. Ueberpruefen einer Domaene bzw. Domain bei Office 365 (DNS, TXT-, MX-Eintrag)

26.10.2011 19:16:44 | Kay Giza

1&1 Internet AG: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains bei Office 365 (DNS, TXT-, MX-Eintrag) Wenn Sie bereits eine Domäne (englischsprachig: Domain) bei 1&1 Internet AG registriert haben und diese nun mit Microsoft Office 365 für Unternehmen einsetzen möchten, ist eine Überprüfung erforderlich, die Sie als über diese Domäne verfügungsberechtigt ausweist. Office 365 nimmt diese Überprüfung anhand eines neuen DNS-Eintrags vor, den Sie für Ihre Domäne auf die 1&1 Internet AG-Website erstellen... [... mehr dazu in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Office 365: Hinzufuegen bzw. Ueberpruefen von Domaenen bzw. Domains (DNS, TXT-, MX-Eintrag)

26.10.2011 19:09:54 | Kay Giza

Office 365: Hinzufügen bzw. Überprüfen von Domänen bzw. Domains (DNS, TXT-, MX-Eintrag) Ich wurde in letzter Zeit sehr häufig gefragt, was die genauen Schritte sind, um seine (eigene) Domain für Office 365 authentifizieren zu lassen. Was hat dies auf sich mit diesem  TXT-Eintrag bzw. einen MX-Eintrag? Wenn Sie bereits Office 365 kennen und eine Trial haben oder bereits vollständig (bezahlt) nutzen, müssen bzw. sollten Sie ihre eigene Domain nutzen. So können Sie beispielsweise E-Mail-Konten erstellen, die Name@IhreDomain.de lautet und vieles weitere mehr. Zugegeben, es klingt kompliziert, ist es aber gar nicht. Mit wenigen Schritten und in kurzer Zeit, haben Sie dies erledigt... [... mehr in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

Das Ipsum-Universum, alternativen für den Alltag

26.10.2011 17:25:15 | Albert Weinert

Jeder der mal irgendwann ein Layout für Irgendwas gemacht hat, der braucht Leertexte. Das erste was einem einfällt ist dass bekannte Lorem Ipsum

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Um mal eben einen Lorem Ipsum Text in verschiedenen längen zur erzeugen gibt dank des Internets auch Generatoren.

Jedoch wäre es nicht das Internet wenn es nicht Ipsum Generatoren für verschiedene Geschmacksrichtungen geben würde. Für Süßkram-Lieberhaber, Fleischfresser, Veganer und mehr.

Hier ein Liste von ein Ipsum Generatoren die mir bekannt sind.

Texte

Bilder

  • lorempixel.com (via Patrick)
    Zufällige Bilder in verschiedenen Größen und Themen

Wenn ihr weitere Ipsum-Generatoren für andere Kunden-Bereiche kennt, einfach im Kommentar hinterlassen, ich werde dann diese Liste hier ergänzen.

WP-Tipp #038 – Und telefonieren kann man damit auch

26.10.2011 14:00:00 | Gordon Breuer

Besser spät als nie: Der heutige Tipp des Tages für das Windows Phone! Man kann natürlich nicht nur soziale Netzwerke, E-Mails und multimediale Inhalte mit dem Smartphone pflegen, sondern auch ganz klassisch telefonieren. Welche verschiedenen Optionen einem hier zur Verfügung stehen ist im heutigen Tipp kurz aufgeführt.

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

O365 Administration mit PowerShell

26.10.2011 11:44:10 | Thorsten Hans

Dank der Office 365 cmdlets für die PowerShell kann man administrative Tätigkeiten ganz bequem aus der PowerShell erledigen und muss sich nicht auf die Webseite bewegen.

Die O365 cmdlets könnt ihr für

downloaden. Der erste und wohl größte Stolperstein ist auch hier wohl – wie immer – die eigene IT. Solltet Ihr eine Fehlermeldung bekommen, wenn ihr euch mit dem O365 Service verbinden wollt (connect-MSOLSerivce) liegt es meistens daran, dass die PowerShell die Proxyeinstellungen des Internet Explorers verwendet und der Proxy euch nicht auf https://provisioningapi.microsoftonline.com/ProvisioningWebService.svc zugreifen lässt.

Entweder euer Admin fügt die Domain provisioningapi.microsoftonline.com als Ausnahme im TMG oder sonstigem Proxy hinzu, oder ihr macht es (zur Überbrückung) lokal in den Verbindungseinstellungen des Internet Explorers.

 

Als einfaches Beispiel hier mal ein PowerShell Script, welches eine neue Domain zu einem bestehenden O365 Account hinzufügt (leider nur als Bild, weil mein AddOn hier kein PowerShell Syntax kann…)

 

clip_image002

Wer mich kennt, weiss dass ich mir größte Mühe gegeben habe, um all diese Kommentare hier zu schreiben :D ..

Als einfachen Test habe ich meine neue Domain www.curry4.net einfach mal durch das Script gejagt und somit meinem O365 Account zugeordnet. Natürlich wird die neue Domain dann auch mit ihrem aktuellen Status im O365 Web Interface angezeigt.

clip_image004

Nachdem Ihr auf der PowerShell mittels

Import-Module MSOnline

ausgeführt habt, könnt ihr durch

get-command –Noun MSOL*

euch alle cmdlets auflisten lassen, die das Package euch zur Verfügung stellt. Sehr cool ist auch ein Projekt auf der TechNet Seite von Microsoft, welches euch beim Erstellen von gültigen PowerShell commands im SharePoint und O365 Context supported. Unter http://www.microsoft.com/resources/TechNet/en-us/Office/media/WindowsPowerShell/WindowsPowerShellCommandBuilder.html findet Ihr das Tool (thx @ Markus Alt für den Hinweis).

 

Technorati Tags: ,,
DotNetKicks-DE Image

Office 365 – Dienstupdate

26.10.2011 09:43:00 | Thorsten Hans

Wie die meisten O365 Kunden unter euch bereits Mitte Oktober gelesen haben, wird SPO (SharePoint Online) ab dem 20. Oktober aktualisiert. Mit dem laufenden Upgrade der SharePoint Farmen werden einige sehr interessante neue Features bereitgestellt, welche euch und euren Kunden die Entscheidung für die Migration zu O365 noch einfacher machen werden.

Das wohl wichtigste Feature, welches auch in SPO Einzug halten wird, sind die Business Connectivity Services (kurz BCS). Hierbei wird der WCF-Connector verfügbar sein. Ab dem kleinsten E-Paket von O365 kann man BCS nun verwenden um Daten aus externen Systemen in SharePoint Online zu integrieren.

Für die (hoffentlich die Mehrzahl aller Leser) WP7 Benutzer unter euch gibt es auch etwas neues, dank der neuen HTTP Unterstützung kann O365 auch für Kunden mit dem Plan P1 auf dem Windows Phone in voller Güte genossen werden.

Des Weiteren kann man „externe Benutzer“ auf eine SPO Seite berechtigen, diese können sich ab dem Update auch mittels Live-ID am O365 Workspace anmelden und auf den berechtigten Bereich im SPO zugreifen.

Schlussendlich wurde natürlich noch ein wenig an der Browser-Komptabilität für IE9 und Chrome und am Wiederherstellungsmechanismus für gelöschte Websites gearbeitet.

Alles in allem ein sehr cooles erstes Update was O365 noch mehr Möglichkeiten im Integrationskontext beschert und das Gesamtpaket somit für den Kunden wertvoller macht.

 

Technorati Tags: ,
DotNetKicks-DE Image

Eure Wünsche für die “dotnet Kicks”-App vNext

25.10.2011 18:04:12 | dotnet-kicks.de Blog

Vor kurzem haben wir ja die Windows Phone App “dotnet Kicks” mit einem kleinen Update auf Version 1.1 versorgt. In den nächsten Tagen kommt ebenfalls ein Mini-Update auf Version 1.2, das noch mal ein paar Optionen mitbringt und – in einer zweiten Variante kurz darauf – “Mango” unterstützen wird.

Doch wir arbeiten bereits an der Version 2.0 der dotnet Kicks-App, und wollen hierzu eure Meinung einholen! Was für Funktionen wünscht ihr euch unbedingt? Was sollten wir anders / besser machen? Je mehr Feedback ihr uns gebt, desto mehr können wir hiervon in die Version vNext mit einfliessen lassen. Smiley

Für das Brainstorming haben wir eine Seite bei tricider erstellt: http://tricider.com/de/brainstorming/AJiJ

Hier könnt ihr neue Ideen auch anonym und ohne Anmeldung eintragen oder über bereits eingetragene Ideen abstimmen. Besser ist es natürlich, sich vorher anzumelden, damit ihr eure Einträge hinterher auch noch bearbeiten könnt.

Zur Umfrage

Die dotnet Cologne 2012 wird am 4. Mai stattfinden

25.10.2011 14:52:20 | Albert Weinert

Unser Verein der dotnet Köln/Bonn e.V. hat sich erneut dazu bereit erklärt eine weitere dotnet Cologne zu organisieren.

Die bedeutet dass sich Melanie, Roland, Stefan und ich uns wieder in die Arbeit stürzen, durch höhen und tiefen gehen, damit Ihr dann am 4. Mai 2012 mit uns gemeinsam die Vorträge auf der dotnet Cologne 2012 anschauen könnt. Der Veranstaltungsort ist wieder das Komed im Kölner Mediapark.

Es ist ja eine Community Konferenz, von der Community für die Community. Nächstes Jahr stehen rund um den .NET Bereich viele Neuerungen an  z.B. .NET 4.5, Windows 8, Windows Runtime, Visual Studio 11, Silverlight 5, ASP.NET MVC 4, Windows Phone Tango usw. usf., doch auch noch die aktuellen Technologien werden uns lange erhalten bleiben. Dazu gibt es noch Mono auf dem Mac OS X, iOS und Android. Neben den ganzen Technologie-Themen sind ja noch Architekturen, Design, Testen und Tooling zu behandeln.

Es sind also viele Themenbereiche die man machen kann.

Doch besser ist es ja das zu machen was Ihr wissen möchtet.

Deshalb habe ich eine Umfrage aufgesetzt. Diese könnt Ihr ergänzen wir ihr möchtet und auch entsprechend abstimmen, ein Anmeldung an dem Dienst tricider ist nicht erforderlich. Jedoch wenn Ihr es macht habt Ihr die Chance Verbesserungen an euren Eingaben zu vollziehen. Seid möglichst präzise mit euren Wünschen ein einfaches “ASP.NET” wird nicht ausreichen ein Thema zu setzen.


powered by tricider

Die Umfrage direkt auf der tricider Seite http://tricider.com/de/brainstorming/AFxU

WP-Tipp #037 – Eigene Klingeltöne installieren

25.10.2011 11:00:00 | Gordon Breuer

Ein wenig Individualität hat ja noch niemandem geschadet. Sind die Möglichkeiten auch etwas eingeschränkt beim Windows Phone, was die Personalisierung angeht, so ist es mit dem Update auf Windows Phone 7.5 nun auch möglich eigene Klingeltöne anzulegen. Leider wurde diese Möglichkeit für den Benutzer nicht sehr gut dokumentiert, weshalb ich im heutigen Tipp des Tages mehrere Möglichkeiten vorstellen möchte. So kann man zum einen mit Hilfe der Zune-Software eigene Klingeltöne installieren, aber es gibt inzwischen auch zahlreiche Apps im Marketplace die diese Aufgabe übernehmen. Als letztes beschreibe ich kurz, wie Entwickler eigene Klingeltöne in ihrer App speichern können, inklusive einem kurzen Code-Beispiel. Also ein sehr umfangreicher und vielseitiger Tipp heute! :-)

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Artikel über TT.UIA in der aktuellen dotnetpro

22.10.2011 12:44:00 | Jörg Neumann

In der aktuellen Ausgabe der dotnetpro (11/2011) ist mein Artikel “Sauber getrennt und gekapselt – Aspektorientierte UI-Entwicklung mit Behaviors” erschienen. Dies ist der zweite Teil einer dreiteiligen Artikelserie in denen ich die technischen Aspekte von Thinktecture UIAnnotations erkläre.
Aus dem Abstract:

Das Entwurfsmuster MVVM trennt klar zwischen Oberfläche und Logik. Um auch noch die UI-Interaktionslogik in wiederverwendbare Form zu bringen, per Markup zuweisbar zu machen und trotzdem noch MVVM-konform zu bleiben, sind Behaviors und Trigger das richtige Mittel. dotnetpro zeigt, wie sie funktionieren.

dnp_112011

Office 365 - Ein Erfahrungsbericht

22.10.2011 03:56:00 | Thorsten Hans

Seit dem 28. Juni 2011 ist die erste Wave von Office 365 in Deutschland für jeden verfügbar. Microsoft stellt dem Anwender verschiedene Pakete zur Verfügung, mit dessen Hilfe neben Unternehmen jeder Größenordnung auch Privatpersonen den Weg in die Cloud gehen können und ein Gefühl des Neuzeitcomputings erleben können.

microsoftoffice365Die Hürde ist hierbei sehr gering. Ich brauche keinen High-End Rechner um

  • Office Web Apps
  • SharePoint Online
  • Lync Server
  • Exchange Server

betreiben zu können. Ich brauche nur einen PC und einen Webbrowser. Ok, es sollte schon eine halbwegs aktuelle Version sein. Konkreter, ich brauche auf der IE Basis mindestens einen IE 7.0 damit SharePoint Online gerendert werden kann.

Da sich Chrome ja still und leise im Hintergrund aktualisiert, kann ich lediglich die Version 14.0.8 benennen. Diese Version funktioniert nach meiner Einschätzung ebenfalls gut. Doch nun zu meiner Erfahrung mit Office365 (oder O365). In den ersten Tagen der Betaphase dachte ich „Na, den SharePoint wirst du schon nutzen! - Office und Email interessierte mich nicht sonderlich, weil ich mich dort versorgt sah...- Von daher schaust du dir die Office365 Beta einfach mal an.”

Aus einem kurzen „ansehen“, wurde innerhalb von sehr kurzer Zeit ein richtiges „anwenden“. Neben dem normalen Entwicklerkram den ich jeden Tag so mache, muss auch ich mal E-Mails schreiben oder mit Dokumenten arbeiten.

Zuvor nutzte ich mal SkyDrive , mal DropBox, mal Email,… wtf. Ich hatte keinen Standard für die Verteilung meiner Daten über meine Devices. Dank Office365 habe ich dieses Problem nicht mehr. Meine private SharePoint TeamSite kümmert sich um all die Files, die ausgetauscht werden müssen. Ich kann von jedem! Device aus (mindestens) mittels WebBrowser auf meine Files zugreifen und habe meine Dokumente im Griff und immer bei mir.


Das O365 dass schaffen würde, wusste ich.

Was ich nicht wusste, war der Charme eines eigenen Exchange-Online. Innerhalb von nur wenigen Wochen mauserte sich mein „eigener Exchange“ zu meinem „Lead Contact Storage“ und der OWA (Outlook Web Access) zu meinem „most popular email interface“.

Lead Contact Storage

Fast jeder wird das Problem kennen, entweder hat man alle Kontakte doppelt auf x Plattformen oder einen Teil der Kontakte hier und den anderen Teil dort und den dritten Teil wiederum in einer anderen „Wolke“. Dank Exchange Online habe ich all meine Kontakte nun auf Office 365 und somit sowohl auf meinem Laptop, Handy, PC oder auch auf meinem IPad.


Most popular Email Interface

Nach mehr als 6 Jahren GMail muss ich sagen, Goodbye google. Klar behalte ich meine Mailadresse, aber ich rufe dank dem Exchange Feature „Connected Accounts“ GMail automatisch ab und muss mich nur noch im OWA (Outlook Web Access) bewegen. Das OWA ist in der Version 2010 wohl das coolste und produktivste Online Mail Interface dass ich kenne.

Die Saarländische .NET UserGroup administriere ich ebenfalls über meinen O365 Account. Über einen einfachen SharePoint Designer SiteWorkflow erstelle ich automatisiert für jedes UG-Treffen die entsprechenden Aufgaben und Reminder, so dass alles mit nur wenigen Klicks erledigt ist. Lync nutze ich im Business-Context täglich, im privaten Bereich ist es noch schwierig. Hier nutze ich Lync nur mit anderen Geeks, weil Lync eher nicht auf den privaten Sektor zielt. Aber Microsoft’s Skype Deal lässt ja hoffen J


Fazit

Kurzum ich kann mit sehr wenig Aufwand meinen gesamten private und auch beruflichen Bedürfnisse abdecken und das Ganze zu einem mehr als günstigen Preis. Der Preis ist meiner Meinung nach nicht zu schlagen. Klar gibt es überall bestimmte Dienste kostenlos, allerdings gibt es diese Produktivität und diese Integration nirgends!

Neben der reinen Anwendung entwickele ich natürlich auch auf SharePoint Online (SPO) und integriere O365 mit Azure. Diese Themen werden in der nächsten Zeit von mir auch stärker angesprochen, weil aus Developer-Sicht aktuell wenig Community Content vorhanden ist und dies schleunigst geändert werden muss.

 

Technorati Tags:
DotNetKicks-DE Image

WP-Tipp #035 – Internet Explorer 9

21.10.2011 10:00:00 | Gordon Breuer

Eine der am häufigsten eingesetzten Anwendungen auf einem Smartphone ist - neben dem Nachrichtenaustausch per Telefon oder Chat - sicherlich der Webbrowser. Hier kann man unabhängig spezieller Apps Nachrichten schnell lesen, Videos gucken, ... ich muss wohl niemandem die Vorzüge eines schnellen und gut arbeitenden Webbrowsers erläutern! Das Windows Phone 7.5 hat inzwischen einen extrem leistungsfähigen Internet Explorer 9 mit an Bord, der hier neue Maßstäbe an Geschwindigkeit und Darstellung gesetzt hat.

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Whiteboard Friday mit Duane Forester

21.10.2011 07:32:18 | Stephan Walcher

Im heutigen SEOmoz Whiteboard Friday hat Rand Fishkin, Duane Forester von Bing als Gast. Thema sind zum Beispiel die neuen Funktionen in den Bing Webmaster Tools wie E-Mail Alerts oder das Ende des Yahoo Site Explorer. if(!navigator.mimeTypes['application/x-shockwave-flash'] || navigator.userAgent.match(/Android/i)!==null)Wistia.VideoEmbed('wistia_559549',600,337,{videoUrl:'http://seomoz-cdn.wistia.com/deliveries/3c2d01e437695291b73439ca5abac1d5f3b60e2c.bin',stillUrl:'http://seomoz-cdn.wistia.com/deliveries/2fa89b156f2c29b45b1d5aaed07c0b8667b6901a.bin',distilleryUrl:'http://distillery.wistia.com/x',accountKey:'wistia-production_3161',mediaId:'wistia-production_559549',mediaDuration:1127}) var socialJQuery = jQuery.noConflict(true);new SocialBar("wistia_559549_social_969", {buttons:["embed","stats","wistia"],url:"http://www.seomoz.org/blog/pump-up-the-bing-whiteboard-friday",title:"Pump Up The Bing - Whiteboard Friday | SEOmoz",badgeUrl:"http://wistia.com",embedCode:"%3Cobject%20width%3D%22600%22%20height%3D%22337%22%20id%3D%22wistia_559549%22%20classid%3D%22clsid%3AD27CDB6E-AE6D-11cf-96B8-444553540000%22%3E%3Cparam%20name%3D%22movie%22%20value%3D%22http%3A//seomoz-cdn.wistia.com/flash/embed_player_v1.1.swf%22/%3E%3Cparam%20name%3D%22allowfullscreen%22%20value%3D%22true%22/%3E%3Cparam%20name%3D%22allowscriptaccess%22%20value%3D%22always%22/%3E%3Cparam%20name%3D%22wmode%22%20value%3D%22opaque%22/%3E%3Cparam%20name%3D%22flashvars%22%20value%3D%22videoUrl%3Dhttp%3A//seomoz-cdn.wistia.com/deliveries/12a88023435cbbcba858c853aefee4961a1bafc3.bin%26stillUrl%3Dhttp%3A//seomoz-cdn.wistia.com/deliveries/2fa89b156f2c29b45b1d5aaed07c0b8667b6901a.bin%26unbufferedSeek%3Dtrue%26controlsVisibleOnLoad%3Dfalse%26autoPlay%3Dfalse%26endVideoBehavior%3Ddefault%26playButtonVisible%3Dtrue%26embedServiceURL%3Dhttp%3A//distillery.wistia.com/x%26accountKey%3Dwistia-production_3161%26mediaID%3Dwistia-production_559549%26mediaDuration%3D1127%26hdUrl%3Dhttp%3A//seomoz-cdn.wistia.com/deliveries/9f1773db217603ce59724c2b7d6b1a1147ca0afd.bin%22/%3E%3Cembed%20src%3D%22http%3A//seomoz-cdn.wistia.com/flash/embed_player_v1.1.swf%22%20width%3D%22600%22%20height%3D%22337%22%20name%3D%22wistia_559549%22%20type%3D%22application/x-shockwave-flash%22%20allowfullscreen%3D%22true%22%20allowscriptaccess%3D%22always%22%20wmode%3D%22opaque%22%20flashvars%3D%22videoUrl%3Dhttp%3A//seomoz-cdn.wistia.com/deliveries/12a88023435cbbcba858c853aefee4961a1bafc3.bin%26stillUrl%3Dhttp%3A//seomoz-cdn.wistia.com/deliveries/2fa89b156f2c29b45b1d5aaed07c0b8667b6901a.bin%26unbufferedSeek%3Dtrue%26controlsVisibleOnLoad%3Dfalse%26autoPlay%3Dfalse%26endVideoBehavior%3Ddefault%26playButtonVisible%3Dtrue%26embedServiceURL%3Dhttp%3A//distillery.wistia.com/x%26accountKey%3Dwistia-production_3161%26mediaID%3Dwistia-production_559549%26mediaDuration%3D1127%26hdUrl%3Dhttp%3A//seomoz-cdn.wistia.com/deliveries/9f1773db217603ce59724c2b7d6b1a1147ca0afd.bin%22%3E%3C/embed%3E%3C/object%3E%3Cscript%20src%3D%22http%3A//seomoz-cdn.wistia.com/embeds/v.js%22%20charset%3D%22ISO-8859-1%22%3E%3C/script%3E%3Cscript%3Eif%28%21navigator.mimeTypes%5B%27application/x-shockwave-flash%27%5D%20%7C%7C%20navigator.userAgent.match%28/Android/i%29%21%3D%3Dnull%29Wistia.VideoEmbed%28%27wistia_559549%27%2C600%2C337%2C%7BvideoUrl%3A%27http%3A//seomoz-cdn.wistia.com/deliveries/3c2d01e437695291b73439ca5abac1d5f3b60e2c.bin%27%2CstillUrl%3A%27http%3A//seomoz-cdn.wistia.com/deliveries/2fa89b156f2c29b45b1d5aaed07c0b8667b6901a.bin%27%2CdistilleryUrl%3A%27http%3A//distillery.wistia.com/x%27%2CaccountKey%3A%27wistia-production_3161%27%2CmediaId%3A%27wistia-production_559549%27%2CmediaDuration%3A1127%7D%29%3C/script%3E"}) Link: Pump [...]

Mit SQL Server Reporting Services Link in einem neuen Fenster öffnen

20.10.2011 21:42:26 | Thomas Schissler

Die SSRS bieten ein nettes Feature womit sich eine Text Box und andere Controls als Link nutzen lassen. Dazu einfach bei der Textbox unter Action die Option “Go to URL” auswählen.

SNAGHTML1fd585c9

Meine Herausforderung war, dass ich wollte, dass der Link die Zielseite in einem neuen Fenster öffnet, also das selbe wie bei einem <a href=”…” target=”_blank”>. Bei den SSRS muss man allerdings hier zu einem kleinen JavaScript greifen. Der Expression für die URL lautet dann beispielsweise:

="javascript:void(window.open(""http://MyTFS:8080/tfs/web/UI/Pages/WorkItems/WorkItemEdit.aspx?id=" & Fields!System_Id.Value & "&pguid=63302ade-299c-4949-a7ea-351ddd310a32""))"

Das Pronominal-Stöckchen: Duzen oder Siezen?

20.10.2011 17:47:00 | Gordon Breuer

Das gab es schon länger nicht mehr: Ein Blogstöckchen zum Aufsammeln für jedermann! Die Fragestellung klingt trivial: "Blogleser Duzen oder Siezen?". Wenn man sich aber ein wenig intensiver mit der Fragestellung beschäftigt und sich versucht in den Leser zu setzen, wie er die eine oder andere Variante verstehen könnte, wird es schon etwas komplizierter. Ein Blogposting, welches explizit zum Diskutieren und Austauschen von Meinungen anregen soll! Gerne in den Kommentaren, noch lieber im eigenen Blog-Posting und für den Quickie zwischendurch eine einfache Umfrage.

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

WP-Tipp #034 – Multitasking, oder: Eine im Vordergrund, fünf im Sinn

20.10.2011 08:00:00 | Gordon Breuer

Das Thema "Multitasking" beim Windows Phone hat von Anfang an viele Gemüter beschäftigt. Die Anwender weil sie es nicht hatten, und die Entwickler weil das von Microsoft vorgestellte System ungewohnt und nicht immer leicht zu implementieren war. Doch diese Zeiten sind mit der Version 7.5 endgültig vorbei. Und nachdem gestern das Update auf die aktuelle Windows Phone Version für alle Benutzer freigeschaltet wurde sollte auch bald jeder in den Genuß des lange ersehnten Features kommen können!

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Lab Management Environment Policy anpassen

19.10.2011 15:58:03 | Thomas Schissler

Beim Deployment einer neuen Environment kommt folgende Fehlermeldung:

image

TF259115: Team Foundation Server could not find any suitable host to deploy the virtual machine: HPC Template.
Contact your administrator to fix the issues on the hosts below. (Hosts are listed in brackets)
1. Memory requirement of the virtual machine(s) exceeds the available host resources. The placement policy for this host group is set to be conservative and hence virtual machines that are in stopped state are also accounted as consuming host resources. Your administrator can change this policy by running the TfsLabConfig tool. (SarHyperV04)

Der Grund für die Meldung liegt darin, dass das Lab Management zunächst davon ausgeht, dass auf dem Hyper-V Host ausreichend Ressourcen (RAM) verfügbar sein müssen um alle Environments gleichzeitig zu starten um hier auf Nummer sicher zu gehen. Das ist allerdings für die Praxis eher ungeeignet. Hier möchte man auf einem Host mehrere, teilweise sogar viele Environments anlegen von denen dann aber immer nur einzelne laufen.

Glücklicherweise kann man das Verhalten aber konfigurieren. Dazu geht man einfach auf den TFS App-Tier und gibt dort folgenden Befehl ein:

tfsconfig lab /settings /CollectionName:<Collection> /hostGroup /edit /name:<Host Group Name> /labenvironmentplacementpolicy:aggressive

Dabei ist zu beachten, dass für den CollectionName auch wirklich nur der Name und nicht wie an anderen Stellen üblich die URI angegeben wird.

Weitere Infos finden sich hier: http://msdn.microsoft.com/en-us/library/dd547199(VS.100).aspx

Collaboration Days 2011

19.10.2011 15:45:13 | Thorsten Hans

Ebenfalls im November 2011 finden zum zweiten mal die Collaboration Days in Luzern (CH) statt. Am 29. und 30.11.2011 veranstaltet die SharePoint Community Schweiz die Neuauflage der in 2010 erfolgreich gestarteten Community Konferenz.

 

SNAGHTML1914bf5

Anmelden könnt ihr euch noch auf der Konferenzwebseite www.collaborationdays.ch !

Ich werde 2 Vorträge zum besten geben

  • SharePoint Scripting Ninjas (mit Christian Glessner)
  • LINQ to SharePoint 2010 Best Practices

Eine vorläufige Agenda gibt es unter http://www.collaborationdays.ch/SitePages/Agenda.aspx

 

DotNetKicks-DE Image

ALMDays 2011

19.10.2011 15:35:50 | Thorsten Hans

Die neue TeamConf für agile Softwareentwicklung

So der Slogan der ersten ALM Days in Deutschland. 4 Tage vollgepackt mit Sessions, Workshops und Networking rund um das Thema Application Lifecycle Management.

Vom 22.11.2011 bis einschließlich 25.11.2011 finden die ALM Days in München statt. Neben bekannten Speakern aus dem In- und Ausland werde auch ich im Rahmen des “Technical Days” eine Session halten.3

SNAGHTML18bcfa5

 

In “Continuous Integration und Build Automatisierung für SharePoint Projekte” werde ich zeigen wie man mit dem TFS 2010 einfach SharePoint Projekte serverseitig builden kann. Darüber hinaus spielen auch die Buildautomatisierung ohne TFS, CodedUI Tests für SharePoint und Deployment Automatisierung eine Rolle.

Unter www.teamconf.de könnt Ihr euch für das Event noch anmelden.

 

DotNetKicks-DE Image

Microsoft Office Community Day 2011

19.10.2011 15:21:56 | Thorsten Hans

Am 04.11.2011 findet in Unterschleißheim, in der deutschen Microsoft Zentrale, der Office Commuity Day  2011 statt. Organisiert von Lars Keller und Mario Meri-Huber dreht sich die gesamte Konferenz um die Entwicklung von Lösungen unter Verwendung von

  • VSTO
  • OpenXML
  • SharePoint

SNAGHTML176ef64

 

Die Teilnahme am Event, wie auch die Snacks und Getränke sind kostenlos. Spenden sind allerdings auch gerne gesehen, damit die Eventserie auch in Zukunft weiter wachsen kann.

Ich werde im Rahmen des OBA Day 2011 einen Vortrag zum Thema “Office 365 Development” halten. Also, nichts wie anmelden, lasst euch den OBA Day 2011 nicht entgehen!

http://www.oba-day.de

Technorati Tags: ,,
DotNetKicks-DE Image

WP-Tipp #033 – Dein Avatar im Handy

19.10.2011 08:00:00 | Gordon Breuer

Im Tipp des Tages #029 habe ich beschrieben, wie man sich mit seinem Windows Phone "unterhalten" kann. Doch es hat nicht bloß eine Stimme, sondern auch ein animiertes 3D-Abbild! Seit Windows Phone 7.5 ist der persönliche Avatar im Spiele-Hub sogar sauber gerendert und wird nicht mehr als verpixelte Standgrafik dargestellt. Sogar Interaktionen sind mit ihm möglich und von Zeit zu Zeit ein neues Aussehen und neue Kleidung auszusuchen macht den Avatar gleich viel individueller. Schauen wir uns also im heutigen Tipp einmal gemeinsam an, welche Möglichkeiten man hier hat.

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

StyleCop Analyse im Team Build

19.10.2011 01:39:28 | Thomas Schissler

Im Team Build lässt sich die Statische Code-Analyse (FxCop) recht einfach aktivieren. 

image

Leider geht es mit StyleCop nicht ganz so einfach. Eine Möglichkeit ist, in den Projektdateien die StyleCop-Analyse einzutragen und dann auf dem Build-Rechner MSBuild die StyleCop-Analyse auszuführen (siehe http://stylecop.codeplex.com/wikipage?title=Setting%20Up%20StyleCop%20MSBuild%20Integration&referringTitle=Documentation)

Alternativ kann man sich auch einfach eine Build Activity bauen die die StyleCop Analyse ausführt. Eine solche Activity habe ich am Ende dieses Posts zum Download bereitgestellt. Um diese zu nutzen entpackt man einfach die DLLs. Diese werden dann in der Versionsverwaltung abgelegt. Diesen Pfad muss man anschließend auf dem Build-Controller registrieren.

image

SNAGHTML161d9502

SNAGHTML161e4efd

Nun können wir im Visual Studio ein Projekt anlegen. Hier referenzieren wir die DLLs aus der ZIP-Datei und kopieren unseren Build-Workflow hinein. Nun können wir im Workflow ein neues Argument vom Typ StyleCopSettings anlegen.

image

Dann brauchen wir noch eine Variable

image

Nun können wir den Workflow erweitern.

image

 
<If Condition="[Not
String.IsNullOrEmpty(StyleCopSettings.StyleCopSettingsFile) And StyleCopSettings.PerformStyleCopAnalysis]" DisplayName="If
StyleCop Settings not empty run StyleCop">    
<If.Then>      
<Sequence>        
<sap:WorkflowViewStateService.ViewState>          
<scg:Dictionary x:TypeArguments="x:String,
x:Object">            
<x:Boolean x:Key="IsExpanded">True</x:Boolean>          
</scg:Dictionary>        
</sap:WorkflowViewStateService.ViewState>        
<mtbwa:ConvertWorkspaceItem DisplayName="Convert
Server Path to Local Path" mtbwt:BuildTrackingParticipant.Importance="Low" 
Input="[StyleCopSettings.StyleCopSettingsFile]" Result="[StyleCopLocalSettingsFile]" Workspace="[Workspace]" />         <absa:StyleCopVerifier AnalysisResults="{x:Null}" ViolationCount="{x:Null}" SettingsFile="[StyleCopLocalSettingsFile]" SourcesDir="[SourcesDirectory]" />       </Sequence>     </If.Then>   </If>

Wenn wir nun auf Basis dieses Workflows eine Build Definition anlegen, können wir die StyleCop Settings dort einstellen und unser Build ob unsere StyleCop Rules auch alle eingehalten werden. .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; }

image

>

WP-Tipp #032 – Kontakte in Gruppen zusammenfassen

18.10.2011 08:00:00 | Gordon Breuer

Das Mango-Special von letzter Woche ist zwar vorbei, doch natürlich werde ich weiterhin neue Funktionen im täglichen Tipp besprechen und vorstellen die exklusiv "Mango" vorbehalten sind. Im heutigen Tipp geht es daher um die neue Gruppenfunktion für Ihre Kontakte, die eine schnelle Zusammenfassung von Personen unter einem Thema ermöglicht und das Filtern Ihrer Neuigkeiten vereinfacht.

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Windows Intune jetzt mit Software Deployment [Funktionsupdate]

17.10.2011 18:16:04 | Kay Giza

Kennen Sie Windows Intune? Windows Intune ist die Desktop-Verwaltung und Schutzlösung aus der Cloud von Microsoft. Man kann mit Windows Intune beispielsweise die PC seiner Bekannten & Familie (Sie kennen das sicherlich - man ruft Sie immer an und fragt um Hilfe ;-)- das erleichtert jetzt ungemein mit Intune) oder gar Ihres Unternehmens verwalten und steuern. Denn Windows Intune unterstützt Unternehmen mit Windows Cloud-Diensten und Windows 7 beim Verwalten und Schützen von PCs. Mit Windows Intune können Sie, beispielsweise als IT-Mitarbeiter oder IT-Dienstleister von Remote-Standorten aus eine Reihe wesentlicher Verwaltungsaufgaben erledigen, wozu das Installieren von Windows-Updates, der Schutz vor Schadsoftware und die Bestandsverwaltung gehören, sodass IT-Administratoren und Endbenutzer praktisch an jedem Ort produktiv bleiben. So können beispielsweise PC-Probleme unabhängig vom eigenen Standort oder dem der Benutzer sofort behoben werden. Zudem bietet Windows Intune zuverlässigen Schutz vor Bedrohungen durch aktuelle Schadsoftware und Rootkits dank der in Windows Intune enthaltenen Endpoint Protection. Ab heute, 17. Oktober 2011 ist das erste Funktions-Update von Windows Intune verfügbar, das sowohl bestehenden als auch neuen Kunden automatisch zuteil wird. Neben Verbesserungen an bestehenden Funktionen sind mit dieser Aktualisierung viele nützliche Features hinzugekommen... [... mehr in diesem Blogeintrag auf Giza-Blog.de]

This post is powered by www.Giza-Blog.de | Giza-Blog.de: RSS Feed
© Copyright 2006-2011 Kay Giza. All rights reserved. Legal
Subscribe

WP-Tipp #031 – Mit einem Wisch ist alles weg

17.10.2011 08:00:00 | Gordon Breuer

Wo man früher noch auf Cursor-Tasten und Steuerkreuze gesetzt hat, kommen heute bei der Bedienung moderner Smartphones fast ausschliesslich nur noch Gestern auf dem Touchscreen zum Einsatz. In der Regel ist es eindeutig wann man diese einsetzen kann. Doch manchmal haben sich die Designer etwas cleveres ausgedacht, an das der Benutzer normalerweise gar nicht denkt. Schauen wir uns heute deshalb mal einen ganz trivialen und alltäglichen Einsatz von Gesten an!

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Windows Phone 7: Issue with Textblock and Textbox rendering

16.10.2011 16:39:00 | Patric Schouler

There is an issue with Silverlight for Windows Phone if you try to show a Textblock or Textbox with a lot of text. In my current Windows Phone 7 project with have a listbox with comments and with large text sizes (above 3300 in our test cases) we have the effect that the space for the text is rendered but not all characters.

The result looks like this:

 image

This happens if the surrounding container object (for example Grid or Stackpanel) has a defined width and the Textbox or Textblock has the VerticalAlignment set to “Stretch”.

The XAML definition looks like this:

   1:  <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
   2:              <ListBox x:Name="MainListBox" Margin="0,0,-12,0" ItemsSource="{Binding Items}" SelectionChanged="MainListBox_SelectionChanged">
   3:                  <ListBox.ItemTemplate>
   4:                      <DataTemplate>
   5:                        <StackPanel Margin="0,0,0,17" Width="432" >
   6:                            <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
   7:                            <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" 
   8:                                       VerticalAlignment="Stretch"
   9:                                       Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
  10:                        </StackPanel>
  11:                      </DataTemplate>
  12:                  </ListBox.ItemTemplate>
  13:              </ListBox>
  14:   </Grid>

The workaround for this problem is to truncate the text after 3300 characters or don’t use a fix width for the container of the Textbox or Textblock element.

The behaviour is the same in Windows Phone 7.0 and Windows Phone 7.1 projects.

Windows Phone 8–Fast resume

16.10.2011 16:39:00 | Patric Schouler

My favourite change for Windows Phone 8 are the changes for a better performance for starting a app. Except for code optimizations in the execution layer of Windows Phone 8 apps Microsoft also changed the startup and resuming behavior of Windows Phone 8 apps. For me is this one of the mayor changes of Windows Phone 8, because it brings with one declaration (see later) such an big effect for the user experience.

History of starting/resuming apps

First Micosoft introduce with Windows 7.0 the tombstoning – not so many people understands it and implement it correctly. With Windows 7.5 (Mango release) they changed the behaviour, that if you use the start button all applications which could hold in memory have a fast resuming behaviour. With the task switcher (press and hold the back button) the user can switch to the applications which are still in memory. Problem: Only power users has known of this feature and if the user start a app with a click on the start screen or the app list, a new instance of the app will be started. Result: bad user experiience.

The Solution with Windows Phone 8

With Windows Phone 8 Microsoft has changed now the behaviour of a Back-Button click on the last page of an application. This will not longer throw away the instance of your Windows Phone 8 application but put it in the memory stack, too. If the user starts the application from any point and the application is still in memory, it will be started in the resume mode – great stuff!

All you have to do is to declare a new ActivationPolicy in the WMAppManifest.xml of your solution.

    <Tasks>
      <DefaultTask  Name ="_default" NavigationPage="MainPage.xaml" ActivationPolicy="Resume"/>
    </Tasks>

The workaround for this problem is to truncate the text after 3300 characters or don’t use a fix width for the container of the Textbox or Textblock element.

The behaviour is the same in Windows Phone 7.0 and Windows Phone 7.1 projects.

Windows Phone 8–Tiles and lock screen notification

16.10.2011 16:39:00 | Patric Schouler

The new Windows Phone 8 comes with 3 types of live tiles, represented by the following classes:

  • FlipTileData – this is the regular live tile that we are used to seeing in Windows Phone 7
  • IconicTileData – similar to the FlipTile but follows more closely the Windows Phone design principles and displays an icon instead of an image
  • CycleTileData – can cycle up to 9 images, similar to the Pictures live tile Windows Phone 8 Large Tile

Live tiles now also come in three sizes: small, medium and large. You can control if your primary tile supports the large size in the WMAppManifest.xml file (see screenshot).

Additional it is now possible for apps to display notifications on the lock screen. The information comes from the primary tile and you can enable this feature by editing the WMAppManifest.xml file. When this functionality is enabled, the user can select your app as notification app in the phone settings page. After this your primary tile notifications (the counter) will be shown at the lock screen with the referenced image in DeviceLockImageURI of your WMAppManifest.xml file.

The tile size is selected by the user from the start screen, but you can control which sizes your app supports. For a good user experience you should provide a separate image for each size.

The required images sizes are:

Flip and Cycle

Iconic

Small

159 × 159 px

110 × 110 px

Medium

336 × 336 px

202 × 202 px

Wide

691 × 336 px

N/A

You can create or update a tile using either XML or code. There is no way to know which tile size your customer has pinned to the start screen, so you should include all elements. The initial template is defined in the WMAppManifest.xml, but you can change the tile content at runtime.

Change the primary tile

Sample to change the counter or background text of the primary tile:

 FlipTileData primaryTileData = new FlipTileData();
 primaryTileData.Count = count;
 primaryTileData.BackContent = content;
 ShellTile primaryTile = ShellTile.ActiveTiles.First();
 primaryTile.Update(primaryTileData);
The workaround for this problem is to truncate the text after 3300 characters or don’t use a fix width for the container of the Textbox or Textblock element.

The behaviour is the same in Windows Phone 7.0 and Windows Phone 7.1 projects.

Windows Phone 8–LongListSelector SelectedItem not bindable

16.10.2011 16:39:00 | Patric Schouler

Microsoft has now moved the LongListSelector to the basic phone controls, but the LongListSelector control has still the same issue as it was part of the Windows Phone Toolkit. They have forgotten to declare a DependencyObject for the SelectedItem property so you can not bind the SelectedItem property. Or maybe they want to be compatible with this bug :-)

To resolve this I decided in my current project to define a new class LongListSelector in my project namespace which is derived from the LongListSelector control. Here I can define a dependency property and a LongListSelector_SelectionChanged method to handle the binding. It is is important to declare the property in the new class as New, because we want to override the SelectedItem property in the Microsoft control.

Here is my code to do this:

public class LongListSelector : Microsoft.Phone.Controls.LongListSelector
    {
        public LongListSelector()
        {
            SelectionChanged += LongListSelector_SelectionChanged;
        }

        void LongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            SelectedItem = base.SelectedItem;
        }

        public static readonly DependencyProperty SelectedItemProperty =
            DependencyProperty.Register(
                "SelectedItem",
                typeof(object),
                typeof(LongListSelector),
                new PropertyMetadata(null, OnSelectedItemChanged)
            );

        private static void OnSelectedItemChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var selector = (LongListSelector)d;
            selector.SelectedItem = e.NewValue;
        }

        public new object SelectedItem
        {
            get { return GetValue(SelectedItemProperty); }
            set { SetValue(SelectedItemProperty, value); }
        }
    }
The workaround for this problem is to truncate the text after 3300 characters or don’t use a fix width for the container of the Textbox or Textblock element.

The behaviour is the same in Windows Phone 7.0 and Windows Phone 7.1 projects.

Windows Phone 8–ListPicker SelectedItem not bindable

16.10.2011 16:39:00 | Patric Schouler

At this week the ListPicker is the second control with issues for binding the SelectedItem property (see http://dotnet-redzone.blogspot.de/2012/11/windows-phone-8longlistselector.html). At this time I tried a second problem solution and made the SelectedIndex my binding property. In my Viewmodel I have to define therefore a method which maps my SelectedIndex to the instance in my list which is populated in the ListPicker (the WorkTasks ObservableCollection):

private int GetWorkTaskIndexFromId(string id)
        {
            for (int index = 0; index < this.WorkTasks.Count; index++)
            {
                if (this.WorkTasks[index].UniqueId == id)
                {
                    return index;
                }
            }

            return 0;
        }The workaround for this problem is to truncate the text after 3300 characters or don’t use a fix width for the container of the Textbox or Textblock element.

The behaviour is the same in Windows Phone 7.0 and Windows Phone 7.1 projects.

Windows Phone 8– WorkTime app weekend

16.10.2011 16:39:00 | Patric Schouler

Normally this weekend I planned to participate a Duathlon, but because of my current cold I switch the plan and made my own Windows Phone 8 Hackathon weekend (the same as the last one).

Me as designer, programmer and product owner of the nice new app WorkTime. Windows Phone 8 development with all the fun and pains, if you want to implement pattern like MVVM straight forward. Especially this week I fight with a general validation mechanism. I will post some of my approaches to implement a very smart solution at the next days:

Validation code is than looking in the view model constructor like this:

            AddValidationFor(() => CustomerName)
               .When(x => string.IsNullOrEmpty(x._customerName))
               .Show(AppResources.InvalidNotNullOrEmpty);

            AddValidationFor(() => OrderName)
                .When(x => string.IsNullOrEmpty(x._orderName))
                .Show(AppResources.InvalidNotNullOrEmpty);

            AddValidationFor(() => ProjectHoursMax)
              .When(x => x._projectHoursMax<=0)
              .Show(AppResources.InvalidZeroNotAllowed);

            AddValidationFor(() => Start)
            .When(x => x._end <= x._start)
            .Show(AppResources.InvalidStartIsGreaterThanEnd);

Here are some screenshots of the WorkTime app (sorry in German, but English will be also supported. Besides multi language support with sharing Resources among assemblies will be another next post – I need more time :-():

wp_ss_20121202_0016wp_ss_20121202_0007wp_ss_20121202_0008wp_ss_20121202_0009wp_ss_20121202_0010
The workaround for this problem is to truncate the text after 3300 characters or don’t use a fix width for the container of the Textbox or Textblock element.

The behaviour is the same in Windows Phone 7.0 and Windows Phone 7.1 projects.

Windows Phone 8–Usage of Windows.Storage

16.10.2011 16:39:00 | Patric Schouler

If you want to implement a file access operation for Windows 8 you have the spoilt of choice: Old style with System.IO.IsolatedStorage or new style with the new WinRT API and classes in the Windows.Storage namespace. The first one will work for Windows Phone 7 and the second one only for Windows Phone 8 but also for a Windows 8 operating system and Metro styled apps.

I tried both solutions and here are the two code fragments which loading a file in a folder and deserialize them to a List of type <T>:

The solution using Isolated Storage:

        public static List<T> LoadList<T>(string folderName, string dataName) where T : class
        {
            var retval = new List<T>();
 
            if (!IsoStore.DirectoryExists(folderName))
            {
                IsoStore.CreateDirectory(folderName);
            }
 
            string fileStreamName = string.Format("{0}\\{1}.dat", folderName, dataName);
 
            using (var stream = new IsolatedStorageFileStream(fileStreamName, FileMode.OpenOrCreate, IsoStore))
            {
                if (stream.Length > 0)
                {
                    var dcs = new DataContractSerializer(typeof(List<T>));
                    retval = dcs.ReadObject(stream) as List<T>;
                }
            }
            return retval;
        }
The workaround for this problem is to truncate the text after 3300 characters or don’t use a fix width for the container of the Textbox or Textblock element.

The behaviour is the same in Windows Phone 7.0 and Windows Phone 7.1 projects.

Windows Phone 7–Mango süßsauer

15.10.2011 12:20:00 | Patric Schouler

Windows Phone Mango

 

Mein neuster Artikel in der Mobile Technology ist seit Freitag an den Kiosken erhältlich. Entgegen des Arbeitstitels “Mango süßsauer” geht es hier nicht um asiatische Kochspezialitäten, sondern um eine kurze Darstellung der neusten Features für  Entwickler bei Nutzung der Windows Phone Developer Tools 7.1 für die Entwicklung von “Mango”-Apps. Süßsauer deshalb, weil nicht nur die Neuerungen beschrieben werden, sondern auch ein Auge auf noch Ausbaufähiges zur Windows Phone Entwicklung gelegt wird.

WP-Tipp #030 – bing findet mehr als nur Websites

14.10.2011 08:00:00 | Gordon Breuer

Viele achten bei der Wahl einer mobilen Plattform vor allem auf die Anzahl der zur Verfügung stehenden Apps (beim Windows Phone immerhin >30.000). Doch bevor man sich durch diese Masse an Anwendungen wühlt, lohnt ein Blick was bereits das Smartphone von Haus aus alles kann. Zugegeben, das ist bei einem iPhone oder Android-Gerät nicht unbedingt viel, aber ich behaupte, dass 80% der am häufigsten verwendeten Funktionen bei einem Windows Phone schon von Haus aus fest integriert sind! Einen kleinen Teil hiervon werden wir uns im heuteigen Tipp des Tages ansehen. Viel Spaß beim Lesen und Ausprobieren am Wochenende!

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

WP-Tipp #029 – Viele Kleinigkeiten, die das Gesamtbild abrunden

13.10.2011 08:00:00 | Gordon Breuer

Oft sind es die Kleinigkeiten, die darüber entscheiden ob wir etwas als besonders gelungen oder eher nervtötend betrachten. In der ersten Version vom Windows Phone gab es noch viele Kanten und Ecken, an die man gestoßen ist bei der alltäglichen Bedienung. Doch Microsoft hat mit "Mango" hier sehr viel nachgebessert und optimiert! Verschaffen wir uns heute einen kurzen Überblick über einige dieser Detailverbesserungen, wie beispielsweise Verknüpfte E-Mail Konten, Spracherkennung und die Verlaufs-Historie bei den Kontakten.

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Treffen der .NET Usergroup Dresden

12.10.2011 23:01:00 | Martin Hey

Das Oktober-Treffen der .NET Usergroup Dresden wird am 27.10.2011 in den Räumen der T-Systems MMS stattfinden. Das Treffen beginnt wie gewohnt um 18:00 Uhr. Detaillierte Informationen zum Termin selbst und eine Möglichkeit zur Anmeldung finden sich auf der Seite der Usergroup.

Thematisch wird es an diesem Abend um die Neuigkeiten gehen, die Microsoft im letzten Monat auf der Build-Konferenz in Anaheim vorgestellt hat - und im speziellen um Windows 8 und die Anwendungsentwicklung für das neue Betriebssystem. Peggy und Lars werden uns durch den Abend führen und sowohl auf die Grundlagen eingehen als auch anhand von ein paar Beispielen zeigen, wie man vorgehen kann.

Im Anschluss daran wird es wieder die Möglichkeit zum gemeinsamen netzwerken geben.

Es gibt aber noch einen weiteren Grund zur Freude: Die Xing-Gruppe der .NET Usergroup Dresden hat seit heute offiziell 111 Mitglieder. Um das zu feiern sponsort Unique Software der Usergroup drei Bücher zu den Themenbereichen Webentwicklung, HTML 5 und WPF, die an diesem Abend unter den anwesenden Teilnehmern verlost werden.

Windows Azure Pathfinder - Kostenfreie Betreuung für Cloud-Softwarehersteller

12.10.2011 18:01:21 | Peter Kirchner

Wir unterstützen Sie in vier Phasen Ihre Lösung cloud-ready zu machen. Die Teilnahme ist kostenfrei und unverbindlich, d.h. Sie können nach Belieben die Betreuungprozess beenden.
 
Sie müssen keinerlei Vorgaben oder Voraussetzungen dafür erfüllen. Ihr Interesse ein Cloud-Service auf Basis der Windows Azure Plattform aufzubauen reicht vollkommen. Sie können durch das kostenfreie Self-Assessment im 1. Schritt in den Betreuungsprozess von Windows Azure Pathfinder eintreten.

DE Azure Pathfinder Steps

Ein direkter Ansprechpartner begleitet Sie, durch konkrete Angebote und Unterstützungsmaßnahmen mit dem Ziel gemeinsam mit Ihnen Ihr Cloud-Service Business aufzubauen.
 
Starten Sie jetzt durch. So geht's:

DE Azure Path Info Informieren Sie sich über die Cloud-Technologien und die Azure-Plattform von Microsoft. Erfahren Sie zu Beginn mit dem Self-Assesment der Experton Group AG mehr über die Cloud-Readiness Ihres Unternehmens.
DE Azure Path Evaluate Evaluieren Sie die Vorteile der Cloud Geschäftsmodelle für Ihr Unternehmen. Der Cloud Geschäftsmodell-Kalkulator berechnet Ihnen die Kosten und Erlöse verschiedener Azure-Geschäftsmodelle.
DE Azure Path Develop Entwickeln Sie eigene Cloud Services mit unseren Werkzeugen.
DE Azure Path Sell Vermarkten und Verkaufen Sie Ihre Cloud-Services über den Windows Azure-Marktplatz sowie mit unseren exklusiven Marketing Angeboten.

  
Informieren Sie sich gleich und machen Sie kostenlos mit!

WP-Tipp #028 – Es gibt mehr als nur SMS und E-Mail: Ihr Handy als universelle Kommunikationszentrale

12.10.2011 08:00:00 | Gordon Breuer

Vor einigen Wochen, im Tipp #005 "Facebook auf dem Windows Phone", habe ich schon einmal die nahtlose Integration der Facebook-Dienste im Windows Phone erläutert. Seit dem Update auf Windows Phone 7.5 "Mango" ist man hier noch mal einen riesen Schritt weiter gegangen. So sind nicht nur zahlreiche weitere Dienste dazugekommen, auch wurden alle diese Dienste ebenso nahtlos in das Windows Phone integriert, als wenn es sich um interne Funktionen wie bsp. das Senden und Empfangen von SMS handelt! Die Integration ist dabei so umfangreich geworden, dass selbst der etwas längere Tipp des Tages heute nur an der Oberfläche kratzen kann. Viel Spaß beim Lesen!

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Einprägsames Office365 OWA

11.10.2011 13:35:00 | Martin Hey

Wer von unterwegs auf seinen Exchange zugreifen möchte und keine Lust hat, lange Mails auf dem Smartphone zu schreiben, der verwendet sicher den Outlook Web Access. Bei SaaS-Produkten wie Office365 hat man nun selbst recht wenig Einfluss auf die Konfiguration des Servers und so wird auch hier der Servername bei der Einrichtung von Microsoft festgelegt. Möchte man sich nun mit dem eigenen OWA verbinden, muss man sich diesen Servernamen merken, auch wenn man inzwischen nicht mehr die Standard-Domain verwendet, sondern die eigene Domain hinterlegt hat.

Muss man nicht, wie ich heute gelernt habe.

Zum einen vergibt Microsoft selbst einen Alias. Unter der Url http://outlook.com/contoso.com - wobei contoso.com durch die eigene Domain ersetzbar ist ;) - kann man Zugriff auf seine persönliche Instanz erhalten. Diese Url ist schon wesentlich einprägsamer als der interne Servername.

Zum anderen hat man, so man die Einrichtung für den Zugriff aus Outlook vorgenommen hat, einen CNAME-Eintrag für seine Domain vorgenommen (http://autodiscover.contoso.com). Unter dieser Url ist nicht nur das Desktop-Outlook in der Lage, die Konfiguration automatisch vorzunehmen, sondern sie erlaubt auch Zugriff auf den eigenen OWA.

Beide Möglichkeiten habe ich in der Dokumentation von Office365 nicht gefunden (zumindest den ersten hätte ich dort erwartet), aber vielleicht hab ich auch nur an der falschen Stelle gesucht.

WP-Tipp #027– Mail-Unterhaltungen gruppieren

11.10.2011 08:00:00 | Gordon Breuer

Johann Wolfgang von Goethe schrieb einmal: „Briefe gehören unter die wichtigsten Denkmäler, die der einzelne Mensch hinterlassen kann. Der Brief ist eine Art Selbstgespräch.“ Wenn Sie diesen Text lesen, haben Sie gerade vermutlich Ihren RSS-Feedreader geöffnet oder aber einen Webbrowser. Aber es gibt ja neben dem althergebrachten Brief auch ein elektronisches Pendant, die E-Mail. Doch fällt es bei der Masse an E-Mails heutzutage oft schwer, den Überblick in längeren Unterhaltungen zu bewahren, wer wann was gesagt hat. Doch das freche Früchten "Mango" hat dem Windows Phone auch für diesen Zweck einen neuen Trick beigebracht! :-)

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Office Business Application Day bei Microsoft in München

10.10.2011 16:19:51 | Jens Häupel

Am 04.11.11 findet zum dritten Mal die Community Veranstaltung Office Business Applikation (OBA) Day in Unterschleißheim bei Microsoft Deutschland statt. Dieser Tag widmet sich der Entwicklung rund um MS Office. Themen sind VSTO, SharePoint und Office 365. Des Weiteren bleibt auch viel Zeit für das Netzwerken und den Erfahrungsaustausch. Als Sprecher sind dabei: Thorsten Hans, Tom Wendel, Helmut Obertanner, Andreas Aschauer, Mario Meir-Huber und Lars Keller.
Weitere Informationen & die Anmeldung finden Sie unter
http://www.oba-day.de

WP-Tipp #026 – Stromsparmodus

10.10.2011 08:00:00 | Gordon Breuer

Das Update auf Windows Phone 7.5 funktioniert erstaunlich reibungslos. Microsoft hat deshalb schon vergangene Woche das Versenden beschleunigt, so dass mittlerweile die Hälfte aller Telefone umgestellt sein sollte. Grund genug, diese Woche ein "Mango-Special" zu veranstalten! Und damit Sie auch genug Strom zur Verfügung haben, um alle Tipps zu lesen, beginnen wir das Special mit dem neuen Stromsparmodus...

Lese den vollständigen Artikel von Gordon Breuer auf anheledir.NET
Read the complete article by Gordon Breuer at anheledir.NET

Deutsche Partnerkonferenz 2011 - informativ, aufregend, unvergesslich!

10.10.2011 00:27:00 | Lars Keller

DPK - Deutsche Partner Konferenz 2011Am 4./5.10.11 war die Deutsche Partnerkonferenz 2011 von Microsoft in Hamburg. Nachdem ich letztes Jahr meine erste Partnerkonferenz erleben durfte, war ich sehr gespannt darauf, was dieses Jahr für spannende Themen besprochen werden würden. Wie im letzten Jahr habe ich mich wieder mit Ralph Haupter (Microsoft Deutschland GmbH CEO) getroffen und wir haben einige spannende Themen erörtert, aber fangen wir der Reihe nach an! 
Angekommen im CCH in Hamburg begann die ausverkaufte Partnerkonferenz (~1500 Partner waren vor Ort) mit der Keynote, wo u.a. Ralph Haupter und Martin Berchtenbreiter die neuen Entwicklungen von Microsoft vorstellten. Ein großes Thema dieses Jahres war „Consumerization of IT“. Darunter versteht man den Wunsch, geschäftlich genutzte IT-Geräte auch im privaten Umfeld zu benutzen und vice versa. Ich denke, dass ist auf jeden Fall ein sehr wichtiges Thema für den Tablett und auch Handymarkt.
Ein weiteres Thema der Keynote war die Veränderung der Microsoft Partner Konferenz 2011 Keynote - Ralph HaupterLebens- und Arbeitswelt. Viele Arbeitnehmer wollen flexiblere Arbeitszeiten, um Familie und Beruf besser unter einen Hut zu bekommen. Microsoft versucht seine Partner und Kunden dahingehend zu unterstützen, z.B. mit dem Produkt Lync.
Einer meiner Termine auf der Konferenz war der Lync Round Table, an dem Partner und Hersteller regelmäßig über ihre Erfahrungen berichten. Ich fand es sehr spannend zu hören, welche neuen Headsets rauskommen und wo schon überall Lync integriert wurde. Auch wir bei H&D International Group setzen Lync ein und genießen die Vorteile dieses Kommunikationsweges.  Microsoft Partner Konferenz 2011
Ein weiterer Punkt der Keynote war natürlich Cloud Computing. Ralph Haupter zeigte auf, dass die vielen Dienste und Endgeräte (z.B. Windows Phone) über Cloud Dienste die “Consumerization von IT” vereinfachen. Des Weiteren ist Microsoft gerade dabei, das Thema Datenschutz in der Cloud weiter voran zu treiben, damit das Vertrauen in diese Technologie wächst.
Nach der Keynote besuchte ich die Pressekonferenz, auf der noch einige Punkte der Keynote detaillierter besprochen wurden. Nach der Pressekonferenz konnte ich mir noch einige Session anschauen, leider war aber viel zu wenig Zeit dafür, da viele Dinge rund um die DPK parallel stattfanden u.a. auch mein Gespräch mit Ralph Haupter, wo wir über einige aktuelle Themen sprechen konnten.
Ralph Haupter und Lars KellerSo fragte ich ihn, was nun mit Skype & Lync passiere. Skype wird auf jeden Fall eine eigene Business-Unit mit direktem Bericht an Steve Ballmer werden. Das Aufgeben der Marke Skype sei „tödlich“, so Ralph Haupter. Gerade wurde bekannt, dass die EU der Übernahme von Skype zugestimmt hat, von daher denke ich, dass es auch bald Informationen zu Plänen zur Skype-Integration in bestehende Microsoftprodukte geben wird. Ich hoffe ja sehr darauf, dass es eine Skype <-> Lync Synchronisierung geben wird.
Eine weitere Frage von mir war, wie zufrieden Ralph Haupter mit der Entwicklung des Windows Phone 7 sei. Er antwortete darauf, dass mit der Entwicklung von Mango das Windows Phone einen großen Schritt nach vorn gemacht habe und nun eine App-Entwicklung auf Augenhöhe zu anderen Handybetriebssysteme ermögliche. Ralph Haupter hat aber auch darauf hingewiesen, dass das Windows Phone noch Schwächen in der Akzeptanz der Apps und der Devices habe. Die nächste Phase von Windows Phone hat er als „Emotionen gewinnen“ bezeichnet, dafür sind Nokia und Samsung wichtige Partner von Microsoft. Leider habe ich nicht erfahren können, was Nokia dazu auf der kommenden Nokia World 2011 spannendes ankündigen wird. Er wollte den „Nokia Jungs“ nicht die Show stehlen. :-) Aufruf der DPK Webseite
Ich habe auch nachgefragt wie es mit Kinect weitergeht. Ralph Haupter sagte dazu, dass Microsoft auf dem Spielemarkt ein Maßstab mit dem Gerät gesetzt habe, was auch der Verkauf von über 10 Millionen Kinects bestätige. Etwas überrascht war Microsoft über die Nachfrage des SDKs. Ralph Haupter vertritt die Ansicht, dass die nächste große Welle auf dem Konsumermarkt die Sprach- und Gestensteuerung sei. Microsoft hat für die Xbox eine Bing-/Internet Explorer-Sprachintegration sowie eine Skype-Integration (welche noch nicht veröffentlicht ist) geschaffen. Ein weiteres spannendes Themenfeld für Kinect ist das Thema Live-Meeting. Durch die Erstellung von echt aussehenden Avataren der Live-Meeting-Teilnehmern und die Abbildung der Mimik & Gestik sollen diese Art von Gesprächen noch plastischer gestaltet werden. In den Xbox-Labs habe ich solche echtwirkenden Avatare schon einmal ausprobiert und muss sagen, dass so ein Avatar wirklich Ähnlichkeiten mit einem selbst hat, wie der Amerikaner gern sagt Awesome! ;-)
Wir haben natürlich auch über Windows 8 geredet, wobei wir speziell über den Konsumermarkt von Endgeräten gesprochen haben. Microsoft möchte das beste Tablet-Betriebssystem anbieten, so Ralph Haupter. Den Vorteil, den Windows 8 bieten soll, ist dass es sich vollständig in die IT-Systemlandschaft integriert, eben auch auf einem Tablet installiert. Ziel ist es, sich möglichst ohne Adapter und anderen Kompromissen frei bewegen zu können. Windows 8 wird aber nach wie vor einen klassischen Desktop bieten, der aber sicherlich weiter entwickelt wird. Dazu Spiderman auf der Deutschen Partnerkonferenz 2011ein kleiner Exkurs von mir:
Letzten Monat war ich auf der //BUILD/ Konferenz in Anaheim, Kalifornien und habe dort einen Samsung Slate mit Windows 8 erhalten. Das Gerät macht großen Spaß. Vor allem hat mich die Reaktionsfreudigkeit der Touch-Oberfläche beeindruckt. Auf der //BUILD/ wurden auch weitere Geräte gezeigt u.a. auch Ultrabooks, die flacher sind als der VGA-Ausgangstecker.

Nach dem Gespräch mit Ralph Haupter, habe ich mir die zweite Keynote mit dem Titel “Geheimwaffen der Kommunikation: sanfte Strategien mit durchschlagender Wirkung” angeschaut. Herr Leo Martin ist ein Kriminalist und berichtete über Verhörtaktiken und zeigte sehr anschaulich auf, wie einfach Menschen zu lesen sind – ein wirklich spannender und gut gemachter Vortrag!

Am Ende des ersten Tags der DPK war abends die große Party, die zu vielen interessanten Gesprächen einlud. Es gab eine sehr gute Live Band, welche ordentlich gerockt hat! Genau mein Geschmack! Für den besonderen Stargast scheute Microsoft keine Kosten und lud Spiderman ein. Mir ist es gelungen, ihn vor die Kamera zu bekommen, ein Interview wollte er mir jedoch nicht geben! ;-)
Der krönende Abschluss des Tages war die Rückfahrt mit dem Taxi zum Hotel! So eine Fahrt habe ich noch nie erlebt! Ich würde sie als legendär bezeichnen!
Nichts ahnend bin ich mit meinen Kollegen auf das nächste Taxi gestürzt, in dem uns ein sehr freundlicher indischer Mann mit Turban empfing. Eigentlich begann alles mit der Frage „Möchten Sie gerne Musik hören? Ich habe auch indische Musik mit deutschen Text.“ Daraufhin legte Monty, so hieß der Taxifahrer, den Song “Wenn du jemand von Herzen liebst” ein. Der Song war nicht schlecht und so rockten wir gemütlich Richtung Hotel. Als das Lied zu Ende war, meinte der Taxifahrer, dass nun die Karaoke Version käme – jetzt wurde ich hellhörig – und tatsächlich, der Taxifahrer trug voller Inbrunst eine Liveperformance des Songs vor. Es stellte sich heraus, dass er der Sänger auf der CD war und sein Bruder den Text dazu geschrieben hat.Lovely & Monty CD Cover Im Nachhinein haben wir festgestellt, dass Lovely & Monty bekannte Taxifahrer aus Hamburg sind, welche schon in etlichen Shows aufgetreten sind. Die beiden sind einfach nur der Knaller! Wenn ich mal wieder in Hamburg ein Taxi brauche, dann rufe ich einen der beiden an! Wer die beiden einmal live sehen möchte, sollte sich die NDR Aufzeichnung der Tietjen und Hirschhausen Show anschauen.

Am nächsten Tag habe ich zusammen mit dem Team von Annabelle ein Video zur Deutschen Partnerkonferenz gedreht. Das war auch eine sehr interessante Erfahrung! Danke noch mal an Annabelle & Frank für diese Möglichkeit!

Einen letzten Punkt möchte ich noch aufgreifen. Ich fand die DPK WP7 App sehr gut gelungen. Sie war wirklich übersichtlich, schnell und ansprechend gestaltet. Ich hoffe dies wird bald bei allen Konferenzen Standard, damit endlich die “Papierzettelagendas” ausgedient haben.

Fazit
Mir hat die Konferenz sehr gut gefallen. Für mich war das Netzwerken auf der Konferenz einer der größten Faktoren dafür. Ich habe mich mit sehr vielen Partnern und Microsoft Mitarbeitern über spannende Themen unterhalten können. Die Konferenz war für mich persönlich ein voller Erfolg und ich freue mich schon auf die Deutsche Partnerkonferenz 2012.

Die DNUG Braunschweig feiert ihren 5 jährigen Geburtstag!

09.10.2011 14:32:00 | Lars Keller

Die DNUG Braunschweig trifft sich am 24.10.2011 um 19:00 Uhr im Restaurant Zucker (Tagungsraum). Dieses Mal feiern wir unser 5 jähriges Bestehen! YEAH!
Wir haben dennoch einen Gast, auf den wir uns sehr freuen - Neno Loje! Ich muss dazu eine kleine Anekdote erzählen. Karim und ich waren vor 5 Jahren bei einem Tech Talk in Hannover, auf dem Neno etwas zum Team Foundation Server erzählte. Bei seinem Vortrag erwähnte er am Ende, dass es .NET User Groups gäbe. Karim und ich haben danach sofort nachgeschaut, ob es eine User Group in Braunschweig gab. Enttäuscht darüber, dass dies nicht der Fall war, haben wir sofort entschieden, eine eigene zu gründen! So haben wir ein paar befreundeten Entwicklern Bescheid gegeben und schon war das erste Treffen organisiert. Ich habe damals einen Vortrag über die Windows Workflow Foundation gehalten… und jetzt sind schon 5 Jahre vorbei –wie die Zeit vergeht! :-)

Hier ist der Abstract von Neno:

Neno war früher mal Softwareentwickler und besucht mittlerweile viel zu selten User Groups. Umso mehr freut er sich, dass es mit der Terminfindung geklappt hat (i!) und er nun bei der UG Braunschweig über sein Steckenpferd, den Team Foundation Server (TFS) reden kann. Denn er war schon immer ein Freund pragmatischer Lösungen und hat sich schon früh in den TFS "verguckt". Aber alles weitere dann am Abend selbst. Ach ja, und er hat keine genaue Agenda dabei, das heißt Fragen und Wünsche dürfen gerne mitgebraucht werden.

Weiterhin wird es auch eine kleine Geburtstagsverlosung geben! An dieser Stelle möchte ich mich bei unseren Sponsoren bedanken: Microsoft CLIP, Grape City, redgate, telerik, JetBRAINS, Infragistics & Typemock

Wie immer ist dieses Event kostenlos! Für dieses Event ist eine Anmeldung erforderlich, bitte schickt diese formlos an Karim (karim at eljed dot de)

Wir sehen uns da!

Mein Vortrag bei der DNUG Ulm – MS Office & Kinect

09.10.2011 14:04:00 | Lars Keller

Morgen Abend bin ich mal wieder bei der DNUG Ulm zu Besuch! Thomas Schissler hatte mich gefragt, ob ich nicht meinen Vortrag “Microsoft Kinect & MS Office? Neue Wege der Benutzer Experience (UX)?” in seiner User Group halten möchte. Aber gern! :-)

Ich freue mich auf morgen Abend, man sieht sich da!

WP-Tipp #025 – Datenverbindungen

07.10.2011 08:00:00 | Gordon Breuer

Windows Phone Tipp des Tages

War ein Datentarif für das Handy früher eher unnötiger Luxus (oder hat wirklich jemand mit WAP aktiv gearbeitet??), ist er heute beinahe wichtiger als der eigentliche Telefontarif geworden: Statt SMS schreibt man sich per WhatsApp, den Anruf hat Skype mit VoIP abgelöst. Und natürlich nicht nur die beiden, es gibt eine täglich wachsende Zahl an Programmen, welche die mobile Kommunikation erleichtern sollen, und alle verwenden die mobile Datenverbindung. Um so wichtiger also, hier mal einen genaueren Blick drauf zu werfen!

Allgemeines

Völlig unabhängig vom Windows Phone sollten Sie die zur Verfügung stehenden Tarife Ihres Netzanbieters genau studieren. Nicht jeder aktuelle Tarif hat auch Datenverbindungen inklusive. Rufen Sie dann hin und wieder Mails und RSS-Feeds ab, kann das schnell teuer werden. Auch reduzieren alle Anbieter nach dem Verbrauchen einer gewissen Menge die Bandbreite: Statt mit mobilem DSL-Turbo kommen die Websites danach so langsam bei Ihnen an, dass Morsen eine echte Alternative wird. Umgekehrt braucht derjenige, der nur hin und wieder eine Mail empfängt oder verschickt nicht das Premium-Datenpaket zum Premium-Preis. Also Augen auf bei der Tarifwahl!

Datenverbindung ein- und ausschalten

Wer keinen Datentarif hat möchte vielleicht verhindern, dass das Handy versehentlich eine Verbindung mit dem Provider herstellt und so Kosten verursacht. Gehen Sie in die “Einstellungen” – und dort auf den Punkt “Mobilfunk”. Hier sehen Sie, bei welchem Netzbetreiber Sie derzeit angemeldet sind, was vor allem im Ausland wichtig sein kann. Als zweites findet sich die Option “Datenverbindung”, die Sie durch Antippen des Schalters entweder einschalten (Schalter ist rechts und farbig gefüllt) oder ausschalten (Schalter ist links und “leer”) können. Bei abgeschalteter Datenverbindung verwendet das Windows Phone nur die Internetleitung, die es über WLAN – sofern vorhanden – oder USB-Kabel über die Zune-Software finden kann.

Auslandseinsatz

Wer mit dem Telefon ins Ausland geht möchte in der Regel die Datenverbindung dort deaktivieren: Die Roaming-Gebühren liegen zum Teil bei über 1€ pro Minute! Als ich noch in Saarbrücken wohnte kam es aber beispielsweise im Wartezimmer meines Zahnarztes durchaus vor, dass ich kurzzeitig statt im Heimatnetz bei Vodafone Frankreich angemeldet war. Um nicht selber darauf achten zu müssen, ob man noch im eigenen Netz ist, oder schon im Fremdnetz, gibt es im Mobilfunk-Menü die so genannten “Datenroamingoptionen”. Standardmäßig stehen diese auf “Kein Roaming” – das heißt, sobald Sie in einem fremden Mobilfunknetz angemeldet sind, baut das Windows Phone keine Datenverbindung mehr auf! Sie können die Einstellung aber auch auf “Roaming” umstellen, dann wird Ihr Smartphone auch bei Fremdnetzen versuchen eine Datenverbindung herzustellen. Erkundigen Sie sich aber unbedingt vorher nach den Preisen!

Sprinter oder Dauerläufer?

Für Datenverbindungen gibt es zahlreiche verschiedene Methoden, welche auch unterschiedliche Geschwindigkeiten ermöglichen, siehe die folgende Grafik:

© 2011, Wikimedia Commons, McZusatz

Als Datenverbindungen der 3. Generation (3G) bezeichnet man UMTS und HSDPA – LTE ist noch mal eine Steigerung, die wir hier jedoch einmal außen vor lassen wollen. Die höhere Geschwindigkeit bei 3G wird jedoch teuer erkauft: Die schnelle Datenverbindung ist ein richtiger Stromfresser!

Wenn Sie also nur wenige Mails auf dem Handy lesen / senden und auch sonst nur sporadisch mal eine Website ansehen wollen, können Sie 3G-Verbindungen in den Mobilfunk-Einstellungen auch abschalten und so einige Stunden länger telefonieren. Doch erwarten Sie dann keine Geschwindigkeitsrekorde beim Lesen von Websites!

Windows Phone 7.5

Mit dem Mango-Update hat das Windows Phone eine neue Option zum Energiesparen erhalten. Diese schaltet 3G automatisch ab, wenn der Akkustand sich dem Ende neigt um wertvolle Energie zu sparen. Weitere Details zum Energiesparmodus gibt es kommende Woche. Doch jetzt wünsche ich allen Lesern erst einmal ein schönes Wochenende! Smiley

Mein Videopost zur Deutschen Partnerkonferenz 2011 von Microsoft

06.10.2011 08:17:03 | Lars Keller

Ich habe gerade das geschnittene Video erhalten und natürlich gleich zu Youtube hochgeladen. ;-)

Hier sind meine Eindrücke und Meinung zu der DPK 11 – seht selber:

Ich stand das erste Mal vor der Herausforderung eines “professionellen” Videodrehs. Schauspieler und Regisseure haben nun noch mehr Respekt! Meine Outtakes will ich gar nicht sehen! :D

Vielen Dank an Sebastian (Grabow & Bartetzko Filmproduktion) und Annabelle (Microsoft Deutschland GmbH), welche mir diesen Dreh ermöglicht haben.

Es hat Spaß gemacht!

P.s.: Ein ausführlicher Post erfolgt die Tage!

WP-Tipp #024 – Den Klingelton verstummen lassen

06.10.2011 08:00:00 | Gordon Breuer

Wer in eine Kirche oder ins Kino geht oder an einer Besprechung teilnimmt, sollte sein Telefon am besten ganz abschalten damit es niemanden stört. Doch nicht immer ist das machbar, wenn man beispielsweise “auf Abruf” in Bereitschaft ist, oder, was häufiger vorkommen dürfte, weil wir es schlicht und ergreifend vergessen.

Um das Telefon von vorneherein auf “stumm” zu schalten bzw. nur die Vibration aktiviert zu lassen, drücken wir kurz eine der Lautstärketasten an der Seite. Es erscheint am oberen Bildschirmrand eine Art Info-Bereich, in dem wir neben der aktuellen Lautstärke auch das Telefon in den Stumm-Modus schalten können. Tippen Sie dafür einmal kurz auf das runde Symbol mit der Glocke am rechten Rand. Ab sofort wird das Telefon bei einem Anruf keinen Laut mehr von sich geben. Sollten Sie die Vibration in den Einstellungen aktiviert haben, wird diese jedoch weiterhin über eingehende Anrufe informieren.

Was aber, wenn Sie vergessen haben, das Telefon stumm zu schalten und natürlich genau wenn der Chef ganz stolz seine mühsam erstellte Powerpoint-Präsentation vorführt klingt selbstverständlich ihr Handy! Statt den Anruf nun kurzerhand durch Antippen von “Abweisen” zu beenden, können Sie auch nur das Klingeln abschalten: Drücken Sie einfach kurz die Ein-/Aus-Taste oben am Windows Phone. Der Anruf wird weder angenommen noch abgelehnt, ihr Klingelton jedoch verstummt. Das kann beispielsweise sinnvoll sein, wenn Sie Anrufer nach einer gewissen Zeit auf Ihre Mailbox umleiten, nicht aber bei Besetzt (was mit dem “Abweisen” identisch ist). Oder Sie müssen das Gespräch unbedingt annehmen, wollen aber zuvor den Raum verlassen und auf dem Weg nach Draußen schon einmal das Klingeln abstellen.

Übrigens

Der Info-Bereich, der aufgeklappt ist nachdem Sie eine Lautstärketaste gedrückt haben, zeigt – wenn Sie gerade Musik hören – außerdem noch den Titel und den Interpreten des aktuell gespielten Liedes an, sowie Buttons zum pausieren, weiterspielen, vor- und zurückspringen. Das funktioniert sogar, wenn die Bildschirmsperre aktiviert ist.

SCRUMit

05.10.2011 10:40:21 | Christian Binder

Die .net Developer Group in Ulm veranstaltet am 13.10 das SCRUMit, für Alle die SCRUM machen und Alle, die es noch vorhaben.

image


Hier geht’s zur Agenda

WP-Tipp #023 – Tastatureingaben leicht gemacht (2)

05.10.2011 08:00:00 | Gordon Breuer

Windows Phone Tipp des Tages: Bedienung

In Tipp #022 habe ich beschrieben, wie man Sonderzeichen auf dem Windows Phone findet und eingibt, oder wie die unterschiedlichen Tastatur-Layouts aussehen und wofür sie gebraucht werden. Doch es gibt noch ein paar weitere Tipps und Tricks rund um die Eingabe, welche ich heute vorstellen möchte.

Automatisches Satzende

Das wohl häufigste Satzzeichen ist wohl der Punkt am Ende eines Satzes. Deshalb gibt es für ihn auch eine Art “Abkürzung”, um den Schreibfluss so wenig wie möglich zu unterbrechen. Statt explizit auf die Taste für den Punkt zu tippen, kann man einfach zweimal kurz hintereinander die Leertaste betätigen. Das Windows Phone erstellt direkt hinter das aktuelle Wort einen Punkt und macht dahinter ein Leerzeichen, so dass Sie sofort mit der Eingabe fortfahren können.

Satzzeichen und die Autovervollständigung

Schon gestern habe ich den Aufwand beschrieben, der betrieben wurde um die automatische Vervollständigung von Wörtern möglichst akkurat zu machen. Wer erst einmal gelernt hat die Vorschläge zu verwenden, wird seine Tippgeschwindigkeit deutlich erhöhen können. Auch fügt das Windows Phone nach dem vervollständigten Wort automatisch ein Leerzeichen ein, damit Sie direkt mit dem nächsten Wort fortfahren können. Wenn Sie jedoch stattdessen ein Satzzeichen eintippen wollen, müssen Sie dieses Leerzeichen nicht selber vorher löschen: Geben Sie es einfach ein! Windows Phone erkennt was Sie vorhaben und entfernt das soeben automatisch hinzugefügte Leerzeichen von ganz alleine wieder. Das funktioniert sowohl mit dem Punkt, als auch mit anderen Satzzeichen wie dem Doppelpunkt, Anführungszeichen oder dem Semikolon.

Eingabecursor verschieben

Manchmal bemerkt man einen Tippfehler erst relativ spät oder möchte den bereits getippten Text noch ein wenig ergänzen. Um die Stelle, an der Sie aktuell tippen (den so genannten Cursor), zu verändern drücken Sie mit dem Finger irgendwo innerhalb der Eingabemaske auf das Display und halten Sie den Finger einen Augenblick dort. Es erscheint oberhalb Ihrer Fingerspitze nun ein senkrechter, farbiger Strich, den Sie vielleicht schon vom PC her kennen. Ohne den Finger vom Display zu nehmen können Sie diesen Cursor nun innerhalb der Eingabemasken verschieben und problemlos zeichengenau positionieren. Ist der Strich an der Stelle, an der Sie weitertippen möchten, nehmen Sie einfach den Finger vom Display.

Text markieren, kopieren und einfügen

Hachja, die “berühmte” Copy & Paste-Funktion – es hat über vier Monate gedauert, bis sie nach Erscheinen des Windows Phones im Oktober 2010 endlich nachgereicht wurde. Mit dem so genannten NoDo-Update kam sie dann schließlich und kann seit dem verwendet werden.

Tippen Sie mit dem Finger ein Wort an, welches Sie markieren möchten. Es wird mit der aktuellen Akzentfarbe hinterlegt und links- und rechts-unten sieht man kleine Ecken an der Markierung. Um die Markierung nun zu vergrößern oder zu verkleinern tippen Sie mit dem Finger eines der beiden Enden an, und ziehen es mit dem Finger an die gewünschte Stelle. Sie sehen zeitgleich, welcher Bereich aktuell markiert ist, wenn Sie den Finger loslassen. Die ersten Male erfordert das Verändern der Markierung zugegebenermaßen ein Wenig Fingerspitzengefühl – im wahrsten Sinne des Wortes. Hat man aber erst einmal den Dreh raus, klappt das Ganze eigentlich problemlos.

Hat man den gewünschten Bereich markiert kann man ihn entweder löschen (mit der Zurücktaste auf der Tastatur, auf der ein Pfeil nach links ist), überschreiben (einfach den neuen Text eintippen), in die Zwischenablage kopieren (mit dem kleinen runden Icon, welches direkt bei der Markierung erscheint) oder einen Text aus der Zwischenablage einfügen (direkt oberhalb der Tastatur links neben der Autovervollständigung das runde Icon). Man kann einen Text auch mehrfach hintereinander einfügen. Hierfür muss man das Icon über der Tastatur, welches nach dem ersten mal nur noch zur Hälfte sichtbar ist, einfach antippen und wieder nach rechts ins Bild ziehen.

Do you speak English?

Normalerweise ist es kein Problem auch auf einer deutschen Tastatur beispielsweise englische oder französische Texte einzugeben. Wenn da die automatische Vervollständigung nicht wäre! Diese ist selbstverständlich Sprachabhängig und Sie wären erstaunt, welche Buchstaben auf Deutsch ein ganz ähnliches Englisches Wort ergeben können…

Zum Glück ist das aber kein Problem, da man mehrere Sprachen aktivieren kann. Hierfür gehen wir in die Einstellungen und da auf den Punkt Tastatur. Jetzt finden wir eine lange Liste aller unterstützten Sprachen vom Windows Phone, aus denen wir wählen können. Eine Sprache umfasst dabei nicht nur ein angepasstes Tastaturlayout, sondern auch ein lokalisiertes Wörterbuch. Wenn Sie also auch häufig E-Mails auf Englisch und Französisch tippen müssen, wählen Sie diese Sprachen hier auch. Anschließend können Sie nun, sobald die Tastatur für eine Eingabe erscheint, die gewünschte Sprache auswählen: Rechts unten zwischen der Leerzeichen- und der Punkt-Taste ist nun eine neue Taste sichtbar geworden, welche standardmäßig “DEU” anzeigen sollte (für das deutschsprachige Layout). Sie können nun zwischen den installierten Sprachen umschalten, indem Sie entweder die Taste entsprechend oft antippen, oder indem Sie sie eine Sekunde gedrückt halten und dann aus der Liste aller verfügbaren Sprachen auswählen. Amerikanisches Englisch ist beispielsweise “ENU” (für English USA).

Zeilen in Excel verschieben

04.10.2011 19:32:32 | Thomas Schissler

Ich verwende gerne Excel um mein Product Backlog im TFS zu sortieren. Dazu rufe ich die Work Items des PBL einfach aus Excel ab, sortiere diese und verwende dann die Excel Autonummerierungs-Funktion um den Stack Rank neu zu nummerieren. Das funktioniert sehr gut. Einziger Punkt der immer etwas nervt ist das Ausschneiden und Einfügen der Zeilen im Excel um diese zu verschieben. Hier gibt es allerdings eine elegante Lösung die allerdings ein wenig Fingerspitzengefühl erfordert und die nicht gerade intuitiv ist.

Zuerst markiert man die Zeile(n) die man verschieben möchte

SNAGHTML1498cb94

Dann fährt man mit der Maus auf die obere Kante der Markierung

SNAGHTML149808f1

Nun kann man mit gedrückter rechter Maustaste die Zeile an eine andere Position schieben. Danach öffnet sich ein Kontext-Menü in dem man dann verschiedene Optionen zur Auswahl hat. “Move here” bedeutet das das Ziel überschrieben wird. Für den oben beschriebenen Fall brauchen wir also “Schift Down and Move” damit die verschobene Zeile eingefügt wird.

SNAGHTML149c0e4e

Alternativ kann man auch mit der linken Maustaste verschieben und dann im Verschieben die Shift-Taste drücken. Die Einfügezeile passt sich dann entsprechend an um anzuzeigen das die Zeile eingefügt wird und nicht der Inhalt überschrieben wird (ohne gedrückter Shift-Taste)

SNAGHTML149e8448

Nä, wat wor dat op der BASTA! en superjeile Zick

04.10.2011 18:00:00 | Gordon Breuer

187771_154941004560372_4940513_nVom 26. bis zum 30. September 2011 fand auch dieses Jahr wieder die BASTA! in der Rheingoldhalle in Mainz für alle Entwickler statt. Für die Hauptkonferenz habe ich von Jan Welker dieses Jahr auch eine Eintrittskarte erhalten, die 26. BASTA! war also auch meine erste. Und mein Gesamteindruck war durchweg super!

Die Vorträge auf der einen Seite…

.NET ist tot
117px-Microsoft__NET_Logo_svgDie Keynote am Dienstag Vormittag war schon ein kleines Erlebnis: Rainer Stropek, Christian Weyer und Dr. Holger Schwichtenberg gaben ihre Eindrücke von der BUILD  in Anaheim wieder. Die wohl wichtigste, da mehrfach wiederholte, Aussage: “.NET ist nicht tot!” – wieso auch? Nur weil die Marketingabteilung missverständliche Grafiken erstellt hat? Oder waren die vielen Journalisten ohne hinreichendes Fachwissen an dieser Angst schuld, die alles auf der BUILD in Jahrmarktmanier versuchten als möglicherweise sublimentive Botschaft zu deuten?

Wie auch immer, sowohl das .NET-Framework als auch seine Zukunftsaussichten und die dazugehörige Community sind alles andere als tot. Wie heißt es so schön: Togesagte leben länger! Smiley

Einblicke und Ausblicke auf die C#-Entwicklung
260703LEI201Das haben im übrigen auch zahlreiche spannende Vorträge rund um kommende Features gezeigt, auf die man zum Teil schon einen Blick vorab werfen kann: Das .NET Framework 4.5 mit C# 5 ist im Image der Windows 8 Developer Preview enthalten und ermöglicht den geneigten Entwicklern so schon einen Blick in die rosige .NET-Zukunft. Und wer nicht weiß wovon ich spreche, der hat zum Beispiel den Vortrag Async in C# v.Next von Oliver Sturm verpasst. Weitere spannende Vorträge rund um C# & co. waren beispielsweise auch The Secrets of Delegates von Christian Nagel und LINQ and the Reactive Framework: a powerful new Way to write Code von Richard Blewett. Vor allem letzterer war trotz der frühen Stunde (8:30 Uhr am Mittwoch, nach nur 4 Stunden Schlaf für mich…) ein wahres Erlebnis! Unterhaltsam und kurzweilig wurde das Thema präsentiert und erläutert und obwohl komplett in englischer Sprache (nagut, das “Guten Morgen!” war Deutsch! Zwinkerndes Smiley) verging der Vortrag rasend schnell und hinterließ einiges an nützlichen Informationen.

Mal was völlig abwägiges?!
javascriptEbenfalls eine interessante Erfahrung war die Session Javascript für .NET-Entwickler, präsentiert von Dariusz Parys und Patric Boscolo. Patric selber ist eigentlich C#-Entwickler und hat mit Javascript daher nicht viel zu tun. Doch gerade deshalb war er die ideale Ergänzung, um die Sichtweise und das Verständnis der “normalen Entwickler” auf der Bühne zu repräsentieren. Eines ist sicher: Bei C# noch völlig normale Denkmuster müssen – oder besser sollten – für JavaScript gründlich überdacht werden. Hier läuft einiges anders ab und wer sich mit den Besonderheiten von JavaScript nicht auskennt, wird oft unnötig viel tippen – oder viel Zeit bei der Fehlersuche verbringen. T-Shirts gab es im übrigen auch: Zunächst bei richtig beantworteten Fragen, originellen Antworten, und zum Schluss auch für alle anderen die eins wollten. Da mir die Größe “L” beim besten Willen nicht passt (“XXL” muss es schon sein Erstauntes Smiley), ich aber dennoch 2 T-Shirts geschenkt bekommen habe, werde ich vielleicht demnächst noch eine kleine Verlosung machen. Zwinkerndes Smiley

Achja, Silverlight ist tot!
Achja, Silverlight ist lebendig!

silverlightDoch es gab natürlich auch noch weitere Themenbereiche. Für mich vor allem interessant war da noch die komplette Silverlight- und Windows Phone-Schiene. Achja, wusstest ihr schon, dass Silverlight eigentlich tot ist? Nicht? Ich auch nicht! Und die meisten mit denen ich gesprochen habe konnten darüber auch nur Schmunzeln. Was wollen eigentlich ständig alle Microsoft-Technologien begraben?!

Es gab jedenfalls auch zahlreiche Vorträge zum Silberstreifen am Horizont, wie auch zum Thema Windows Phone. So hat Gregor Biswanger im Vortrag Das Testen von Windows-Phone-7-Anwendungen gezeigt, dass man auch bei der Mobile-Entwicklung nicht auf TDD und Unit-Tests verzichten muss. Die Session hat mich auch mal wieder etwas neugierig auf Test-Driven Design gemacht, etwas was ich während meiner Arbeit leider nicht einsetzen kann. Aber das nächste private Projekt werde ich zum Anlass nehmen um mich noch einmal intensiver mit dem Thema zu beschäftigen.

Ein wenig ernüchternd fand ich hingegen den Vortrag Windows Phone 7, so geht’s weiter von Frank Prengel. Es war zwar unterhaltsam aufgebaut und Frank hatte ich bisher auch noch nicht “live” getroffen, aber für mich war bei dem Gesagten jetzt nichts neues dabei. Auch blieb ein größerer “Blick in die Zukunft” aus, wie ich ihn bei dem Namen des Vortrages erwartet hätte. Für Unentschlossene, die sich bisher nicht sicher waren, ob sie Zeit und Geld in die Entwicklung für das Windows Phone investieren sollen, war die Session jedoch durchaus geeignet und wurde mit viel positiver Resonanz aufgenommen. Worauf ich jedoch definitiv neidisch bin: Die Software, um das Bild vom Windows Phone Screen auf den PC zu bringen! Ein Screenrecorder der absolut ruckelfrei und scheinbar nativ, auch unter Mango / Windows Phone 7.5, läuft! An wen muss ich meine Seele verkaufen um die App zu kriegen?!?

Wieder richtig spannend war dagegen Silverlight Security: Update auf V5 mit Christian Wenz und Dominick Baier, auch wenn die beiden nur wenig Gutes über Silverlight berichteten. Doch ohne die Schwachstellen und möglichen Angriffspunkte zu kennen kann man auch nicht aktiv dagegen vorgehen, so gesehen war die Session also sehr lehrreich und kurzweilig.

Es gab natürlich noch zahlreiche weitere Vorträge während der drei Tage, die ich jetzt nicht alle im Detail besprechen kann. Einige Vorträge, die ich mir im Vorfeld vorgenommen hatte, liess ich teilweise spontan auch aus zu Gunsten zahlreicher persönlicher Kontakte und Gespräche am Rande der BASTA!

…das Networking auf der anderen Seite

321791_2318239388716_1031435211_32683974_62250404_oDas eigentlich interessanteste auf der BASTA! waren gar nicht mal die vielen Vorträge, sondern die Gespräche mit den Speakern und anderen Teilnehmern zwischendurch! Da ich in der Vergangenheit nicht oft bei Community-Veranstaltungen zugegen war, gab es viele bestehende Kontakte zu pflegen und auch viele neue zu knüpfen!

Dabei verbrachte ich einen Großteil der Zeit “heimlich” im VIP-Bereich, der so genannten Speaker-Lounge. Ein extra Bereich mit runden Tischen und Steckdosen für das Stromtanken zwischendurch, in dem sich die Speaker auf ihre Vorträge vorbereiten konnten. Hier gab es jedoch auch viele interessante Gespräche über alle möglichen Themen, unter anderem mit Stefan Lange, Gregor Biswanger, Christian Weyer, Oliver Sturm, Mario Meir-Huber, Dominick Baier, Rainer Stropek, Andreas Aschauer und noch vielen mehr. Geredet und diskutiert wurde unter anderem über Windows 8, Metro-Design & -Apps, Windows Phone, .NET, Silverlight, Sharepoint, Azure, HTML5, … also eigentlich das ganze Themensprektrum der BASTA! noch mal verpackt –  quasi eine Matrjoschka-BASTA! Zwinkerndes Smiley

Da wurde dann auch schon mal die Zeit vergessen und einfach weiter diskutiert und geplaudert – unabhängig von den Vorträgen. Der Austausch von Ideen und Gedanken stand hier definitiv im Vordergrund und hat mir besonders viel Spaß gemacht! Definitiv ein Anreiz, auch in Zukunft weitere Community-Veranstaltungen zu besuchen. Denn nichts ist verheerender für einen Entwickler als Stillstand, alte Denkmuster und Routinearbeiten. Der Ideenaustausch sorgt jedoch dafür, dass man sich unmittelbar mit eigenen Vorstellungen und Gedanken auseinander setzen muss, neue Ansätze aufgreift und vielleicht neue Denkanstöße bei den anderen bewirkt. Herrlich!

Das Drumherum

337314_2315078229689_1031435211_32682029_1418077809_oWie mir mehrfach versichert wurde sind die Buffets auf der BASTA! jedesmal ein Highlight, und ich war in der Tat positiv überrascht. Dass das Essen von Köchen direkt am Buffet frisch zubereitet wird bin ich so nicht gewohnt, und auch wenn die Verpflegung beispielsweise auf der .NET Cologne völlig ausreichend ist, setzt die BASTA! hier ganz andere Maßstäbe. Sowohl von der Auswahl, als auch von der Menge. Hier kann man auch mal 30 Minuten später noch Essen gehen und findet von allem noch genügend vor, ohne das schon alles “geplündert” wurde.

Doch nicht nur für das leibliche Wohl war gesorgt, auch für das seelische! Am Dienstag Abend gab es eine Jogging-Gruppe am Rhein entlang und am Mittwoch gab es eine Casino-Nacht: Pokertische, Black Jack und Roulette sorgten für eine willkommene Abwechslung! Ein Tipp: Wenn ihr mal mit Gregor pokert, lasst ihn ruhig alles mögliche setzen – Haus, Auto, Lizenzen, … ihr könnt nur gewinnen Smiley mit herausgestreckter Zunge

338852_2322744141332_1031435211_32686253_1173583977_oEs hat wirklich viel Spaß gemacht in lockerer Atmosphäre und ganz ohne Anzug und Krawatte Casino-Atmosphäre aufkommen zu lassen. Auch wenn man kaum meinen sollte, dass analytisch und mathematisch denkende Menschen wie Entwickler so leicht um ihre Chips gebracht werden können. Zwinkerndes Smiley

Persönliches Fazit

Egal ob die Vorträge, die Gespräche oder das Buffet: Die BASTA! war ein richtiges Highlight in jeder Hinsicht und hat mir unheimlich viel Spaß gemacht! Viele der dort geknüpften Kontakte habe ich inzwischen auch in Facebook & co. hinzugefügt, alleine schon um weiter im Dialog zu bleiben. Und natürlich sei jeder ermutigt mich noch hinzuzufügen, sofern ich ihn (noch) nicht gefunden habe. Zwinkerndes Smiley

324949_2322751101506_1031435211_32686262_1790022811_oDie Konferenz hat mir aber ganz deutlich gezeigt, dass die .NET-Community bei weitem nicht nur aus Online-Aktivitäten besteht, sondern richtig interessante und lustige Leute hinter den virtuellen Fotos stecken mit denen man viele unterhaltsame, lehrreiche und spannende Stunden / Tage verbringen kann. Deshalb habe ich mir jetzt auch fest vorgenommen, in Zukunft viel öfter zu versuchen, bei diversen Treffen der Community teilzunehmen. Eine Veranstaltung pro Jahr reicht da einfach nicht aus! Bleiben nur leider die Reise- und Übernachtungskosten, die trotz Fortbildungsmöglichkeit nicht von meinem jetzigen Arbeitgeber übernommen werden. Vielleicht sollte ich eine Art Community-Fond einrichten für Spenden Zwinkerndes Smiley

Das beste zum schluss

Am letzten Tag der BASTA! habe ich mit Gregor Biswanger noch ein kurzes Interview zum Thema Silverlight und Windows Phone geführt. Sobald ich die Nachbearbeitung abgeschlossen habe, werde ich dieses Interview natürlich auch noch hier veröffentlichen!

Und wer ein paar visuelle Impressionen mitnehmen möchte, der kann sich gerne meine Bildergalerie auf Facebook zur BASTA! 2011 ansehen.

WP-Tipp #022 – Tastatureingaben leicht gemacht

04.10.2011 08:00:00 | Gordon Breuer

Windows Phone Tipp des Tages - Bedienung

Nachdem der Tipp des Tages gestern wegen dem Volkstrauertag Tag der Deutschen Einheit ausgefallen ist, gibt es heute wieder eine etwas längere Ausgabe Smiley

Bis auf wenige Geräte, wie das Dell Venue Pro, gibt es derzeit keine Windows Phones mit einer Hardware-Tastatur. Doch auch die verwendete Software-Tastatur ist ziemlich tippsicher in den meisten Situationen. Sie passt außerdem das Layout je nach Situation an, sofern die Programmierer der Apps sauber gearbeitet haben.

Caps-Lock

Wie man zwischen Groß- und Kleinschreibung wechselt hat man mit Sicherheit schnell herausgefunden: Einfach die Taste mit dem Pfeil nach oben auf der linken Seite drücken, und der nächste Buchstabe wird groß geschrieben. Bei einigen Eingabefeldern wird das am Satzanfang auch automatisch gemacht. Es gibt jedoch auch die Möglichkeit die Großschreibung dauerhaft zu aktivieren: Tippen Sie einfach die Pfeiltaste zweimal kurz hintereinander an. Solange die Taste jetzt aktiviert ist, verwenden Sie nur Großbuchstaben. Zum Deaktivieren tippen Sie die Taste einfach ein weiteres mal an.

Akzente und Umlaute

Bei vielen Worten erkennt das Windows Phone automatisch, wenn Akzente notwendig sind, und ersetzt sie gegebenenfalls. Natürlich können Sie aber auch Akzente und andere Sonderzeichen selber eingeben. Halten Sie dafür einfach die entsprechende Taste, beispielsweise das “a”, gedrückt. Nach 1 Sekunde erscheint über der Taste eine zusätzliche Auswahl von Zeichen, in unserem Beispiel: “a”, “ä”, “á”, “â”, “à”, “å”, “æ””. Tippen Sie dann einfach das gewünschte Zeichen an. Die deutschen Umlaute verbergen sich demnach hinter den Tasten “a”, “o”, “u” und “s” (für das Eszett).

Das funktioniert im übrigen auch bei anderen Tasten, wie beispielsweise den Zahlen oder Sonderzeichen. Bei der Zahl “3” beispielsweise erhalten Sie zusätzlich noch “¾” und “³”, bei der runden Klammer auch die Eckige-, Geschweifte- und Spitzeklammer. Ein Sonderfall ist die Taste “.com”, die wir beispielsweise bei der Eingabe von URLs im Internet Explorer sehen. Tippen wir diese etwas länger an, so erhalten wir die zusätzliche Auswahl von “.de”, “.org” und “.edu”. Beim drücken wird nicht nur ein Zeichen eingefügt, sondern die vollständige Endung.

Zahlen und Satzzeichen

Wenn wir gerade schon die Zahlen erwähnt haben: In der Regel kommt man zur Eingabetastatur von Zahlen und anderen Satzzeichen, indem man links unten die Taste “&123” drückt. Nicht alle Sonder- und Satzzeichen haben auf diese erste Seite gepasst, es gibt also noch eine weitere Seite mit Symbolen: Tippen Sie einfach auf den Pfeil nach rechts um weitere Zeichen zu sehen. Um wieder zur normalen Buchstabentastatur zu gelangen, tippen Sie auf die Taste “abcd”.

Auf die gebräuchlichsten Satzzeichen können Sie übrigens auch direkt von der Hauptseite aus zugreifen, ohne erst auf die “&123”-Taste zu tippen: Halten Sie einfach die Taste mit dem Punkt rechts unten für einen Moment gedrückt, und es erscheinen die Satzzeichen “-“, “!”, “:” und “?” als zusätzliche Auswahl.

Smileys

Eine besondere Art der Sonderzeichen sind die Smileys, wie man sie im Internet häufig bei Chats und ähnlichem antreffen kann. Um auch hier die Eingabe zu vereinfachen, wurde eine Taste nur für die Eingabe dieser Smileys vorgesehen: “”. Auch hier gibt es wie bei den Zahlen und Satzzeichen zuvor eine zweite Seite, die über den Pfeil nach rechts angezeigt werden kann.

Einige Programme, wie seit Windows Phone 7.5 (“Mango”) auch die Nachrichten für SMS und Chat, zeigen statt der normalen Smileys kleine Grafiken an. Wie Sie diese Symbole einfügen hängt normalerweise von der jeweiligen Anwendung ab. Einige wandeln jedoch die Text-Smileys automatisch in Grafiken um. So wird dann aus :-) automatisch ein .

Besondere Tastaturen

Es gibt beim Windows Phone mehr als nur eine Art der Tastatur für Ihre Eingaben. So ist es bei der Eingabe von Mail-Adressen oder URLs ganz praktisch, wenn das at-Zeichen “@” direkt auf der Hauptseite verfügbar ist, sowie die häufigsten Domainendungen. Andererseits benötigt man für die Eingabe von Telefonnummern eigentlich nur die Ziffern 0-9 und nicht noch alles andere drumherum. Ob und welche besondere Tastatur angezeigt wird, entscheidet der Programmierer der App die sie gerade verwenden. Nachfolgend finden Sie die Screenshots der am häufigsten verwendeten:

alpha1

alpha2
number1numberbig
numbersmall

scope_smiley

Technisches Trivia

Um die Eingabe auf dem kleinen Display möglichst fehlerfrei machen zu können, wurde von Seiten Microsofts eine ganze Menge Aufwand betrieben. Dafür muss man wissen, dass der Bereich, in dem eine Taste auf Berührungen reagiert, nicht unbedingt dem Bereich entspricht, den man auch auf dem Bildschirm sieht. Auch ist dieser so genannte Touch-Bereich nicht statisch, sondern ändert sich je nach Eingabe ständig!

Anhand von statistischen Auswertungen versucht die Software zu erkennen, was der Anwender im Augenblick, abhängig von der aktuellen Sprache, eingeben möchte. Doch nicht nur eine rein statistische Auswertung anhand von Buchstaben und Worten, auch beispielsweise die Tippgeschwindigkeit spielen eine Rolle. Im Hintergrund wird deshalb der Bereich, in dem eine Taste auf Berührung reagiert, größer oder kleiner, je wahrscheinlicher es ist das der Benutzer sie gerade drücken möchte.

Das alles macht die Tastatur vom Windows Phone sehr zuverlässig und ermöglicht auch das schnelle Tippen mit zwei Daumen beispielsweise mit nur geringem Fehlerquotienten. Zusätzlich kann jeder einzelne Nutzer mithelfen, die Tastaturerkennung in künftigen Updates zu verbessern: In den Eingabeeinstellungen der Tastatur (“Einstellungen” – “Tastatur” – “Eingabeeinstellungen”) kann man die Übermittlung von anonymisierten Daten aktivieren. Hier sind unter anderem auch Korrekturen von falsch erkannten Worten drin enthalten. Dadurch ist eine stete Verbesserung anhand der Praxis tausender von Anwendern möglich.

Doch auch wer keine anonymen Nutzungsdaten an Microsoft senden möchte kann bei der Weiterentwicklung der Tastatur aktiv mithelfen: Das kostenlose Spiel “TextTextRevolution!” ist im Marketplace verfügbar. Sie können hiermit testen, wie schnell und sauber Sie tippen können und das Ergebnis auf einer Bestenliste mit anderen vergleichen.

Slides & Samples von der BASTA!

01.10.2011 12:01:00 | Jörg Neumann

Die BASTA! hat wieder mächtig Spaß gemacht. Einen Dank an die Teilnehmer meiner Sessions! Hier das Material:

WPF Forum | ASP.NET Forum | ASP.NET MVC Forum | Silverlight Forum | Windows Phone 7 Forum | SharePoint Forum | Dotnet Jobs | Dotnet Termine | Developer Blogs | Dotnet News

Das Team | Regeln | Impressum