.
Anmeldung | Registrieren | Hilfe

Verknüpfungen

Mitmachen!

  • Eigenen Blog eröffnen

Dotnet-forum.de Blogger

Weitere Blogger

.NET-Blog Archiv

.NET Developer Blogs

IE: neu geöffnetes Tab bleibt leer, obwohl Einstellung geändert

17.06.2013 21:24:00 | Peter Bucher

Darauf muss man zuerst kommen: Die Toolbar des Antiviren Programms "Free AVG" verpfuscht die Internet Explorer Einstellungen.

Das wirkt sich so aus, dass nach jedem Neustart und obwohl schön neu eingestellt, beim öffnen eines neuen Tabs nur eine leere Seite kommt.
Und nicht wie gewünscht die erste Startseite als neues Tab.

Der Übeltäter kann entweder auf die angenehme oder auf die harte Tour entfernt werden.
Nachdem entfernen einmal das gewünschte einstellen und es bleibt auch.

Quelle: http://answers.microsoft.com/en-us/ie/forum/ie9-windows_vista/new-tab-page-on-internet-explorer-keeps-changing/6dd63d7a-1181-4ffb-a256-225ba5a528e1


Kostenloser Livestream der Developer Week 2013

17.06.2013 20:58:44 | Hendrik Loesch

Da ich nächste Woche als Sprecher auf der Developer Week unterwegs bin, möchte ich an dieser Stelle auch ein wenig die Werbetrommel rühren. Denn die Veranstalter bieten dieses  Jahr etwas Besonderes an. Für alle die nicht dabei sein können, gibt es 15 Sessions kostenlos als Live Stream! Einer davon ist mein eigener. Wer also Lust [...]

Office Mobile for iPhone Release

14.06.2013 18:08:03 | Oliver Scheer

Am Freitag veröffentlichen wir in den USA Office Mobile für das iPhone im Apple App Store ohne zusätzliche Kosten für Office 365 Abonnenten. Ab dem 18. Juni wird Office Mobile… ...read more...(read more)

//build Keynote-Live-Viewing in Deutschland

14.06.2013 18:04:56 | Oliver Scheer

Google und Apple haben ihre Pläne für das neue Jahr vorgestellt. Jetzt ist es an der Zeit zu sehen, auf welche neuen Produkte und Services Microsoft zukünftig setzt: Am 26.… ...read more...(read more)

Neue Funktion um Unit-Tests in VS2012 zu generieren

13.06.2013 10:21:07 | Thomas Schissler

In Visual Studio 2010 gab es eine Funktion um durch Rechtsklick auf eine Methode einen Unit-Test-Stub für diese Methode zu generieren. Diese Funktion fehlt leider in VS 2012 nachdem Microsoft dort das Unit-Test Framework komplett umgebaut hat. Eine kleine Extension von der VSGallery, erstellt von den ALM Rangers fügt diese Funktion VS 2012 nun wieder hinzu.

image


Neue Windows Phone 8 Sample Apps verfügbar

12.06.2013 06:46:37 | Oliver Scheer

Das Windows Phone Team hat neue Sample Apps für Windows Phone 8 bereitgestellt. Neben den bereits sehr umfangreichen Beispielen die es hier frei zum Download erhältlich sind. (Link) Stored Contacts… ...read more...(read more)

Key Codes for Coded UI Tests

11.06.2013 23:51:32 | Hendrik Loesch

A colleague of mine asked me this week how he can emulate special keys in Coded UI Tests. I knew that I wrote that in my book but actually did not find the official reference in the MSDN. That’s why I will provide it here again. The Keyboard class provides different methods with which you [...]

Sei nett zu deinem DBA...

11.06.2013 21:26:00 | Martin Hey

... und setz den Application Name im ConnectionString.

Wer schon einmal in die Verlegenheit kam, und prüfen musste, warum es auf einer Datenbank zu Fehlern kommt und welche Anwendung diese erzeugt, der wird froh sein, wenn der Application Name gesetzt war.

Worum geht es?

Beim Verbindungsaufbau zum SQL Server wird nicht nur Benutzername und Kennwort, sondern auch ein Anwendungsname ausgetauscht. Dieser Anwendungsname wird in Tracing-Tools (wie z.B. dem Profiler) auch angezeigt.

Nun ist es für die Fehlersuche sehr sinnvoll, wenn dieser Anwendungsname eindeutig ist.

Leider wird in der Praxis häufig vergessen, diesen zu setzen, was dazu führt, dass hier nur der Standardwert .NET SQLClient Data Provider steht. Das ist für die Problemsuche nicht sehr hilfreich. Mit den neueren Projekt-Templates von Visual Studio, in denen Entity Framework verwendet wird, hat sich dieses Problem nur etwas verlagert. Hier ist der Parameter zwar schon im ConnectionString enthalten, wird aber auf den neuen Standardwert EntityFramework gesetzt - auch nicht sehr hilfreich.

Wie setzt man den ApplicationName?

Im ConnectionString gibt es den Parameter Application Name oder die gleichbedeutende Abkürzung App. Dieser muss gesetzt werden. 

Beispiele:

<connectionStrings>
    <add name="MyEntities" connectionString="metadata=res://*/Models.MyModel.csdl|res://*/Models.MyModel.ssdl|res://*/Models.MyModel.msl;provider=System.Data.SqlClient;provider connection string="data source=.;initial catalog=MyDb;integrated security=True;MultipleActiveResultSets=True;App=Meine Anwendung"" providerName="System.Data.EntityClient" />
</connectionStrings>
<connectionStrings>
    <add name="DefaultConnection" connectionString="Server=.;Database=MyDb;Integrated Security=SSPI;Application Name=Meine Anwendung;" providerName="System.Data.SqlClient" />
</connectionStrings>

Das geht sowohl in klassischen ConnectionStrings als auch in Connectionstrings für das Entity Framework.


Kostenloses Coworking mit Microsoft

11.06.2013 14:50:51 | Andre Kraemer

WP_20130529_006Am 29. Juli haben Timo, Vitali und ich interessantes Angebot von Microsoft in Anspruch genommen. Im Rahmen der BizSpark on Tour Aktion haben wir uns einen kostenloses Coworking Space im Startplatz in Köln gebucht.

Während so eines Coworking Termins kann man mit der Unterstützung von Microsoft Mitarbeitern an Windows Store Apps oder Windows Phone Apps arbeiten. Wir haben uns dazu entschieden unsere gmail calender Windows 8 App, mit der wir Termine des Google Kalenders anzeigen, auf nächste Level zu bringen.

Die erste Version der App hatten wir Ende März “über Nacht” entwickelt und nach und nach Features nachgeliefert. Meist geschah dies jedoch nach Feierabend. Die App hatte immer noch einige Macken bzw. eine fehlende Features. Daher kam uns Microsofts Coworking Angebot gerade recht. Mit der Unterstützung der beiden Microsoft Kollegen Daniel Meixner und Malte Lantin konnten wir an diesem Tag einige Fehler ausmerzen und lang gewünschte Features einbauen.

Der Tag stand für uns unter dem Motto:

Show Pride in Craftmanship

Dies ist eines der fünf Microsoft Design Style Prinzipien. Der Kern dieses Prinzips sagt aus, dass man seine Anwendung sicher und zuverlässig machen sollte (make it safe and reliable) und sich wirklich um die Details kümmern sollte (Sweat the details).

Und genau das haben wir an diesem Tag gemacht:

Timo und ich haben uns darum gekümmert, die Zuverlässigkeit der Synchronisation zu Google zu verbessern. Außerdem haben wir das Live Tile und die Integration in den Lock Screen verbessert. Vitali hat den Tag dazu genutzt das meist gewünschte Feature, nämlich die Bearbeitung von Terminen zu implementieren.

Alles in allem war es ein wirklich toller Tag. Die beiden Microsoft Kollegen waren wirklich sehr hilfsbereit und uns bei der Analyse einiger Probleme unterstützt. Außerdem konnten wir die Gelegenheit auch nutzen um in lockerer Atmosphäre mit Startup Flair über diverse andere Windows 8 und Windows Phone 8 Themen zu diskutieren. Aus unserer Sicht war der Tag daher ein voller Erfolg!

Hast du auch Lust auf einen Coworking Termin bekommen?

Die Aktion läuft übrigens noch einige Tage in Köln und Berlin. Wenn du also auch Lust darauf hast eine Windows 8 oder Windows Phone 8 App zu entwickeln, oder weiter zu entwickeln, kannst du dich auf der BizSpark Seite für einen kostenlosen Termin registrieren. Im Moment sind noch einige Plätze frei!


Bloggen unter Mac OSX

10.06.2013 16:41:00 | Ralf Westphal

Bloggen jetzt auch von Mac OSX aus? Das muss ich ausprobieren. Ich habe keine Lust, immer wieder für bequemes Bloggen Windows mit dem Windows Live Writer anzuwerfen. Der macht das Schreiben und Publizieren zwar sehr einfach - doch Windows ist eine Last in dem Zusammenhang. Aber jetzt bin ich irgendwie auf Byword gestoßen. Eigentlich benutze ich Mou für Markdown und bin damit zufrieden. Doch

.NET User Group Karlsruhe: StreamInsight: Complex Event Processing by Microsoft

10.06.2013 14:52:16 | Alexander Zeitler

.NET Usergroup Karlsruhe Logo

Am 20.06.2013 um 18:00 Uhr findet das nächste Treffen der .NET Usergroup Karlsruhe (XING-Gruppe der .NET Usergroup Karlsruhe) statt.

Thema

StreamInsight: Complex Event Processing by Microsoft von Constantin Klein.

Details zum Thema

Eine ständig wachsende Anzahl an Sensoren, bringt uns dem "Internet der Dinge" kontinuierlich näher. Anwendungen, die eine große Menge an Daten aus Ereignisströmen verarbeiten müssen, sind eine logische Konsequenz. Vielen Entwicklern ist daher die Reactive Extensions (Rx) Bibliothek ein Begriff. Microsoft stellt mit StreamInsight aber eine weitere mächtige Plattform für Applikationen zur Verfügung, die sich mit der umfangreichen Verarbeitung von real-time Event Strömen befassen.

Dieser User Group Abend stellt StreamInsight als eine großartige Erweiterung Ihrer Toolbox für die Entwicklung von Anwendungen

vor, die mit der Verarbeitung komplexer Ereignisse (CEP- Complex Event Processing) betraut sind. Sie sehen außerdem, wie der Einstieg in diese Technologie gelingt und wie einfach er für .NET Entwickler ist.

    Über den Sprecher

    Constantin arbeitet als Anwendungsarchitekt und Entwickler bei der Freudenberg Forschungsdienste SE & Co. KG. Dort beschäftigt er sich hauptsächlich mit dem Design und der Entwicklung von Web-Informationssystemen und Datenbanken. Seit seinem Studium der Wirtschaftsinformatik gilt sein besonderes Interesse darüber hinaus allen aktuellen Themen im Microsoft .NET Umfeld, insbesondere aber dem Thema Softwarearchitektur.

    Er ist MCSD, MCITP Database Developer und MCPD Web + Enterprise Application Developer. Seit 2010 wurde er jährlich von Microsoft zum Most Valuable Professional (MVP) für SQL Server ernannt.

    Er engagiert sich zusätzlich im Vorstand des Just Community e.V. (http://www.justcommunity.de) und als Leiter der .NET User Group Frankfurt (http://www.dotnet-ug-frankfurt.de).

    Sein Blog finden Sie unter: http://kostjaklein.wordpress.com

    Teilnahme

    Bitte meldet Euch wieder via XING an, die Location ist wieder DJK-Ost:

    DJK-Ost
    Friedrichstaler Allee 52
    76131 Karlsruhe

    Anfahrt: http://www.djk-ost.de/html/vereinsheim.html

    Mit öffentlichen Verkehrsmitteln eher schwierig aber
    mit Bus 30 ab Durlacher Tor bis Büchiger Allee und 1km Kanalweg zu Fuß möglich.


    Neu im Windows 8 Store: Bing Translator

    07.06.2013 12:44:19 | Oliver Scheer

    Für digitale Weltenbummler ein absolutes Muss: die Bing Translator App. Frisch im Windows Store erschienen. Mit ihr kann mal sehr leicht Texte in die verschiedensten Sprachen hin und her übersetzen.… ...read more...(read more)

    Delete Team Projects from Hosted TFS Servies

    06.06.2013 10:45:00 | Jan-Cornelius Molnar

    When the TFS Services preview went live, I started moving my on premise projects to the hosted tfs services. At some point I wanted to delete a team project created in the hosted services. For now, the web interface does not provide an option for that...(read more)

    Temporärer Beitrag, der zur Designerkennung verwendet wurde (f3151d91-1045-48b5-9957-745742ddf8fd – 3bfe001a-32de-4114-a6b4-4005b770f6d7)

    05.06.2013 17:45:18 | Oliver Scheer

    Dies ist ein temporärer Beitrag, der nicht gelöscht wurde. Löschen Sie diesen Beitrag manuell. (a8d0de2c-fe2b-4ef2-82b9-15a0ce1e5b6d – 3bfe001a-32de-4114-a6b4-4005b770f6d7) ...read more...(read more)

    Windows Phone 8: ZEntrale Datenhaltung mittels einfachem ViewModel

    05.06.2013 16:44:30 | Oliver Scheer

    Wo halte ich meine Daten? Wo ist meine Logik? Wer steuert eigentlich die App intern? Immer wieder stoße ich auf sehr wilde Apps, die sich mit wildestem Spaghetti-Code hinter jedem Button-Click-Ereignis ihre Daten von diversen Quellen zusammen suchen,...(read more)

    Windows Phone 8: Wie speichert man Benutzereinstellungen

    05.06.2013 13:52:38 | Oliver Scheer

    In diesem kleinen Tutorial möchte ich erklären, wie man mit ganz wenigen Schritten Einstellungen die ein Benutzer in der App machen kann, im Isolierten Speicher (Isolated Storage) von Windows Phone speichert. Schritt 1: Anlegen einer leeren App In Visual...(read more)

    Videoserie Moderne Softwareentwicklung

    05.06.2013 13:16:00 | Christian Binder

    Noch vor seinem Sabbatical hat Chris zusammen mit Neno Loje und Thomas Schissler eine Videoserie zum Thema Moderne Softwareentwicklung aufgenommen. In Vertretung von Chris freue ich mich, euch heute diese Videoserie präsentieren zu können. Das Format unterscheidet sich von den sonst klassischen Webcasts. Chris diskutiert in den Videos jeweils mit ausgewählten Gästen über aktuelle Trends und Themen in der Softwareentwicklung. Für uns ist besonders euer Feedback wichtig und wir freuen uns über eure Kommentare.

    Moderne Softwareentwicklung:

    Moderne Softwareentwicklung 1 - Trends in der modernen Softwareentwicklung

    Die Software-Entwicklung ist ein Gebiet das sich schnell verändert und weiterentwickelt. Dabei findet diese Veränderung in den letzten Jahren nicht nur auf technologischer Ebene, sondern zunehmend auch auf der Prozess-Ebene statt. In diesem Video geben drei Experten einen Überblick über die wichtigsten Trends und Entwicklungen für moderne Software-Entwicklung und bieten Ihnen damit eine einfache Möglichkeit, sich schnell darüber zu informieren, welche Themen für Ihre Teams in Zukunft wichtig sein werden und welche Aspekte dabei besonders zu beachten sind.

    Moderne Softwareentwicklung 1 - Trends in der modernen Softwareentwicklung | Microsoft from Visual Studio [Microsoft]

     

    Moderne Softwareentwicklung 2 - Modernes Anforderungsmanagement und Planung

    Das Bild ist meistens ähnlich: Es gibt eine große Liste an Wünschen an eine Software und nur begrenzte Mittel, mit denen man nicht alles umsetzen kann. Gerade deshalb ist es wichtig, sich auf die richtigen Dinge zu fokussieren und die "Wunschliste" sichtbar zu machen, sodass jeder weiß was und in welcher Reihenfolge es abgearbeitet wird, um letztlich möglichst viel Mehrwert (aus Sicht des Kunden) zu produzieren.

    Moderne Softwareentwicklung 2 - Modernes Anforderungsmanagement und Planung | Microsoft from Visual Studio [Microsoft]

     

    Moderne Softwareentwicklung 3 - Stakeholder effizient einbinden

    Einer der wichtigsten Trends in der modernen Softwareentwicklung ist eine Veränderung in der Zusammenarbeit mit den sog. Stakeholdern, also Kunden, Vertrieb, Support, Management etc. Diese werden stärker in den Entstehungsprozess von Software eingebunden. Warum das wichtig ist und wie man dies effizient organisieren kann, erfahren sie in diesem Video. 

    Moderne Softwareentwicklung 3 - Stakeholder effizient einbinden | Microsoft from Visual Studio [Microsoft]

    Moderne Softwareentwicklung 4 - Continuous Delivery als zentraler Motor für erfolgreiche Projekte

    Kurze Zyklen bieten für die Softwareentwicklung einige interessante Vorteile, aber auch Herausforderungen. Um kurze Zyklen und häufige Releases zu ermöglichen ist auch ein höherer Automatisierungsgrad in den Test- und Release-Prozessen von Nöten. Ist dies erstmals vollbracht, erhält man auf verschiedenen Ebenen eine frühzeitige Rückmeldung. Ist die Implementierung eines Features geplant, geht weniger Zeit verloren bis es seine Produktionsreife erreicht und dann idealerweise schon bald von den Benutzern der Software genutzt werden kann.

    Moderne Softwareentwicklung 4 - Continuous Delivery als zentraler Motor für erfolgreiche Projekte | Microsoft from Visual Studio [Microsoft]

    Moderne Softwareentwicklung 5 - Optimierte Qualitätssicherung für moderne Prozesse

    Moderne Entwicklungsprozesse versuchen neue Software-Inkremente in immer kürzeren Zyklen bereitzustellen um kontinuierlich zu prüfen, ob die umgesetzte Funktionalität die Anwenderanforderungen erfüllt oder ob entsprechend korrigiert werden muss. Bereitstellung neuer (Test-)Versionen im Rhythmus von wenigen Wochen erfordert aber neue Test-Strategien, da die bisherigen Vorgehensweisen in diesem Szenario meist versagen. Informieren sie sich, wie sie ihre Test-Prozesse fit machen für Continuous Delivery.

    Moderne Softwareentwicklung 5 - Optimierte Qualitätssicherung für moderne Prozesse | Microsoft from Visual Studio [Microsoft]

    Moderne Softwareentwicklung 6 - Erweiterbare und wartbare Architekturen im Team entwickeln

    Eine wichtige Anforderung an Architektur ist die einfache Erweiterbarkeit und eine robuste Struktur, die Änderungen möglichst auf wenig Code-Bereiche begrenzt, um das Risiko von Änderungen zu minimieren. Nur so kann die Idee von gewachsener Architektur tatsächlich auch umgesetzt werden. Welche Aspekte dabei wichtig sind und wie dieses Vorhaben gelingen kann, wird in diesem Video erläutert.

     

    Moderne Softwareentwicklung 6 - Erweiterbare und wartbare Architekturen im Team entwickeln | Microsoft from Visual Studio [Microsoft]

     

    Viel Spaß mit den Videos!
    Dennis

     

     


    .NET Open Space Süd 2013 in Karlsruhe

    04.06.2013 23:15:10 | Alexander Zeitler

    Bereits zum 4. Mal findet der .NET Open Space Süd in Karlsruhe statt und die Anmeldung ist seit Samstag möglich. Einige Plätze sind noch frei.

    Wer noch nicht weiß, was ihn beim .NET Open Space erwartet, hier die obligatorische Beschreibung:

    Die besten Gespräche hat man fernab von einer festgelegten Agenda, bei einem Kaffee und beim "du". Dort gibt es keine Rollenaufteilung in Sprecher / Zuhörer, Entwickler / Administrator usw. und die Themen finden sich vor Ort ganz von selbst. Das ist die Idee vom .NET Open Space, die sich bereits seit 2008 in Leipzig, Ulm und Karlsruhe bewährt hat. Hier sind alle gleich. Auch die Organisatoren halten sich im Hintergrund und moderieren nur ab und an etwas.

    Der .NET Open Space Süd 2011 läuft vom 16.07.2011 bis 17.07.2011. Welche Inhalte in dieser Zeit bearbeitet werden, wird vor Ort bestimmt, denn die Veranstaltung ist Open Space.

    Die Teilnahme ist kostenlos. Wenn du möchtest, kannst du den Organisatoren einen Geldbetrag zukommen lassen, welcher für die Gestaltung (Abendveranstaltung, Getränke etc.) verwendet wird. Trage den Betrag hier mit in die Teilnehmerliste ein. Über die Höhe des Betrages, ob z.B. 25 EUR, 50 EUR, 100 EUR oder mehr, entscheidest du vollkommen frei und selbst. Bedenke, dass die Veranstaltung gerade vom Sponsoring der Teilnehmer lebt.

    Die Teilnehmer gestalten das Programm selbst. Erfahrungsaustausch ist das A und O und steht im Vordergrund.

    Mehr Informationen und Anmeldung unter: http://karlsruhe.netopenspace.de

    Twitter-Nutzer erhalten aktuelle News von @nossued.

    Der offizielle Twitter-Hash-Tag ist #nossued.

    Die Anmeldung zu den Parties am Freitag und Samstag werden wir dieses Mal nicht stringent vornehmen, d.h. wer da ist, ist da und der Rest hat Pech gehabt Winking smile

    Die geplanten Locations sind am Freitag Enchilada und am Samstag Alte Bank (sofern nichts mehr dazwischen kommt – Bestätigung folgt über Twitter).

    An dieser Stelle auch wieder ein herzliches Dankeschön an Alexander Groß und Torsten Weber für die Unterstützung bei der Einrichtung der Website für den .NET Open Space Süd 2013.


    Microsoft gibt erste Details zu Windows 8.1 bekannt

    03.06.2013 11:07:06 | Oliver Scheer

    Die Microsoft Corporation hat heute auf dem Windows Blog nähere Details zum bereits angekündigten Windows 8.1 Update (Codename Windows Blue) bekanntgegeben. Das Update Windows 8.1 umfasst neue Personalisierungsmöglichkeiten des Start- und Lockscreens...(read more)

    Windows Phone Projekt: Bodytracker–Übersicht

    03.06.2013 11:00:00 | Oliver Scheer

    Die Herausforderung Wer von uns schaut nicht auf die Waage und sagt sich „Mist, schon wieder zugenommen“. Ich gebe es offen zu, ein paar Kilo weniger, würden mir schon gut stehen. Daher bin ich auf die glorreiche und bis heute nahezu einmalige Idee gekommen...(read more)

    Videos über moderne Software-Entwicklung

    03.06.2013 10:46:09 | Thomas Schissler

    Zusammen mit Neno Loje und Christian Binder habe ich ein paar kurze Videos aufgezeichnet in denen wir gemeinsam darstellen, welche Aspekte in der modernen Software-Entwicklung wichtig sind. Unsere Teams hier bei artiso arbeiten im wesentlichen (wenn es der Kunde erlaubt) nach diesen prinzipien und wir haben dadurch die Aspekte Kundenzufriedenheit, Qualität und Performance merklich verbessern können. Auch wenn diese Dinge sich nicht alle über Nacht einführen lassen, kann ich nur jedem Team empfehlen, sich auf die Reise zu machen und den Umstellungsprozess zu beginnen. Die Videos sind kurz gehalten und sollten einen guten Überblick über die Themen geben, die sie nicht verpassen sollten, wenn sie sich und ihre Software-Teams fit für die Zukunft machen wollen. 

     

    Moderne Softwareentwicklung 1 - Trends in der modernen Software Entwicklung
    http://www.youtube.com/watch?v=jcCSa7boTgA
    Moderne Softwareentwicklung 2 - Modernes Anforderungsmanagement und Planung
    http://www.youtube.com/watch?v=GdLgjgiRHvs
    Moderne Softwareentwicklung 3 - Stakeholder effizient einbinden
    http://www.youtube.com/watch?v=iYp_T3BkuPM
    Moderne Softwareentwicklung 4 - Continuous Delivery für erfolgreiche Projekte
    http://www.youtube.com/watch?v=SZj7h53nOfo
    Moderne Softwareentwicklung 5 - Optimierte Qualitätssicherung für moderne Prozesse
    http://www.youtube.com/watch?v=ie56ESWXg1Q
    Moderne Softwareentwicklung 6 - Erweiterbare und wartbare Architekturen entwickeln
    http://www.youtube.com/watch?v=jEGU4c8IKHo

    Moderne Softwareentwicklung:

    Moderne Softwareentwicklung 1 - Trends in der modernen Softwareentwicklung

    Die Software-Entwicklung ist ein Gebiet das sich schnell verändert und weiterentwickelt. Dabei findet diese Veränderung in den letzten Jahren nicht nur auf technologischer Ebene, sondern zunehmend auch auf der Prozess-Ebene statt. In diesem Video geben drei Experten einen Überblick über die wichtigsten Trends und Entwicklungen für moderne Software-Entwicklung und bieten Ihnen damit eine einfache Möglichkeit, sich schnell darüber zu informieren, welche Themen für Ihre Teams in Zukunft wichtig sein werden und welche Aspekte dabei besonders zu beachten sind.

    Moderne Softwareentwicklung 1 - Trends in der modernen Softwareentwicklung | Microsoft from Visual Studio [Microsoft]

     

    Moderne Softwareentwicklung 2 - Modernes Anforderungsmanagement und Planung

    Das Bild ist meistens ähnlich: Es gibt eine große Liste an Wünschen an eine Software und nur begrenzte Mittel, mit denen man nicht alles umsetzen kann. Gerade deshalb ist es wichtig, sich auf die richtigen Dinge zu fokussieren und die "Wunschliste" sichtbar zu machen, sodass jeder weiß was und in welcher Reihenfolge es abgearbeitet wird, um letztlich möglichst viel Mehrwert (aus Sicht des Kunden) zu produzieren.

    Moderne Softwareentwicklung 2 - Modernes Anforderungsmanagement und Planung | Microsoft from Visual Studio [Microsoft]

     

    Moderne Softwareentwicklung 3 - Stakeholder effizient einbinden

    Einer der wichtigsten Trends in der modernen Softwareentwicklung ist eine Veränderung in der Zusammenarbeit mit den sog. Stakeholdern, also Kunden, Vertrieb, Support, Management etc. Diese werden stärker in den Entstehungsprozess von Software eingebunden. Warum das wichtig ist und wie man dies effizient organisieren kann, erfahren sie in diesem Video.

    Moderne Softwareentwicklung 3 - Stakeholder effizient einbinden | Microsoft from Visual Studio [Microsoft]

    Moderne Softwareentwicklung 4 - Continuous Delivery als zentraler Motor für erfolgreiche Projekte

    Kurze Zyklen bieten für die Softwareentwicklung einige interessante Vorteile, aber auch Herausforderungen. Um kurze Zyklen und häufige Releases zu ermöglichen ist auch ein höherer Automatisierungsgrad in den Test- und Release-Prozessen von Nöten. Ist dies erstmals vollbracht, erhält man auf verschiedenen Ebenen eine frühzeitige Rückmeldung. Ist die Implementierung eines Features geplant, geht weniger Zeit verloren bis es seine Produktionsreife erreicht und dann idealerweise schon bald von den Benutzern der Software genutzt werden kann.

    Moderne Softwareentwicklung 4 - Continuous Delivery als zentraler Motor für erfolgreiche Projekte | Microsoft from Visual Studio [Microsoft]

    Moderne Softwareentwicklung 5 - Optimierte Qualitätssicherung für moderne Prozesse

    Moderne Entwicklungsprozesse versuchen neue Software-Inkremente in immer kürzeren Zyklen bereitzustellen um kontinuierlich zu prüfen, ob die umgesetzte Funktionalität die Anwenderanforderungen erfüllt oder ob entsprechend korrigiert werden muss. Bereitstellung neuer (Test-)Versionen im Rhythmus von wenigen Wochen erfordert aber neue Test-Strategien, da die bisherigen Vorgehensweisen in diesem Szenario meist versagen. Informieren sie sich, wie sie ihre Test-Prozesse fit machen für Continuous Delivery.

    Moderne Softwareentwicklung 5 - Optimierte Qualitätssicherung für moderne Prozesse | Microsoft from Visual Studio [Microsoft]

    Moderne Softwareentwicklung 6 - Erweiterbare und wartbare Architekturen im Team entwickeln

    Eine wichtige Anforderung an Architektur ist die einfache Erweiterbarkeit und eine robuste Struktur, die Änderungen möglichst auf wenig Code-Bereiche begrenzt, um das Risiko von Änderungen zu minimieren. Nur so kann die Idee von gewachsener Architektur tatsächlich auch umgesetzt werden. Welche Aspekte dabei wichtig sind und wie dieses Vorhaben gelingen kann, wird in diesem Video erläutert.

     

     

    Moderne Softwareentwicklung 6 - Erweiterbare und wartbare Architekturen im Team entwickeln | Microsoft from Visual Studio [Microsoft]


    Near Field Communication mit Windows Phone

    30.05.2013 21:49:00 | Patric Schouler

    Near Field Communication (NFC) ist ein internationaler Standard zum kontaktlosen Austausch von Daten per Funktechnologie über kurze Strecken von bis zu 10 cm mit einer Datenübertragungsrate von maximal 424 kBit/s. Obwohl die Entwicklung der Technologie bereits ihre Anfänge in 2002 hatte, steckt ihre Verbreitung bisher noch in den Startlöchern. Die immer größer werdende Anzahl von NFC-fähigen Geräten - insbesondere Smartphones -, die vielfältigen Einsatzmöglichkeiten und die einfache Handhabung machen diese Technologie jedoch zunehmend interessanter für kommerzielle Anwendungen.

    Etwas Historie

    Die NFC Technologie basiert auf die bereits im zweiten Weltkrieg eingesetzte RFID-Technologie (radio-frequency identification). Hier wurden Transponder und Lesegeräte an Panzern und Flugzeugen eingesetzt, um fremde von eigenen Fahrzeugen unterscheiden zu können. In den 70igern gab es dann die ersten Systeme zur Sicherung von Waren auf RFID-Chip Basis. Ab 1990 wurden große Fortschritte in der technologischen Entwicklung von Transpondern erzielt, sodass immer mehr Anwendungen entwickelt wurden. Darunter zählen Zugangskontrollen zu Gebäuden, die Wegfahrsperre in Autos, Mautsysteme oder die Zeiterfassungen in Betrieben und die Zeitmessung bei Sportveranstaltungen.

    NFC wurde im Jahre 2002 durch die beiden Firmen NXP Semiconductors und Sony entwickelt, die führend im Bereich von kontaktlosen Chipkarten sind. Zwei Jahre später wurde durch diese beiden Firmen und Nokia das NFC Forum gegründet. Dieses hat es sich zur Aufgabe gemacht, die Entwicklung von NFC voranzutreiben und weiter zu standardisieren. Die ersten NFC-fähigen Handys gab es bereits 2005, mit denen ein Feldversuch in Frankreich durchgeführt wurde. Hier konnten Benutzer Waren im Einzelhandel bezahlen, Parktickets kaufen oder touristische Informationen abrufen. In Deutschland wurde ebenso 2005 ein Feldversuch für den Personennahverkehr vom Rhein-Main-Verkehrsverbund (RMV) gestartet, bei dem Fahrscheine über ein Handy gekauft werden konnten.

     

    Wo wird NFC genutzt?

    Bisher kommt diese Technik vor allem in Lösungen für das Micropayment - bargeldlose Zahlungen kleiner Beträge – zum Einsatz. In Deutschland wird die Technik beispielsweise von den Sparkassen, unter dem Namen girogo zur Zahlung von Summen bis zu 20 Euro angeboten. Des Weiteren bietet die Deutsche Bahn mit dem Touch & Travel-System ein sehr einfaches Verfahren zum Erwerben von Fahrtickets mit NFC-fähigen Smartphones, welches für alle Fernverkehrs-, einigen Auslandsverbindungen und in ausgewählten Städten und Regionen verfügbar ist.

    Ein weiteres Anwendung Szenario sind intelligente Plakate, denen zusätzliche technische Informationen hinzugefügt wurden. Dies geschieht heute noch in der Regel mit QR-Codes, kann aber mittels NFC-Technologie um weitere Möglichkeiten, wie die Übertragung von Texten in mehreren Sprachen, Bilder und Aktionen erweitert werden. Darüber hinaus bieten NFC Tags hier einen besseren Schutz gegen „Edding Attacken“ die dann QR Codes unlesbar machen. Noch im Versuchsstadium befindet sich aktuell die Idee einiger Automobilhersteller (Hyundai, BMW), mit Hilfe des Smartphones und NFC-Funktionen die Autotür zu entriegeln und persönliche Einstellungen der Komfortoptionen im Automobil (Sitz- und Spiegelpositionen, Senderwahl) zu aktivieren.

    Dies sind an dieser Stelle nur ein paar Anwendungsfälle. In Zukunft werden diese, durch die weitere Verbreitung der NFC Technologie, sicherlich noch zunehmen.

    Aktuell unterstützen u.a. Geräte von Nokia, Samsung, Blackberry, Google, HTC, LG, Motorola und Sony die NFC Verfahren. Nachlegen wird hier sicher auch bald Apple, da das aktuelle iPhone 5 die NFC-Technologie noch nicht beinhaltet. Neben vielen aktuellen Smartphones sind auch einige Tablet-PCs mit eingebauter NFC-Technik verfügbar.

    NFC Kommunikationswege

    NFC setzt auf induktiv gekoppelte Systeme, bei denen passive Transponder die Energie aus einem Magnetfeld ziehen. Da jedoch bei NFC, im Gegensatz zu RFID, die strikte Trennung zwischen Lesegerät und Transponder entfällt, ergeben sich einige neue zusätzliche Kommunikationsmöglichkeiten. Für diese unterschiedlichen Kombinationen von Komponenten sind verschiedene Übertragungsmodi vom NFC Forum definiert worden.

    So ermöglicht der Reader/Writer-Modus die Kommunikation zwischen einem NFC-Gerät und einem passiven Transponder. Im Peer-to-Peer-Modus können zwei NFC-Geräte Daten untereinander austauschen (z.B. bei Windows Phone Tap & Senden). Der Card-Emulation-Modus ermöglicht dem NFC-Gerät als Smartcard zu agieren und als passiver Teilnehmer mit einem normalen RFID basierenden Lesegerät zu kommunizieren.

     

    Was braucht man alles um mit der NFC Entwicklung loszulegen?

    Zur Entwicklung von NFC Anwendungen für Windows Phone benötigen wir Visual Studio 2012, das Windows Phone SDK und ein Windows Phone 8 (z.B. Nokia Lumia 920). Man braucht ein echtes Gerät, da vom aktuellen Windows Phone Emulator NFC leider noch nicht unterstützt wird. Als weitere Software-Komponente benötigt man die NDEF Library for Proximity APIS, da die native Windows Phone API keine NDEF Nachrichten schreiben kann. Es ist auch möglich, die NDEF Library via Nuget mit dem Kommando Install-Package NdefLibrary zu installieren.

    Als weiteres benötigen wir natürlich noch brauchbare NFC Tags, welches sich bei mir als ein sehr schwieriges Unterfangen herausgestellt hat. Es waren zwei Bestellversuche notwendig, um geeignete NFC Tags zu erhalten. Wichtig ist nämlich hierbei, dass man keine leeren NFC Tags verwendet, sondern NFC Tags, welche mit dem NDEF (NFC Data Exchange Format) Format beschrieben bzw. formatiert wurden. Aktuell bietet uns die Windows Phone Proximity Api keine Möglichkeit NFC Tags zu formatieren. Ein NFC Tag kann in verschiedenen Ausprägungen – als Armband, Schlüsselanhänger oder Papier Sticker – bezogen werden. Einfach NFC Tags in eine Suchmaschine seiner Wahl eingeben und einen geeigneten Shop suchen.

    Windows Phone NFC

    Ein NFC Tag kann durch das Windows Phone mit unterschiedlichen Informationen im NDEF Format beschrieben werden. Die Größe der aktuellen Tags reicht von 168 Byte, über einem bis zu maximal vier Kilo Byte.

    Unterstützt werden von Windows Phone folgende NFC Tags:

    • Type 1: Topaz family
    • Type 2: Mifare Ultralight family, my-d-move, NTag
    • Type 3: Felica family
    • Type 4: Desfire family
    • Non standardized: Mifare Standard

     

    Einige Einschränkungen

    Aktuell müssen wir beim Umgang mit NFC Tags mit einigen Einschränkungen leben, die die Arbeit mit NFC Tags eigentlich nicht beschneiden, sondern lediglich einige Anwendungsszenarien beschränken.

    • Es ist durch die fehlende Unterstützung des RAW Modus bei Windows Phone nicht möglich, den Schreibschutz eines NFC Tags zu aktivieren.
    • Mittels Windows Phone können keine NFC Tags formatiert werden – also nur vorformatierte oder beschriebene Tags im NDEF Format kaufen. Eine weitere Alternative ist die Verwendung eines NFC USB Reader/Writer oder – ich wage es kaum zu erwähnen – die Benutzung eines Android Geräts.
    • Der NFC Tag darf nur NDEF Nachrichten enthalten, damit er lesbar bleibt.
    • Es ist nicht möglich, den kompletten Speicherplatz eines NFC Tags zu benutzen. Beispielsweise können nur 716 Bytes bei einem 1KB Tag oder 454 Bytes bei einem Tag mit einer Größe von 512 Byte genutzt werden
    • Die Proximity API von Windows Phone bietet keine Möglichkeit direkt NDEF Nachrichten auf den Tag zu schreiben. Dies ist aber durch die Benutzung der Open Source NDEF Library möglich, die ich in meinem Beispiel auch verwendet habe
    • Es ist nicht möglich die Daten eines NFC Tags zu empfangen oder zu schreiben, wenn die Windows Phone App im Hintergrund läuft. Man kann aber über Schemata-Zuordnungen und die Auto-Launch Funktion – dazu später mehr - eine im Hintergrund oder noch nicht laufende Applikation starten

     

    Der Schüssel zu allem: Windows.Networking.Proximity

    Im Namensbereich Windows.Networking.Proximity befindet sich der Einstiegspunkt der Proximity API von Windows Phone. Die wichtigste Klasse ist hierbei ProximityDevice.

     

    Der Use Case - Check-in mit NFC Tags

    Innerhalb der SDX AG nutzen wir eine neue eigenentwickelte Zeiterfassungs-Software mit der Bezeichnung WorkTime. Dieses System basiert auf dem Microsoft CRM System und ist als Client für Windows 8 (Modern UI App), Windows Phone 8 sowie als Web-Anwendung verfügbar. Also warum sich nicht die NFC Tags zu Nutze machen und die lästige Zeiterfassung bei unterschiedlichen Projekten dadurch verkürzen, das ein NFC Tag die projektspezifischen Daten zu einem Zeiterfassungsvorgang bereits enthält und durch das „Tappen“ mit dem Windows Phone ein Zeiterfassungsvorgang automatisiert vorgenommen werden kann. Ich hätte dann für unterschiedliche Kunden und Projekte jeweils einen anderen farblich gekennzeichneten Tag und könnte diese sogar am entsprechenden Arbeitsplatz irgendwo hin kleben.

    Also Idee in die Tat umsetzen…

    Erster Schritt – Speichern der Daten auf dem NFC Tag

    Das folgende Code Schnipsel verwende ich, um den serialisierten aktuellen Zeiteintrag auf einem NFC Tag zu speichern. Wichtige Einstiegspunkte sind hierbei die Events DeviceArrived und DeviceDeparted, welche entsprechend geworfen werden, sobald sich ein NFC Tag in der Nähe des Windows Phone befindet oder sich wieder entfernt hat. Im Konstruktor meiner NfcService Klasse ermittele ich mir dazu zunächst das aktuelle Proximity Device über die ProximityDevice.GetDefault() Methode.

    Zum Zugriff auf den NFC Tag verwende ich in meinem Beispiel, wie gesagt, die NDEF Library welche es auf einfache Art und Weise ermöglicht NDEF Datensätze zu parsen sowie diese zu erstellen. Ein NFC Tag kann dabei immer einen oder mehrere NDEF Datensätze enthalten. Die NDEF Library unterstützt verschiedene Datensatz Typen, wie beispielsweise WpSettings (zum Starten von Windows Phone Einstellungsseiten), Mailto (Datensätze zum automatischen Versenden von E-Mails), DriveTo und WalkTo (Starten der Navigationsfunktionen von Windows Phone 8), Nokia Accessories (Datensatz zum Starten von Nokia Zusatzanwendungen auf Lumia Smartphones) und der wichtige Launch App Record zum automatischen Start einer Windows Phone App. Dieses NDEF Nachrichtenformat wird auch in folgenden Beispiel verwendet.

     

    private const string ProductId = "{Your ProductId from WMAppManifest.xml}";
    private readonly ProximityDevice _device;
    private string _messageContent;
     
    public NfcService()
    {
        _device = ProximityDevice.GetDefault();
    }
     
    #region public events
     
    public event EventHandler NfcNotAvailable;
     
    protected virtual void OnNfcNotAvailable()
    {
        EventHandler handler = NfcNotAvailable;
        if (handler != null) handler(this,EventArgs.Empty);
    }
     
    public event EventHandler<string> NfcArrived;
     
    protected virtual void OnNfcArrived(string e)
    {
        EventHandler<string> handler = NfcArrived;
        if (handler != null) handler(this, e);
    }
     
     
    public event EventHandler<string> NfcDeparted;
     
    protected virtual void OnNfcDeparted(string e)
    {
        EventHandler<string> handler = NfcDeparted;
        if (handler != null) handler(this, e);
    }
     
    public event EventHandler NfcMessageWritten;
     
    protected virtual void OnNfcMessageWritten()
    {
        EventHandler handler = NfcMessageWritten;
        if (handler != null) handler(this, EventArgs.Empty);
    }
     
    #endregion
     
    public static string NfcLaunchParameterName
    {
        get { return "ms_nfp_launchargs"; }
    }
     
    public void WriteLaunchRecordToNfc(string messageContent)
    {
        // check if NFC is available on the Windows Phone device
        if (_device != null)
        {
            _device.DeviceArrived += DeviceArrived;
            _device.DeviceDeparted += DeviceDeparted;
            _messageContent = messageContent;
        }
        else
        {
            OnNfcNotAvailable();
        }
    }
     
    void DeviceDeparted(ProximityDevice sender)
    {
        var deviceId = String.Empty;
        if (sender != null)
        {
            deviceId = sender.DeviceId;
        }
      
        OnNfcDeparted(deviceId);
    }
     
    void DeviceArrived(ProximityDevice sender)
    {
        var deviceId = String.Empty;
        if (sender != null)
        {
            deviceId = sender.DeviceId;
        }
     
        OnNfcArrived(deviceId);
      
        // Create a LaunchApp record, specifying our recognized text as arguments
        var record = new NdefLaunchAppRecord { Arguments = _messageContent };
        // Add the app ID of your app!
        record.AddPlatformAppId("WindowsPhone", ProductId);
     
        // Wrap the record into a message, which can be written to a tag
        var msg = new NdefMessage { record };
     
        _device.PublishBinaryMessage("NDEF:WriteTag", msg.ToByteArray().AsBuffer(), MessageWrittenHandler);
     
    }
     
    private void MessageWrittenHandler(ProximityDevice sender, long messageId)
    {
        // detach event handlers
        _device.DeviceArrived -= DeviceArrived;
        _device.DeviceDeparted -= DeviceDeparted;
     
        // stopping publishing the message
        _device.StopPublishingMessage(messageId);
     
        OnNfcMessageWritten();
    }
        }

    Beim Schreiben auf einen NFC Tag sind folgende Punkt besonders zu beachten:

    • Bei Verwendung eines NdefAppLauchRecord muss als Plattform WindowsPhone und die ProductId der App aus dem AppManifest angegeben werden
    • Ein Aufruf von _device.StopPublishingMessage nach erfolgtem Schreiben ist notwendig
    • Die Message Größe des NDEF Records darf nicht die Nettokapazität des NFC Tags überschreiten
    • Um NFC in der App nutzen zu können, muss ID_CAP_PROXIMITY in den Application Capabilities aktiviert werden

    Der Umgang mit den anderen NDEF Nachrichtentypen ist analog zu diesem Beispiel, außer dass hier die Nachricht anders aufgebaut werden muss.

    So weit so gut - jetzt können wir die Daten auf einen NFC Tag schreiben. Aber wie schaffe ich es, dass meine App nun automatisch beim „Tappen“ mit meinem Lumia gestartet wird?

     

    Hinzufügen der Auto-Start Funktionalität

    Um eine Windows Phone 8 automatisch starten zu können, ist es notwendig eine URI Zuordnung für die jeweilige App zu erstellen. Was diese URI auszeichnet, ist das diese mit einem festen Schemanamen beginnt, der für diese App registriert wurde. Nachdem diese Registrierung dem Betriebssystem bekannt gemacht wurde, wird durch das „Tappen“ mit einem NFC Tag, welcher einen LaunchApp NDEF Record enthält, über die ProductId im NDEF Record genau eine solche URI von Windows Phone OS aufgebaut und die App mit dieser URI gestartet.

    Die Nutzung von Schema-Zuordnungen zu einer Windows Phone App ist übrigens ein allgemeines Feature und kann beispielsweise auch zum Aufruf einer Windows Phone App über eine URI aus einer anderen App genutzt werden.

    Beispiel: worktime:ShowTimeSheetEntry?UniqueId=89819279-4fe0-4531-9f57-d633f0949a19

    In diesem Beispiel ist worktime das registrierte App Schema und alles nach dem Doppelpunkt kann durch die App in der UriMapper Klasse – dazu später mehr – interpretiert werden.

    Über den folgenden Code kann die WorkTime App aus einer anderen App aufgerufen werden:

    Windows.System.Launcher.LaunchUriAsync(new System.Uri("worktime:ShowTimeSheetEntry?UniqueId=89819279-4fe0-4531-9f57-d633f0949a19"));

    Um eine URI Verknüpfung für eine App zu erstellen, muss die WMAppManifest.xml Datei des Windows Phone Projekts mit dem XML(Text) Editor bearbeitet werden. Im Extensions-Element der Manifest-Datei wird eine URI-Verknüpfung durch das Hinzufügen eines Protocol-Elements definiert. Bitte beachten, dass das Extensions Element sofort nach dem Tokens-Element eingefügt werden muss. Man kann maximal 10 URI-Verknüpfungen in jeder App definieren. Die Schema-Namen einer App müssen dabei eindeutig bei den installierten Apps sein – also genau überlegen was man hier nimmt.

     
    <Extensions>  
        <Protocol Name="worktime" NavUriFragment="encodedLaunchUri=%s" TaskID="_default" />
    </Extensions>

    Einige Schemata sind reserviert und würden bei Verwendung ignoriert werden. Für mehr Informationen, siehe Reservierte Datei und URI Verknüpfungen für Windows Phone 8.

    Die generierte URI aus dem NFC Tag LaunchApp Record zum automatischen Starten der WorkTime App sieht dann folgendermaßen aus:

    Protocol?encodedLaunchUri=worktime:<xml string of our TimesheetEntry object>

    Hinter dem Doppelpunkt folgt die XML Repräsentanz der Zeiteintrags-Instanz.

     

    Extrahieren der Aufrufparameter aus der URI

    Um nun die aufrufende URI aufzulösen, ist die Klasse UriMapper zu implementieren, welche von UriMapperBase abgeleitet ist. Die Argumente der LaunchApp NDEF Nachricht auf unserem Tag müssen dann in dem Parameter ms_nfp_launchargs für den Aufruf der gewünschte Einstiegsseite der Windows Phone App übergeben werden, da dieser Mechanismus auch vom Betriebssystem beispielsweise über eine Sekundärkachel (deep linking) verwendet wird.
    (Niemand weiß, ob ms_nfc_launchargs korrekt ist oder ms_nfp_launchargs weil in der MSDN Dokumentation werden beide erwähnt :-( - aber alle Beispiele funktionieren mit ms_nfp_launchargs)

    Die folgende UriMapper Klasse dekodiert zunächst die aufrufende Uri und benutzt dann einen regulären Ausdruck um die Payload der NDEF Nachricht zu extrahieren:

    class WorkTimeUriMapper: UriMapperBase
    {
        public override Uri MapUri(Uri uri)
        {
            // Example: "Protocol?encodedLaunchUf64ri=worktime:testmessage"
            var tempUri = HttpUtility.UrlDecode(uri.ToString());
            var launchContents = Regex.Match(tempUri, @"worktime:(.*)$").Groups[1].Value;
            if (!String.IsNullOrEmpty(launchContents))
            {
                // Call MainPage.xaml with parameters
                return new Uri("/MainPage.xaml?ms_nfp_launchargs=" + launchContents, UriKind.Relative);
            }
     
            // Include the original URI with the mapping to the main page
            return uri;
        }
    }

    Um die neu definierte Klasse WorkTimeUriMapper nun als UriMapper zu verwenden, ist es notwendig, folgenden Anweisungen in die InitializePhoneApplication Methode der App.xaml.cs einzufügen.

    RootFrame = new TransitionFrame();
    RootFrame.UriMapper = new WorkTimeUriMapper();
    RootFrame.Navigated += CompleteInitializePhoneApplication;

    Jetzt wird die aufrufende Uri mit dem Schema der App in eine relative Adresse der gewünschten Aufrufseite (in meinem Fall MainPage.xaml) transformiert und die Payload der NDEF Nachricht wird im Parameter ms_nfp_launchargs übergeben.

     

    Parsen der Argumente und Zeiteintrag anlegen

    In meiner MainPage.xaml, oder der jeweiligen Zielseite, müssen nur noch die Übergabeargumente extrahiert und einer entsprechenden Funktion übergeben werden. Im OnNavigateTo Event kann hierzu mittels NavigationContext.QueryString["ms_nfp_launchargs"] der Aufrufparameter, also die Payload des NFC Tags, ausgelesen werden. In meinem Fall handelt es sich, wie bereits erwähnt, um die serialisierte Klasseninstanz eines Zeiteintrags. Durch eine Funktion wird nun auf Basis dieses Zeiteintrags ein neuer Eintrag für den aktuellen Tag angelegt, den ich aus Gründen der besseren Usability noch mal zur Betätigung anzeige.

     

    Das Ergebnis

    Schreiben eines NFC Tags über die Kontextfunktion aus einem bestehenden Zeiteintrag:

    Windows Phone NFC

     

    Ziel erreicht

    Jetzt kann ich diese wunderbar farbigen NFC Tags für die automatisierte Zeiterfassung in meinen unterschiedlichen Projekten nutzen:

    Windows Phone NFC

     

    Weiter führende Links zum Thema


    Daten als systemrelevante Größe behandeln

    30.05.2013 11:19:00 | Ralf Westphal

    Systemrelevante Größen sind in der Softwareentwicklung wie auch sonst im Leben zu vermeiden. Dieser Meinung bin ich immer noch und sogar immer mehr. Doch auch wenn wir sie vermeiden sollen, heißt das nicht, dass wir das immer können. Manches ist einfach systemrelevant, weil es die fundamentale Wahl für ein System repräsentiert. Es muss konstant bleiben - ansonsten handelt es sich um ein ganz

    Buch-Rezension zu “Working Effectively with Legacy Code”

    30.05.2013 08:30:19 | Johnny Graber

    Viele Bücher zeigen wie man mittels TDD sauberen Code schreiben kann. Michael Feathers geht in “Working Effectively with Legacy Code” einen anderen Weg. Er zeigt wie man aus Legacy Code Schritt für Schritt und mit viel Arbeit eine saubere Codebasis schaffen kann. Dieser Weg ist alles andere als leicht, startet dafür aber dort wo wohl […]

    Wieviel Speicher belegt meine RavenDB? Und welchen Plan benötige ich bei CloudBird oder RavenHQ?

    29.05.2013 00:39:08 | Robert Mühsig

    image.png
    Wer RavenDB nicht auf seinem eigenen Server betreiben möchte oder einfach wissen möchte wieviel Speicherplatz die eigentlichen Daten benötigen gibt es zwei Möglichkeiten: Falls es noch einen anderen Weg gibt: Immer her damit – aktuell hab ich nur die beiden Methoden gefunden und sie scheinen mehr oder weniger zu passen. RavenDB Storage per JSON über ...

    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