Windows Phone Mango sorgt für Kontakt 29.06.2011

Patric Schouler
Patric Schouler, Chief eXpert

Wie auf der MIX11 angekündigt, wird das Windows Phone Update mit dem Name Mango auch weitere Integrationsmöglichkeiten der eigenen App mit den sogenannten Hubs (= zentrale Anlaufstelle zur Daten- und Funktionssammlung mit ähnlichen Bezug – z.B. alles rund um meine “Kontakte”) enthalten.

Ein wichtiger Aspekt ist hier beispielweise die aktuell noch fehlende Möglichkeit zum Zugriff auf die Kontakt- und Termindaten.

Dazu wird es in Mango zusätzlich zu den schon vorhandenen Chooser-Tasks zur Auswahl einer E-Mail-Adresse und Telefonnummer aus dem Adressbuch, einen weiteren Chooser-Task AddressChooserTask zur Auswahl von Adressen geben.

Zusätzlich kann dann über eine neue API auch direkt auf Kontakte oder Termine zugegriffen werden. Das folgende Beispiel zeigt z.B. die Möglichkeit der Suche in den Kontakten über eine E-Mail-Adresse. Die Suche ist aber auch über andere Felder, wie beispielsweise DisplayName oder PhoneNumber möglich.

Contacts contacts = new Contacts();    
contacts.SearchCompleted += 
    new EventHandler<ContactsSearchEventArgs>(contacts_SearchCompleted );  
contacts.SearchAsync(        
    FilterTextBox.Text, 
    FilterKind.EmailAddress, 
    null );

Der Zugriff auf die Kontakte und Termine ist aber nur lesend möglich. Die weitere Einschränkung, das auf in sozialen Netzwerken gespeicherten Kontakten und Terminen nicht zugegriffen werden kann, scheint eher datenrechtlicher als technischer Natur zu sein.

More Integration

Neben diesen Möglichkeiten zum Zugriff auf die Kontakt- und Termindaten, werden mit dem Mango-Update noch weitere Verbesserungen zur Integration der Windows Phone Apps mit dem Kernsystem zur Verfügung stehen:

  • Intuitivere Integration eigenen Apps in den Musik-/Video- und Bilder-Hub. Der umständliche Weg über den Menüpunkt Extras entfällt damit
  • Direkter nativer Zugriff auf die Kameradaten und Bereitstellung der Silverlight 4 API für die Webcam zur Aufzeichnung von Videos
  • Eigene Apps können Erinnerungen und Alarme über ebenfalls neue Hintergrundprozesse auslösen
  • Mit “Deep Linking” aus dem Startbildschirm kann über den Tile der App in bestimmte App-Funktionen direkt gesprungen werden
  • Zugriff auf den Kompass und den neuen Gyro-Sensor (Kreisel-Sensor) mit Bereitstellung eines topologischen Frameworks

Natürlich lassen sich diese Features auch wunderbar kombinieren, so dass man nun die ultimative Geburtstags-Erinnerungs-App bauen kann, die auf die Startseite “gepinnt” auf die Kontaktdaten seiner “Liebsten” zugreift und den entsprechenden Alarm zum Geschenkekauf auslöst und dann im mobilen Webbrowser die entsprechende Amazon/eBay-Seite gemäß der persönlichen Vorlieben aufmacht – so bleibt einem der peinliche Weg zur Tankstelle erspart.

Fazit

Die hier aufgeführten Erweiterungen von Mango (Windows Phone 7.5) zeigen, das Microsoft seine Strategie einer hoch integrativen mobilen Plattform konsequent weiter verfolgt. Einen etwas bitteren Beigeschmack hat die Einschränkung das über die neuen APIs nicht auf die Kontakt- und Termindaten aus den verbundenen sozialen Netzwerken zugegriffen werden kann. Die neuen Funktionen könnten aber insgesamt dazu beitragen, das die Usabilty von Windows Phone weiter ansteigt.

Share |

Office Web Apps für SharePoint 2010 27.06.2011

Torben Mahr
Torben Mahr, Senior eXpert

Die Office Web Apps -bestehend aus Word, Excel, PowerPoint und OneNote- die Microsoft für Privatkunden kostenlos unter Windows Live zur Verfügung stellt, sind für Unternehmen mit einem Volumenlizenzprogramm auch für Server mit SharePoint Foundation 2010 oder SharePoint Server 2010 verfügbar.

Mit der Office Web Apps Suite können Benutzer, unabhängig von ihrem Standort, über eine vorhandene Internetverbindung und ihren Webbrowser auf die Unternehmensdokumente zugreifen und diese bearbeiten, ohne notwendigerweise den vollen Client von Word oder Excel installiert zu haben.

Hierbei ist es möglich, dass mehrere Nutzer zeitgleich am selben Dokument arbeiten und alle Änderungen in Echtzeit sichtbar sind. In der Statusleiste wird angezeigt, wer das Dokument bearbeitet.

Die Office Web Apps müssen jedoch auf dem SharePoint Server entsprechend nachinstalliert werden.

Ist dies geschehen, werden die SharePoint Service Applications um folgende neue Dienste ergänzt:

  • Word Viewing Service Application
  • Excel Calculation Service
  • PowerPoint Service Application

OneNote verfügt über keine dedizierte Service Application.

Diese drei neuen Service Applications müssen dann in der SharePoint Zentraladministration unter dem Punkt „Manage Service Applications“ jeweils noch aufgesetzt werden. Hierzu wird ein Application Pool und ein Konto zur Ausführung festgelegt, genauso wie es bei allen anderen SharePoint Service Applications der Fall ist.

SharePoint 2010

Abschließend werden die Office Web Apps Features in der Site Collection Administration aktiviert.

SharePoint 2010

Ab diesem Zeitpunkt werden Word, Excel und PowerPoint Dokumente bei Aufruf innerhalb des SharePoint Servers standardmäßig im Browser als Read-Only geöffnet.

Die Bearbeitung kann entweder innerhalb des Browsers oder aber in der normalen MS Office Anwendung erfolgen, sofern dieser auch installiert ist. Die entsprechende Option ist über die Toolbar wählbar.

Falls der Benutzer ein Dokument gleich in der normalen MS Office Anwendung öffnen möchte, ist dies über das Kontextmenü des Dokuments möglich.

Es empfiehlt sich, Silverlight installiert zu haben, da dies die Dokumentendarstellung beschleunigt.

Unterstütze Browser sind sind der Internet Explorer ab Version 7, Firefox ab 3.x, Google Chrome und Safari 4.x.

Wenn die Office Web Apps in einer SharePoint Farm auf mehreren Servern genutzt werden sollen, müssen sie auch auf jedem Server installiert werden. Außerdem ist zur Performancesteigerung ein Load Balancing bei mehreren Servern möglich.

Fazit

Die Office Web Apps sind eine gute Möglichkeit um Mitarbeitern von überall aus Zugriff auf Office Dokumente zu geben. Natürlich unterliegen die Office Web Apps bestimmten Einschränkungen beim Feature-Set im Vergleich zu lokal installierten Office Paketen. Beispielsweise können keine Dokumente mit Inhaltsverzeichnissen oder Fußnoten bearbeitet oder angezeigt werden und auch Excel bringt bei weitem nicht das Feature-Set wie der normale Client mit. Für einen Großteil der Anwender ist der Funktionsumfang aber wahrscheinlich ausreichend. Es empfiehlt sich dennoch, zusätzlich die lokale Office Suite installiert zu haben, um die noch vorhandenen Einschränkungen auszugleichen. Somit kann man diesen ersten Versuch von Microsoft als Erweiterung zur lokalen Office Suite sehen, ganz ablösen kann man diese hiermit derzeit aber noch nicht.

Share |

Neues von VisualStudio/TFS vNext 24.06.2011

Daniel Tonagel
Daniel Tonagel, Chief eXpert

Brian Harry, Product Unit Manager für den Team Foundation Server, ist mit seinem Blog eine hervorragende Quelle für Neuigkeiten rund um den TFS.

Vor kurzem hat er eine Serie über die Features der nächsten TFS Version gestartet. Ein Schwerpunkt der nächsten Version wird die Integration des Betriebs in die Feedbackschleife zum Support und den Entwicklern.

Gleichzeitig tut sich aber auch eine Menge in anderen Bereichen, unter anderem beim Projektmanagement. Unter den sich weiter verbreitenden agilen Methoden hat SCRUM am schnellsten Fahrt aufgenommen. Nachdem Microsoft letztes Jahr schon ein (kleines) Process Template für SCRUM nachgeschoben hat, nimmt das Thema im TFS jetzt richtig Fahrt auf.

Hintergrund ist u.a., dass auch die Developer Division bei Microsoft SCRUM als Prozessmodell einführt. Gemäß ihrem bewährten “Dogfooding” –Ansatz haben sie den neu eingebauten Support für SCRUM gleich an sich selbst getestet.

Die bisherigen Resultate sehen sehr vielversprechend aus. Um alle Beteiligten möglichst hindernisfrei einzubinden, steht der größte Teil der Planungstools per Web Access zur Verfügung. Daraus resultierte eine größere Überarbeitung des ganzen Team Web Access Zugriffs (den dieser auch bitter nötig hatte) in Richtung Usability und Performance.

Ein weiteres Feature ist die Definition von (Sub-)Teams. Der Team-Gedanke war bisher stark an das Team Project gekoppelt, was jedoch oft nicht der Realität entspricht, da durchaus mehrere Teams mit unterschiedlichen Sichtweisen an demselben Projekt arbeiten. Hier wird die nächste Version deutliche Verbesserungen bringen, indem Teams direkt in TFS angelegt und verwaltet werden können, die jeweils ihre eigene Sichtweise auf ein Projekt haben (und insbesondere für sie uninteressante Dinge aus der Informationsflut ausblenden können).

Wenn Microsoft jetzt noch seine Lizenzpolitik etwas besser auf die Reihe bekommt (insbesondere die Ultimate-Version ist preislich zu hoch angesetzt, weshalb zu wenige Leute sie kaufen), gibt es keinen Grund mehr, der nächsten TFS/VS Version nicht freudig entgegen zu blicken.

Einen kleinen Überblick über die wichtigsten vNext-Features gibt es hier, die Details zur Agile/SCRUM Unterstützung hier. Immer wieder interessant ist auch die Statistik über den Einsatz des TFS bei Microsoft selber hier.

Share |

JPMCC 2011: Startvideo der eXperts 22.06.2011

Svenja Henß
Svenja Henß, Senior Assistant

Ergänzend zum Flurfunk Artikel der letzten Woche, gibt es nun noch ein kleines Video, welches die eXperts beim Überqueren der Startlinie zeigt:

Wer erkennt alle (neongelben) eXperts? :-)

Viel Spaß beim Anschauen und schon jetzt ein schönes – hoffentlich verlängertes – Wochenende!

Share |

Erste Blicke auf Windows 8–Wegweisend oder Kahlschlag? 20.06.2011

Alexander Jung
Alexander Jung, Chief eXpert

Microsoft scheint gerade ein neues Talent zu entwickeln: Wie kann ich am besten über die Zukunft reden und dabei gleichzeitig das größtmögliche Maß an Verunsicherung bezogen auf die Gegenwart erzielen?

Auf der letzten PDC haben sie das getan, indem sie HTML5 (völlig nachvollziehbar) in den Fokus gerückt haben – dabei aber jeden Hinweis unterließen, was das im Bezug auf Silverlight heißt. Damit haben sie ohne jede Not für massive Verunsicherung bei den Silverlight-Entwicklern gesorgt, die – bei allen Dementis – bis heute anhält.

Man könnte denken, aus so einer Situation lassen sich Lehren ziehen …

Auf der Computex hat Microsoft nun erstmals offiziell Einblicke in das kommende Windows gewährt:

Building "Windows 8" - Video #1 (offizielles Video von Microsoft)

Weitere Links dazu zum Beispiel hier:

(Wem das nicht reicht: Bing liefert bei der Suche nach "Windows 8" 83 Mio. Treffer…)

In der Vorstellung von “Windows 8” ist nun die Rede von einer neuen “tile-based shell” und schließlich einem neuen Anwendungsmodell (beides unter den Code-Namen “Mosh” und “Jupiter” im Prinzip schon länger bekannt). Der eigentliche Sprengstoff aber liegt in folgender Aussage:

“Today, we also talked a bit about how developers will build apps for the new system. Windows 8 apps use the power of HTML5, tapping into the native capabilities of Windows using standard JavaScript and HTML to deliver new kinds of experiences.[…].” (link)

Während frühere Gerüchte von “new, Silverlight based ‘immersive’ applications” reden, und “these apps can be written in C#, Visual Basic, and even C++” (link), so heißt es jetzt: HTML5 + JavaScript. Punkt. Kein “these apps” sondern “Windows 8 apps”. Kein Silverlight, kein WPF, kein C#, kein .NET, … . Und auch auf Nachfragen keine Aussage.

Die Reaktionen ließen nicht lange auf sich warten: Bei heise noch moderat, bei MJ ein Mischmasch an Spekulationen. Aber spätestens im Silverlight-Forum kocht die Entwicklerseele über: Der erste Thread zum Thema “Windows 8 apps going html5, wtf” (link) wurde von den Moderatoren geschlossen – nach 192 Antworten und mit mittlerweile 12 Mio. Views. Der zweite Thread (link) hat mittlerweile 425 Antworten und auch schon wieder 3,7 Mio. views.

Reaktionen aus dem SDX Intranet sind ähnlich:

“WPF? Bevor Microsoft nicht mehr über Silverlight gesprochen hat, haben sie schon lange nicht mehr von WPF geredet. Wird in Zukunft nicht anders sein ...”

“Hm, dann ist es ja nur eine Frage der Zeit, bis Silverlight als Entwicklungsplattform für Windows Phone abgelöst wird. Es macht auf Dauer keinen Sinn, wenn Microsoft dieselbe Entwicklungsplattform auf Basis von HTML5 / JavaScript nicht auch in Windows Phone integriert.”

“Microsofts PR-Strategie verdient auch hier wieder viel Lob und Anerkennung. Um in so schneller Folge so viele Menschen zur Weißglut zu treiben, muss man normalerweise im landesweit ausgestrahlten TV vollkommen ausrasten. Microsoft erreicht dieselbe Wirkung, indem sie einfach gar nichts sagen ...”

In der Tat. Was sagt eigentlich Microsoft zu diesem Aufruhr?

“None of us at Microsoft can say anything until /build/ in September. No one likes that, including me. That's all we can do, however.” (link)

Übersetzung: Sie sagen nichts! Stattdessen:

“Speculation from people outside of Microsoft is just that, speculation. I know it's going to happen, but keep in mind that it's probably not correct.” (link)

Stimmt. Spekulationen. Aber was haben wir sonst?

Das eigentliche Problem ist nicht, dass Microsoft uns einen Blick in die Zukunft gewährt – im Gegenteil, das ist notwendig. Das Problem ist auch nicht, dass sich die Zukunft auf neue Dinge (inklusive neuer Technologien) bezieht – das liegt in der Natur der Sache. Das Problem ist noch nicht einmal, dass Microsoft nichts sagt, “nichts” im Sinne von “zu Silverlight/WPF/was-auch-immer haben wir momentan keine Neuigkeiten”.

Das Problem ist, dass Microsoft sagt, “zu Silverlight/WPF/was-auch-immer machen wir keine Aussage!”, so, als ob es da etwas gäbe. Und genau damit öffnen sie den Spekulationen Tür und Tor, einschließlich der Verunsicherung der Entwicklergemeinde, die das mit sich bringt. Microsoft ist hier nicht das Opfer von Spekulationen. Microsoft ist der Verursacher.

Da hilft es leider nicht, sich sachlich mit Fragen auseinanderzusetzen wie: Was hat Microsoft eigentlich wirklich gesagt? Was hat die Desktop-Strategie mit der RIA-Plattform oder WP7 zu tun? Oder: Glaubt wirklich jemand, dass HTML + JavaScript in der Lage ist, .NET/WPF als Plattform für echte Desktop-Anwendungen abzulösen? Denn auch wenn die meisten Spekulationen genauem Hinterfragen nicht standhalten – sie alle tragen den “Keim des Möglichen” in sich. In einem von Unsicherheit geprägten Klima ist das genug.

Daher mein Fazit: Der Blick in die Zukunft, den Microsoft mit “Windows 8” gewährt hat, ist in mancher Hinsicht wegweisend. Der Flurschaden der dabei durch die Art und Weise angerichtet wurde, kommt aber einem Kahlschlag gleich.

Share |

JPMCC: Gänsehautfeeling pur! 17.06.2011

Svenja Henß
Svenja Henß, Senior Assistant

Wie heißt es so schön? Aller guten Dinge sind 3. Dies können wir nach der gestrigen J.P. Morgan Corporate Challenge nur bestätigen. Die Stimmung an der Strecke war auch im dritten Jahr einfach wieder genial. Gänsehautfeeling pur!

Einen herzlichen Dank auch nochmal an das Anfeuerteam. Ihr habt uns die letzten Meter noch einmal “gepusht”. :-)

Nach dem Lauf ließen wir den Abend auf der Außenterrasse des KuBu bei kühlem Bier und leckerem Essen ausklingen. 

Es war ein unvergessliches Erlebnis und wir freuen uns schon auf das nächste Jahr!

Noch mehr Fotos gibt auf der SDX Facebook Seite (www.facebook.com/SDX.AG)

CIMG3753CIMG3755 CIMG3746 CIMG3763CIMG3764CIMG3761CIMG3762IMAG1288IMAG1287IMAG1306CIMG3776  CIMG3777CIMG3773

Share |

HTML5 Support für Visual Studio 2010 16.06.2011

Patric Schouler
Patric Schouler, Chief eXpert
Jetzt ist es endlich soweit – mit dem neuen Web Standards Update für Visual Studio hat man nun auch hinreichende HTML5 HTML5 Visual StudioUnterstützung in Visual Studio.
 
Dieser Update für HTML5 bietet Verbesserungen wie Intellisense und Validierungen für HTML5, CSS3 und die neuen Java Script Features.
 
Unterstützt werden inklusive der Express Edition alle Visual Studio 2010 Versionen.
 
Das Web Platform und Tools Team um Mads Kristensen plant alle drei Monate einen neuen Update zu veröffentlichen, um Visual Studio mit den aktuellsten W3C Änderungen für HTML5 aktuell zu halten.
 
Weitere Details sind hier zu finden.
 
 
Share |

Version 1.1 von Caliburn Micro als RTW verfügbar 15.06.2011

##Name des eXperts##
Gerrit Puddig, Principal eXpert

 

Seit gestern kann die aktuelle Version 1.1 von Caliburn Micro per Nuget oder Codeplex-Seite bezogen werden. Es gibt zahlreiche Bugfixes und Verbesserungen wie beispielsweise:

 

Windows Phone 7 (WP7)
  • Eine neue Tombstoning API, welche sich an Fluent NHibernate orientiert
  • Eine neue Start/Auswahl API
  • Stark typisierte Navigation SimpleContainer ist jetzt enthalten
  • Bessere App-Lifecycle Steuerung
Windows Presentation Foundation (WPF)
  • Unterstützt das Client Profile
  • Bessere Unterstützung für WinForms Integration
Alle
  • Neuer RegEx-basierter ViewModelLocator
  • Polymorphe Subscriptions und Custom Thread Marshaling beim EventAggregator

Ich empfehle den Einsatz per Nuget. Damit wird das Einbinden des Frameworks zum Kinderspiel. Viel Spaß beim Ausprobieren der neuen Features.

Share |

Account Manager (m/w) gesucht! 10.06.2011

Simone Franz
Simone Franz, Marketing Manager

SDX unterstützt als IT-Dienstleister Großunternehmen
(u.a. Commerzbank, Dekabank, Helaba, Universal Investment, Deutsche Telekom, Deutsche Bahn, Deutsche Post)
bei der Realisierung von unternehmenskritischen Softwareentwicklungs- und Business-Intelligence-Projekten
auf der Microsoft Application Platform.

 

Sie verstehen die technischen, fachlichen und wirtschaftlichen Anforderungen unserer Kunden sowie die Strukturen und (Einkaufs-) Prozesse in der Unternehmens-IT.

Sie beherrschen das komplexe Zusammenspiel zwischen selling- und buying-teams und positionieren dadurch unsere SDX Services bei Bestands- und Neukunden.

Sie arbeiten systematisch an einer permanent gefüllten Pipeline und nutzen hierfür konsequent entsprechende Werkzeuge (CRM-System, Microsoft Office).

Sie lieben den Kontakt zu Menschen, telefonisch und persönlich, und verstehen es, durch Ihre Kompetenz und starke Soft Skills Vertrauen aufzubauen.

Sie verantworten unsere auf langfristige Zusammenarbeit ausgelegten Kundenbeziehungen und erzielen dadurch nachhaltige Vertriebsergebnisse.

… oder um es auf den Punkt zu bringen, Sie sind wie unsere SDX eXperts

Leidenschaftlich! Professionell!

Wenn Sie als Wirtschaftsinformatiker (o.ä. Studienabschluss) mit Berufserfahrung im Account Management mit einem starken eXpert Team interessante Opportunities zu erfolgreichen Projekten machen wollen, dann bewerben Sie sich bitte bei Simone.Franz@sdx-ag.de.

Mehr über die SDX und die SDX eXperts finden Sie unter http://Flurfunk.sdx-ag.de oder www.Facebook.com/sdx.ag

Share |

HTML5 rocks!

Matthias Jauernig
Matthias Jauernig, Senior eXpert

Mit großen Schritten schreitet die Verbreitung von HTML5 voran. Immer mehr Browser wie die aktuellen Versionen von Firefox, Internet Explorer, Chrome und Opera unterstützen viele der neuen HTML5-Features bereits jetzt. Und selbst große Webseiten wie die Google Apps werden in naher Zukunft auf HTML5 umstellen.

Auch abseits starkbrüstiger PCs tut sich viel: Microsoft z.B. will mit dem Mango-Release im Herbst 2011 den IE9 Mobile und damit HTML5 auf Windows Phone bringen. Und damit nicht genug: HTML5 und Javascript sollen eine Entwicklungsplattform für das kommende Microsoft-Betriebssystem Windows 8 werden, wie Steven Sinofsky auf der D9-Konferenz am 1.6. verriet.

Doch was steckt eigentlich hinter dem Buzzword HTML5? Welche Funktionen beinhaltet der neue Web-Standard, der ja immer noch nicht final ist? Auf diese Fragen möchte die Seite HTML5ROCKS Antworten liefern. Neben eingehenden Beschreibungen von Features im Bereich Multimedia, Offline, Storage, Graphics, usw. bietet die Seite auch viele Beispiele für interessierte Webentwickler. Und passenderweise auch eine sehr schöne interaktive Präsentation über HTML5… in HTML5 (am besten in Firefox oder Chrome öffnen)!

html5_presentation

HTML5 wird das Web in absehbarer Zukunft weiter durchdringen. Wir als SDX AG sind dafür gerüstet und haben frühzeitig HTML5-Know-how aufgebaut. Daher dürfen sich alle Leser des Flurfunks auf weitere Blogbeiträge zu diesem Thema freuen. wobei u.a. auf die Entwicklung von HTML5-Anwendungen mit Microsoft-Technologien eingegangen wird.

Share |

JPMCC: Der Countdown läuft! 09.06.2011

Svenja Henß
Svenja Henß, Senior Assistant

Auch dieses Jahr sind die eXperts wieder bei der J.P. Morgan Corporate Challenge dabei. Mit insgesamt 15 Läufern werden wir nächsten Mittwoch an den Start gehen. Wie auch im letzten Jahr werden wir dabei kräftig von unserem Anfeuerteam unterstützt.

Insgesamt sind dieses Jahr 68.545 Läuferinnen und Läufer aus 2.742 Firmen beim Lauf durch die Frankfurter Innenstadt dabei.

Nun heißt es nur noch Daumen drücken, dass auch das Wetter mitspielt und wir den Abend gemeinsam auf der Terrasse des KuBus direkt an der Alten Oper ausklingen lassen können.

Weitere Infos zum den eXperts bei der J.P. Morgan Corporate Challenge gibt es auf der SDX Facebook Seite: www.facebook.com/SDX.AG

Zur Einstimmung hier noch ein Bild des J.P. Morgan Laufs 2010:

IMG_5589

Share |

Windows Phone wird mit Mango relational 08.06.2011

Patric Schouler
Patric Schouler, Chief eXpert

Mit dem für das 4. Quartal angekündigtem Mango-Update von Windows Phone 7 (Version sehr wahrscheinlich Windows Phone 7.5) wird nun eine relationale Datenbank in Form einer SQL Server Compact Edition (CE) für das Windows Phone zur Verfügung gestellt.

Damit es dann möglich, größere Datenmengen lokal in relationaler Form abzuspeichern. Der Zugriff ist allerdings auf die jeweilige App beschränkt, da die SQL Compact Datenbank auch im Isolated Storage abgelegt wird. Aktuell muss zur Speicherung von größeren Datenmengen noch auf 3rd Party Lösungen wie z.B. Ninja Database Lite (Ninja Database Lite) zurückgegriffen werden. Üblicherweise werden deshalb in heutigen Apps sehr oft die Daten durch Serialisieren bzw. Deserialisieren der Daten und Speicherung in XML-Dateien persistiert. Da dieser Vorgang sehr zeitaufwändig ist und eine entsprechende Implementierung stets mit einer Auslagerung in Hintergrund-Prozessen verbunden ist, stand die Unterstützung einer lokalen SQL Server Datenbank sehr weit oben auf der Wunschliste. Für Entwickler wird diese Möglichkeit bereits Ende Mai mit dem Update der Windows Phone Developer Tools zur Verfügung stehen.

Ein kleiner Wehrmutstropfen muss die Entwicklergemeinde aber dennoch schlucken. Die SQL Server Compact Edition für Windows Phone wird zunächst keine direkte Synchronisation mit einer Unternehmensdatenbank und keinen Zugriff über DML/DDL Kommandos unterstützen. Eine Verwaltung der SQL Server Compact Datenbank wird für den Entwickler über Visual Studio und zusätzlichen Tools möglich sein.

Für den Zugriff auf die SQL Server Compact Datenbank aus einer App steht Linq to SQL zur Verfügung. Linq to SQL besteht aus einem Objektmodell und einer Laufzeitkomponente. Die Laufzeitkomponente handhabt die Kommunikation zwischen dem Objektmodell und der lokalen relationalen Datenstruktur in der SQL Server Datenbank. Das Linq to SQL für Windows Phone ist nahezu identisch mit dem normalen Linq to SQL. Ein einschneidender Unterschied ist das Fehlen von ExecuteCommand, so dass keine Transact SQL Befehle direkt ausgeführt werden können. Eine genaue Aufstellung der Abweichungen sind unter LINQ to SQL Support for Windows Phone zu finden.

Der DataContext

Durch den DataContext erfolgt der Zugriff auf die gemappten SQL-Tabellen. Hierzu muss lediglich eine neue Klasse von DataContext abgeleitet werden.

public class PrivatbilanzDataContext : DataContext
{
    public Table<Aktie> Aktien; 
    public Table<Immobilie> Immobilien; 
    public BooksDataContext(string connection) : base(connection) { }
}
Datenklasse

Die Definition der dazugehörigen Daten-Klassen erfolgt recht einfach, wie es am Beispiel der Immobilie zu sehen ist.

[Table] 
public class Immobilie
{
    [Column( IsPrimaryKey = true )]  
    public string ImmobilienID { get; set; }   
    [Column]    
    public string Bezeichnung { get; set; }   
    [Column]    
    public string Ort { get; set; }      
    [Column]  
    public int Baujahr { get; set; }
}

Durch Linq to SQL wird diese Struktur auf die entsprechende Tabellenstruktur gemappt. Existiert die Datenbank und damit die Tabellenstruktur noch nicht, kann man sich die Datenbank auch durch die Linq to SQL Laufzeitkomponente durch CreateDatabase erzeugen lassen. Es existieren zusätzlich zu den Attributen Table und Column noch Weitere, um z.B. Relationen abzubilden.

Datenbank-Instanz erzeugen
var dbContext = new BooksDataContext("isostore:/PrivatbilanzDB.sdf");
if (!dbContext.DatabaseExists())
{
    dbContext.CreateDatabase();
}
Objekte einfügen

Sollen neue Tabelleneinträge in der Datenbank angelegt werden, muss lediglich eine neue Instanz der zuvor definierten Datenklasse erzeugt und anschließend im entsprechenden DataContext-Objekt hinzugefügt werden. Durch den Aufruf von SubmitChanges werden dann alle offenen DB-Aktionen des DataContext ausgeführt.

var immobilie = new Immobilie()
    {
        ImmobilieID = "1",    
        Bezeichnung = "Villa Wunderschön",   
        Ort = "Chiemsee",   
        Baujahr = 1895
    }; 
            
db.Immobilien.InsertOnSubmit( immobilie );
 
db.SubmitChanges();
Datenbank abfragen

Mittels einer normalen Linq-Abfrage können dann die Inhalte der lokalen Datenbank über den DataContext abgefragt und dann z.B. einer ListBox als Quelle übergeben werden:

var q = from immo in db.Immobilien            
        orderby immo.Bezeichnung    
        select immo;   
List<Immobilie> immobilien = q.ToList();
 
ImmobilienListBox.ItemsSource = immobilien;

Fazit

Mit der lokalen SQL Server Compact Datenbank steht dem Entwickler mit dem Mango-Update von Windows Phone eine leistungsfähige Erweiterung zur Verfügung, um auch größere Datenmengen lokal zu speichern und mit bekannten Mitteln abzufragen. Die Defizite wie die fehlende Möglichkeit einer direkten Datenbank-Synchronisierung sind erst einmal zu verkraften, weil man dies auch durch Web-Services bewerkstelligen kann.

Share |

HTML5: Die Geolocation API 06.06.2011

Torben Graefe
Torben Graefe, Senior eXpert

Eine der interessantesten Neuerungen von HTML5 ist die Geolocation API, mit der sich Positionsdaten im Browser ermitteln lassen. Voraussetzung hierfür ist ein HTML-fähiger Browser der aktuellen Generation (z. B. Internet Explorer 9) und die ausdrückliche Einverständniserklärung des Browser-Benutzers, einer Seite Zugriff auf seine Positionsdaten zu erlauben.

Am meisten Sinn macht die Verwendung der Geolocation API natürlich bei Geräten, die über einen GPS-Sensor verfügen. Alternativ dazu kann die Position des Anwenders aber auch u. a. über WIFI positioning (WPS) und die IP-Adresse des Benutzers näherungsweise bestimmt werden. Welche Methode zum Einsatz kommt, entscheidet der Browser bzw. dessen Konfiguration.

Der Zugriff auf die Geolocation API erfolgt HTML5-typisch per JavaScript. Als Erstes sollte überprüft werden, ob die Geolocation API vom verwendeten Browser unterstützt wird:

   1: if (navigator.geolocation) {
   2:     // do geolocation …
   3: }

Ist dies der Fall, reicht ein weiterer Funktionsaufruf aus, um den Standort des Benutzers zu ermitteln

   1: navigator.geolocation.getCurrentPosition([success], [error]);

Die Platzhalter [success] und [error] sind in der Praxis durch die Namen der entsprechenden Event-Handler-Funktionen zu ersetzen.

Sobald getCurrentPosition aufgerufen wird, erhält der Anwender eine Benachrichtigung von seinem Browser, dass die Webseite Zugriff auf seine Positionsdaten haben möchte. Der Anwender kann dann beispielsweise entscheiden, ob er diese Informationen der Seite einmal, immer oder nie zur Verfügung stehen. Die Default-Option ist in den meisten Fällen "einmal", was z. B. im Internet Explorer 9 bewirkt, dass der Webseite solange Positionsdaten zur Verfügung gestellt werden, bis der Anwender von dieser weg navigiert. Ein Postback oder Refresh der Webseite ist also ohne Weiteres möglich, ohne die Erlaubnis für die Positionsdatenabfrage erneut einholen zu müssen.

Mit dem optionalen Parameter maximumAge lässt sich festlegen, wie lange auf Daten aus dem Cache zurückgegriffen wird. Sehr kleine Werte können bei häufigen Aufrufen auf mobilen Endgeräten negative Auswirkungen auf den Verbrauch der Akkuladung haben. Mit einem weiteren optionalen Parameter namens Timeout lässt sich festlegen, wie lange auf die Positionsdaten gewartet werden soll.

Der folgende Aufruf führt dazu, dass die Positionsdaten neu ermittelt werden, wenn die Positionsdaten im Cache älter als eine Minute sind. Außerdem wird maximal 30 Sekunden auf die Rückmeldung gewartet, andernfalls wird der Error-Handler aufgerufen.

   1: navigator.geolocation.getCurrentPosition([success], [error],
   2:                       {maximumAge: 60000, timeout: 30000});
 
Alternativ kann auch ein Watchdog mit einem Event-Handler eingerichtet werden, um die Positionsdaten kontinuierlich abzufragen:
 
   1: var watchId = navigator.geolocation.watchPosition([success], [error]);

Der Success-Event-Handler könnte beispielsweise eine Funktion sein, die neue Position des Anwenders auf einer Karte markiert.

Wurde der Standort erfolgreich ermittelt, stehen im entsprechenden Event-Handler u. a. folgende Daten zur Verfügung:

  • coords.latitude (geographische Breite)
  • coords.longitude (geographische Länge)
  • coords.altitude (geographische Höhe)
  • coords.heading (Blickrichtung)
  • coords.accuracy (Genauigkeit in Metern)
  • coords.speed (Bewegung in Metern / Sekunde)

Auf Basis dieser Werte, die je nach Hardware unterschiedlich aussagekräftig sind, ist dann die Implementierung einer Vielzahl von eigenen Funktionen denkbar.

Ein einfaches Beispiel ist hier zu finden: http://html5demos.com/geo

Im Fehlerfall erhält der Event-Handler eine Nachricht mit Fehlerinformationen. Hierbei ist zu beobachten, dass die Weigerung des Benutzers, seine Positionsdaten preiszugeben, nicht in jedem Browser zum Aufruf des Error-Handlers führt, obwohl es einen Fehler-Code PERMISSION_DENIED gibt. Auch ein etwaiger Timeout-Parameter führt beim Verweigern der Erlaubnis nicht zum Aufruf des Error-Handlers, sondern bezieht sich nur auf Timeouts einer bereits erlaubten Anfrage. Das Problem war sowohl im Internet Explorer 9 als auch im Firefox 4 zu beobachten, während z. B. Opera und der Android-Browser sich mit dem Code PERMISSION_DENIED beim Error-Handler meldeten. Die Webseite muss also damit umgehen können, dass gar nichts passiert oder über eine eigene Implementierung feststellen, dass die Erlaubnis in einem Zeitfenster nicht erteilt wurde. Es könnte aber auch sein, dass der Benutzer einfach nur lange braucht.

Letztendlich kann aber diese Unzulänglichkeit den ansonsten guten Eindruck von der HTML5 Geolocation API kaum schmälern. Dank der breiten Unterstützung durch alle großen Browser-Hersteller ist die Geolocation API eines der ersten HTML5-Features, welches schon bei den Endverbrauchern angekommen ist. Ein Beispiel hierfür sind die mobilen Portale der Verkehrsanbieter, von denen immer mehr die GPS-Ortung im Browser anbieten, um den Anwendern das Eintippen ihres Standortes und die Tücken der Spracheingabe zu ersparen.

Share |

Silverlight 5 - Ein Ausblick 01.06.2011

Patric Schouler
Patric Schouler, Chief eXpert

Am zweiten Tag der Entwicklerkonferenz MIX11 hat Scott Guthrie die neue Version 5 von Silverlight vorgestellt und in seiner Rede auch noch einmal deutlich gemacht, dass Silverlight weiterhin ein wichtiger Teil der Webstrategie von Microsoft ist. Silverlight 5 ist mit über 40 neuen Features als Beta-Version verfügbar und soll im 4. Quartal diesen Jahres erscheinen.

Silverlight 5 bietet neben vielen Erweiterungen, die mehr entwicklerspezifisch sind, auch einige neue Möglichkeiten, die sich direkt auf die Benutzerfunktionalitäten und Einsatzszenarien der Plattform Silverlight auswirken (siehe auch Blog - Pete Brown's 10rem.net). Auf diese Features wird in diesem Beitrag das Hauptaugenmerk gelegt.

Silverlight 5

Erweiterungen von Silverlight 5

Eine Übersicht gibt The Future of Microsoft Silverlight | Microsoft Silverlight und eine Liste der technischen Details für Silverlight 5 ist hier zu finden.

Einsatzszenario: Trusted Mode

Hinsichtlich des Trusted Mode gibt es in Silverlight 5 sehr viele Änderungen, die zu geänderten Anwendungsszenarien von Silverlight führen können. Prinzipiell wird Silverlight in einer Sandbox ausgeführt und es stehen keine Zugriffsmöglichkeiten auf lokale Ressourcen zur Verfügung. Um dies zu ermöglichen, kann bereits eine Silverlight 3 Anwendung Out-Of-Browser installiert werden, seit Version 4 kann sie im Trusted Mode zusätzliche Berechtigungen in Anspruch nehmen (siehe Darstellung).image

Mit Silverlight 5 ist dann auch die Ausführung einer “Trusted Application” im Browser möglich. Zur Ausführung ist ein von VeriSign ausgestelltes Zertifikat nötig. Inwieweit dies über Group Policies limitiert werden kann, ist in der Beta-Version noch nicht enthalten. Dies soll aber als grundlegendes Konzept in die finale Version von Silverlight 5 eingebaut werden.

Trusted “In-Browser” Silverlight Anwendungen können dabei auch in eine vorhandene HTML-Seite eingebunden werden und diese beiden Komponenten dann miteinander kommunizieren.

Mit Silverlight 4 wurde bereits eine COM-Schnittstelle zur Verfügung gestellt, mit deren Hilfe man zum Beispiel Excel aufrufen und über normale COM-Syntax Objekte und Methoden von Excel aufrufen konnte. Hiermit war z.B. die einfache Ausgabe von Statistiken oder grafischen Auswertungen möglich. Die COM-Kommunikation bietet sich gerade zur Interaktion mit Office Produkten an. Möchte man aber Schnittstellen zu 3rd-Party Produkten nutzen oder spezielle Hardware aus der Silverlight Anwendung ansprechen, so war dies nur schwer möglich. Mit Silverlight 5 steht hier nun aber eine einfache Lösung zur Verfügung. In einer Silverlight 5 Anwendung kann über P/Invoke auf der Windows-Plattform die komplette Win32-API genutzt werden. Nach Bestätigung durch den Benutzer bzw. durch die Freigabe mit Group Policies können durch eine Silverlight 5 Applikation alle Betriebssystemfunktionen verwendet und somit eine Kommunikation mit Legacy Anwendung ermöglicht werden. Verwendet man einer dieser Möglichkeiten ist dann eine Silverlight-Applikation natürlich nicht mehr plattformunabhängig, sondern nur noch unter Windows-Betriebssystemen ablauffähig.

Out-Of-Browser

Mit Silverlight 3 war es bereits möglich eine Silverlight Anwendung lokal zu installieren und “scheinbar” als normale Desktop-Anwendung in einem eigenen Fenster laufen zu lassen. Das Problem war hier lediglich, das man genau auf diesem “einem” Fenster limitiert war. Mit Silverlight 5 ist es nun möglich, aus einer Anwendung mehrere Fenster zu öffnen und diese miteinander kommunizieren zu lassen.

UI Verbesserungen

Im Bereich der Textdarstellung stehen mit Silverlight 5 folgende Neuerungen zur Verfügung:

  • Mittels den neuen Controls RichTextBox und RichTextBoxOverflow ist es möglich, mehrzeiligen und umfließenden Text, ähnlich einem Zeitung-Layout, zu erzeugen
  • Klarere Text-Darstellung
  • Schnelleres Rendering
  • Verbesserung der OpenType Unterstützung

Auch die Druckaufbereitung wurde dadurch verbessert, das man nun vektorbasiert auf Basis von PostScript – man fragt sich warum nicht XPS – drucken kann. Bislang war es nur möglich, in Silverlight eine XAML-Seite zu rendern und dann als Bitmap auszudrucken.

Auf Platz 3 der Silverlight Wunschliste stand echtes 3D Rendering, was mit Silverlight 5 nun zur Verfügung steht. Bekannte Beispiele sind die HouseBuilder Anwendung, welche John Papa auf der Mix11 gezeigt hat und Solar Wind 3D von Aaron ONeal.

Verbesserte MVVM-Unterstützung

Durch vielseitige Verbesserungen zur Unterstützung des beliebten MVVM (Model-View-ViewModel) Patterns bietet Silverlight 5 eine Effizienzsteigerung in der Entwicklungsphase, weil alle wichtigsten Mechanismen aus WPF (Windows Presentation Foundation) nun in Silverlight eingeflossen sind und man sich nicht mehr so vieler Workarounds in diesem Bereich bedienen muss.

Die wichtigsten dieser Neuerungen sind:

  • Implicit Data Templates, zur Definition von XAML-Vorlagen für unterschiedliche Objekttypen z.B. in einer ListBox
  • Binding in Styles, um Styles zur Laufzeit z.B. durch Benutzereinstellungen einfach änderbar zu machen
  • Relative Source Binding in Templates
  • Custom Markup Extensions
  • ICustomTypeProvider zur Bindung von dynamischen Eigenschaften

Fazit

Mit Silverlight 5 wird es wieder ein Stück einfacher noch komfortablere webbasierte LOB-Applikationen zu entwickeln. Gleichzeitig werden mit den neuen Möglichkeiten im Trusted Mode aber auch neue Horizonte im Bereich der Desktop-Applikationen erschlossen. Dem Benutzer können so Desktop-Applikationen mit bewährtem Browsernavigationsmodell oder als normale Windows-basierte Desktopanwendung bereit gestellt werden. Die automatische Softwareverteilung ist in allen Szenarien bereits inklusive.

Share |