.
Anmeldung | Registrieren | Hilfe

.NET-Blogs Archiv September 2011

.NET User Group Karlsruhe: PowerShell 3.. 2.. 1..

30.09.2011 13:41:00 | Alexander Zeitler

.NET Usergroup Karlsruhe Logo

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

Thema

PowerShell 3.. 2.. 1.. mit Thomas Krause

Details zum Thema

PowerShell - No slides, just demo/code

Basics, Entwickler-spezifisches und neues in Windows 8

PowerShell wird spaetestens mit Windows Server 8 ein zentraler Baustein
des Systems. Wir werfen einen Blick auf das, was mit PowerShell heute
fuer Administratoren und Entwickler moeglich und sinnvoll ist und
schauen uns an, was uns mit PowerShell vNext erwartet.

Über den Sprecher

Neben meinem Leben als Mainstream-Entwickler mit Mainstream-Programmiersprachen (ObjectPascal, C++, .NET/C#) war ich lange auch auf der 'dunklen Seite der Softwareentwicklung' unterwegs - Datenbankentwicklung (PL/SQL, T-SQL, SQL etc.). Mit der Zeit lenkte dies meine Aufmerksamkeit auf 'unsichtbare' Themen wie Backup, Troubleshooting, Konfiguration, Migration, Monitoring etc.

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

DotNetKicks-DE Image

11. Treffen der .NET Usergroup Rhein-Neckar

30.09.2011 13:34:00 | Sascha Dittmann

.NET Usergroup Rhein-NeckarAm kommenden Mittwoch findet das 11. Treffen der .NET Usergroup Rhein-Neckar statt.
Auf dieses Treffen freue ich mich besonders, da ich diesmal nicht als Zuhörer, sondern als Sprecher, da sein werden.

Thema des Abends

Die Windows Azure Plattform - Eine Einführung für Entwickler

Details zum Thema

Die Windows Azure Plattform hatte ihren offiziellen Start vor ca. 1 3/4 Jahren (1. Feb. 2010) und wird seitdem stetig erweitert. Dennoch wissen bislang wenige Entwickler welche Möglichkeiten Windows Azure bietet.

Dieser Vortrag liefert einen Überblick über die Konzepte bzw. Dienste der Windows Azure Plattform, wie z.B. die Windows Azure Rollen, Azure Storage & SQL Azure, die Azure Management API sowie die Windows Azure AppFabric.
Kombiniert mit einigen Code Beispielen und Erfahrungen aus der Praxis, soll so der Einstieg in die Softwareentwicklung mit Windows Azure vereinfacht werden.

Ort / Zeit

Das Treffen findet am Mittwoch, den 05. Oktober 2011 um 18:30 Uhr in der Langgartenstraße 52, 67063 Ludwigshafen, in den Räumen des Landhaus Restaurants statt. Vor und neben dem Gebäude und in den umliegenden Straßen sind ausreichend Parkplätze vorhanden.

Weitere Informationen

SCRUMit Agenda online

30.09.2011 11:44:36 | Thomas Schissler

clip_image002

Für unseren SCRUMit-Event bei der .net Developer Group Ulm ist nun die Agenda finalisiert. Wer also Interesse am Thema Scrum hat, sollte unbedingt mal auf unserer Seite vorbeischauen und sich über den Event informieren. Für schlappe 20,—€ bekommt man hochwertige Informationen von hochkarätigen Sprechern.

Veranstaltungsdaten:

Datum:

13. Oktober 2011, 9.00 – 17.00 Uhr

Ort:

89134 Blaustein, Oberer Wiesenweg 25

 

 

 

Agenda:

Uhrzeit

Thema:

Referent:

9:00 Uhr

Begrüßung

Thomas Schissler

Group-Leiter

9:15 Uhr

Scrum in a nutshell – Kurzeinführung in Scrum

Thomas Schissler

10:15 Uhr

Pause

 

10:30 Uhr

Building the new wave of Agile Tools using Scrum

Christian Binder

Technologieberater, Microsoft Deutschland GmbH

11:30 Uhr

Pause

 

11:45 Uhr

Gewachsene Architektur – kann das funktionieren?

Matthias Rink
Softwarearchitekt, artiso

Thomas Schissler

12: 45 Uhr

Pause

 

13:45 Uhr

Scrum im Unternehmenssystem

Uta Knapp

Unternehmensberaterin und Scrum-Trainerin, Scrum-Events

14:45 Uhr

Pause

 

15:00 Uhr

Scrum für Manager

Rolf Beck

Geschäftsführer, Carl Zeiss OIM GmbH

16:00 Uhr

Pause

 

16:30 Uhr

Fishbowl – Scrum Defects und deren Behandlung

Community

Ab 17:30 Uhr

Zeit für Networking

 

Hier noch die Links auf unserer Seite:

 

Agenda

Abstracts & Informationen zu den Referenten

Anmeldung zur Veranstaltung

WP-Tipp #021–Übersicht der wichtigsten Daten im Web

30.09.2011 08:00:00 | Gordon Breuer

Wir kommen zu Hause nach einem stressigen Arbeitstag an, und wenig später suchen wir verzweifelt unser Handy. Haben wir es im Büro liegen lassen oder haben wir es unterwegs irgendwo verloren? Microsoft bietet seit dem Web-Upgrade des Windows Phone Portals eine übersichtlichere Seite mit der Antwort auf diese und einige weitere Fragen an.

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

4-5.10.11 ist die Deutsche Partnerkonferenz – Ich bin dabei!

30.09.2011 07:32:00 | Lars Keller

Dieses Jahr findet die deutsche Partnerkonferenz (DPK) 2011 in Hamburg statt. Wie im letzten Jahr bin ich wieder vor Ort und werde meine Eindrücke berichten. Letztes Jahr war die DPK in Darmstadt und hatte mir gut gefallen. Ich bin gespannt wie es dieses Jahr wird.

Die Top Themen der DPK 2011 sind u.a. Windows Phone 7 & Lync 2010. (Ich vermisse Azure ;-)) Aber gerade Lync finde ich spannend, vielleicht gibt es Informationen zu der Strategie, was mit dem von Microsoft gekauftem Skype passiert. Natürlich bin ich auch sehr gespannt, ob es neue Informationen zu Windows 8 gibt!

Auf jeden Fall habe ich ein paar interessante Gespräche vor Ort geplant u.a. auch wieder ein Gespräch mit Ralph Haupter (Geschäftsführer Microsoft Deutschland). Dieses Jahr interessieren mich besonders Themen zu Private Cloud und System Center Lösungen.

Wer ist denn noch so alles vor Ort? Man sieht sich da…!

WP-Tipp #019 – Mango-Update und neuer Web-Marketplace

28.09.2011 08:00:00 | Gordon Breuer

Nachdem ich gestern den ganzen Tag auf der BASTA! in Mainz verbracht habe (heute und morgen übrigens ebenfalls), war ich völlig unvorbereitet auf die zahlreichen Neuerungen die im RSS-Reader auf mich warteten. Frank Prengel hat in seinem Vortrag gestern jedenfalls Wort gehalten: "Mango kommt bald. Sehr bald!" - das es schon wenige Stunden später der Fall sein würde, ahnte da noch niemand. Doch nicht nur Mango ist erschienen, auch noch zahlreiche andere Sachen, die wir gemeinsam in den kommenden Tipps erkunden wollen! Doch genug der hohlen Worte, es gibt viel zu tun... ;-)

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

Windows Phone 7.5 Mango–it’s on the way

27.09.2011 18:34:00 | Patric Schouler

This morning, at roughly 10 a.m. Pacific time, Microsoft began rolling out the Mango update to phones around the world. Windows Phone 7.5 (aka Mango) has about 500 new features and is a major update for the Windows Phone platform.

Eric Hautala says

”I do want to emphasize that today is just the start. Our plan, as I’ll explain in a moment, is to ramp up delivery gradually—but make the update available to most existing customers within 4 weeks.

I’m sure you have lots of questions about the update process and especially when you’ll be able to install Windows Phone 7.5. Here’s our plan.”

More details see: Windows Phone 7.5 update begins

Windows 8 und die Zukunft von Silverlight

27.09.2011 17:30:00 | Stefan Lange

Der Nachfolger von Windows 7

Zunächst einmal wird auf Windows 8 alles laufen, was auch auf der Vorgängerversion läuft. Es gab ja einige Befürchtungen, dies könnte nicht so sein.

Neben vielen wirklich coolen Neuerungen wie Hyper-V auf dem Client, RemoteFX oder Windows To Go, ist die neue Oberfläche im Metro Design und die ihr zugrundeliegende Windows Runtime das innovative Highlight von Windows 8. Neben dem gewohnten Windows Desktop, der auch weiterhin zur Verfügung stehen wird, gibt es die neue Metro Oberfläche, die speziell auch Touch-Geräte unterstützt und teilweise schon vom Windows Phone bekannt ist.

Grundlegend neu ist die Windows Runtime, die die Programmierschnittstelle für Metro-Apps bereitstellt und technologisch neue Wege einschlägt.

Die Windows Runtime

Die schlicht Windows Runtime (WinRT) genannte Schnittstelle zum Betriebssystem ist ein ABI (Application Binary Interface) nach dem Vorbild von COM. Die WinRT ist in nativem Code mit C++ geschrieben und darauf ausgelegt, das UI „fast and fluid“ zu machen. Um sie zu programmieren, wurde C++ mit vielen neuen Features angereichert, die man aus .NET kennt: Properties, Exceptions, Delegates, Events, Generics, Lambda-Expression, u.a. Die dazugehörige Syntax ist praktisch identisch mit C++/CLI, nur wird eben kein managed, sondern nativer Code generiert. Die WinRT stellt ihre Funktionalität in Form von Komponenten, die Interfaces implementieren, zur Verfügung. Um aus verschiedenen Programmiersprachen heraus genutzt werden zu können, legt sie bestimmte Datentypen und Konventionen fest. Das ist ganz ähnlich wie die CLR in .NET funktioniert, aber die WinRT basiert nicht auf .NET. Sie verwendet insbesondere kein Garbage-Collection, sondern das aus COM bekannte Reference-Counting. Um die Programmierung zu vereinfachen wurde dazu in C++ ein neuer new-Operator eingeführt, der den Compiler veranlasst, die Aufrufe von AddRef und Release selbst zu generieren, wenn der Pointer auf ein so erzeugtes Objekt verwendet wird.

Die in COM verwendete IDL (Interface Definition Language) zur Beschreibung von Schnittstellen wird nicht eingesetzt. Stattdessen kommt ein moderneres Metadatenformat zum Einsatz, welches eine Weiterentwicklung des aus .NET bekannten Metaformats darstellt. Aufgrund dieser Windows Metadata (WinMD) kann die WinRT von beliebigen Sprachen aus anprogrammiert werden (im Gegensatz zu .NET, was nur von beliebigen managed Sprachen aus angesprochen werden kann). Zurzeit sind C++ und JavaScript die einzigen unmanaged Sprachen und C# und VB die einzigen managed Code Sprachen, die zur Verfügung gestellt werden.

Das Binden an eine konkrete Programmiersprache wird als „Projection“ bezeichnet, wohl um auszudrücken, dass es mehr ist als simples „Binding“. Da die WinRT sich über ihre Metadaten selbst beschreibt, ist die Projection in eine konkrete Sprache automatisiert und sehr effizient möglich. Sprachen wie C# können diese Metadaten praktisch direkt nutzen und benötigen daher die in COM notwendigen Interop-Assemblies nicht mehr.

Die Projection erlaubt außerdem eine tiefe Integration in die jeweilige Programmiersprache. So sind beispielsweise ca. 10 bis 15 Prozent der WinRT Funktionen asynchron, d.h. sie starten einen länger andauernden Vorgang und liefern gleichzeitig ein Interface auf ein Operation-Objekt zurück, über das man diesen Vorgang kontrollieren und am Ende dessen Ergebnis abfragen kann. Ruft man eine solche Funktion aus C# heraus aus, kann man direkt das neuen Schlüsselwort await aus dem async/await Pattern von C# 5 verwenden. Aus dem IAsyncOperation der WinRT wird ein Task<T> in C#. In JavaScript dagegen wird die gleiche WinRT-Funktion in ein entsprechendes Promise-Konstrukt umgewandelt.

Programmiermodell

Das folgende Schaubild ist eine der Kernfolien von Microsoft.

Es zeigt deutlich, dass die Metro Apps neben dem bisherigen Windows Desktop Apps liegen, sie also um etwas Neues ergänzen und nichts ersetzen.

Die von der WinRT angebotenen Klassen und Funktionen sehen Silverlight zum Verwechseln ähnlich und jeder Silverlight- bzw. WPF-Programmierer findet sich praktisch sofort zurecht. Zwar sind die Namespaces und viele Details etwas anders, aber die aus Silverlight bekannten Controls und Konzepte wie XAML, Resources, Styles, Templates, etc. werden alle nahezu identisch unterstützt. Auch das Resource-Format .resw ist praktisch das Gleiche wie .resx.

Die Konzepte der WinRT eignen sich hervorragend für alle Arten von Schnittstellen, stehen aber zunächst mal nur unter Windows 8 und nur für Metro Apps zur Verfügung.

C++/CX

C++/CX ist der Name des für die WinRT erweiterten C++. Stark vereinfacht kann man es so ausdrücken: C++ plus die coolen Sprachfeatures von C# mit Reference Counting anstatt Garbage Collection. Da C++/CX nativen Code erzeugt, kann man nun die unschlagbare Performance von C++ mit den modernen Sprachmitteln von C# nutzen. Ein gewaltiger Schritt für C++ als Basissprache moderner Betriebssysteme. Microsoft möchte, dass C++/CX in den ANSI-Standard einfließt. Zurzeit kann man C++/CX allerdings nur unter Windows 8 und nur für WinRT Metro Apps verwenden.

JavaScript

Auch für JavaScript ist die WinRT verfügbar. Dadurch sind mit HTML5 Browser-basierte Metro-Anwendungen möglich, die alle Features des Betriebssystems nutzen können. Ich sehe zwei große Vorteile dieses Ansatzes. Zum einen findet das riesige Heer von JavaScript-Programmierern nun einen einfachen Zugang zur Programmierung von Windows Apps. Ein kluger Schachzug von Microsoft, der auch von Microsofthassern nur schwer zu kritisieren ist. Zum anderen lässt sich dynamischer Content aus dem Web leichter in eine HTML5- als in eine XAML-basierte Metro App integrieren.

Bevor nun jemand wegen HTML5 auf falsche Gedanken kommt: Alle Metro Apps basieren auf der WinRT. HTML5 Apps werden zwar vom IE 10 gehostet, laufen aber ausschließlich auf Windows 8 Geräten und sind damit genauso proprietär wie eine XAML-basierte Metro App.

C#/VB

Als .NET Sprachen stehen zurzeit C# und VB zur Verfügung. Auch wenn das obige Schaubild den Eindruck erweckt, als würde C# irgendwie ohne .NET Framework laufen, gibt es genau wie bisher eine CLR, Garbage Collection, IL Code und ein .NET Framework. Tatsächlich ist auf Windows 8 auch nur ein .NET 4.5 Framework installiert, mit dem man wahlweise WinForms, ASP.NET, WPF, etc. Anwendungen erstellen kann oder alternativ auf Basis der WinRT Metro Apps. Eine Vermischung der beiden Welten innerhalb einer Anwendung ist nicht vorgesehen.

Ansonsten hat man das Gefühl, Silverlight oder WPF zu programmieren. XAML, Controls, Events, Styles, Templates, ResourceDictionaries, VisualStateManager, usw. sind bis ins Detail sofort vertraut. Natürlich gibt es etliche Unterschiede, beispielsweise bei den Touch-Events oder bei neuen Namensräumen, aber jeder Silverlight-Entwickler findet sich schnell zurecht.

Es ist auch möglich, mit C#/VB neue WinRT-kompatible Komponenten zu erstellen, wenn man sich an bestimmte Konventionen hält. So kann man beispielsweise nützliche Hilfsroutinen, sein ViewModel oder neue Controls in C# schreiben und diese dann in einer HTML5 App über JavaScript verwenden. So muss das auch sein. Ich bin absolut überzeugt, dass .NET die dominierende Technologie für WinRT Anwendungen werden wird, weil .NET einfach die produktivste Art ist, Software zu entwickeln, die bisher erfunden wurde.

Performance zählt

Eine der wichtigsten Neuerungen der WinRT sind drastische Verbesserungen der UI-Performance gemäß dem Metro-Paradigma „fast and fluid“. Am einfachsten lässt sich das anhand eines Beispiels verdeutlichen. In Silverlight beruhen Animationen letztlich darauf, dass man über eine Timeline gesteuert eine oder mehrere Dependency-Properties über einen Zeitraum hinweg verändert. Basierend auf diesen Änderungen rendert der UI-Thread die Oberfläche mehrmals pro Sekunde neu. Auf einem Intel Desktop-Prozessor ist dies kein Problem, wenn auch ein Blick in den Taskmanager zeigt, dass damit ein Prozessorkern oft zu 100% ausgelastet ist. Auf einem mobilen Gerät mit einem ARM Prozessor führt dies jedoch zu einem unlösbaren Problem. Die Animation wirkt entweder ruckelig oder benötigt bestenfalls einfach zu viel Energie und belastet damit die Batterie unangemessen. Dies war einer der Hauptgründe, warum Microsoft vor rund 3 Jahren Silverlight nicht auf Windows Mobile sinnvoll zum Laufen bekommen hat. Andererseits erwartet ein Anwender heutzutage, das beispielsweise ein zu löschendes Element aus einer Liste nicht einfach „wegpoppt“, sondern sich langsam ausblendet, während die dahinterliegenden Elemente nachrücken und die Lücke schließen. Grundsätzlich kein Problem für ein Silverlight FluidMoveBehavior, aber leider sind diese zu performancehungrig für mobile Geräte.

Die WinRT geht daher mit fest eingebauten Animationen für Standard-Controls einen neuen Weg. Für das obige Beispiel aktiviert man einfach die sog. Theme-Transition AddDelete aus der eingebauten Animations-Library. Etwas vereinfacht ausgedrückt rendert diese Animation alle beteiligten List-Items genau einmal und bewegt sie dann GPU-beschleunigt über das Display, ohne dass der Inhalt dabei neu berechnet werden müsste. Visuell macht dies keinerlei Unterschied, sieht geschmeidig aus und braucht nur einen Bruchteil der Energie. Die vorgefertigten Animationen sind vielfältig und lassen sich auch untereinander kombinieren. Wem das dennoch nicht ausreicht, kann die jetzt als „Dependent Animation“ bezeichneten bisherigen Animationen immer noch verwenden. Allerdings muss man sie explizit einschalten, damit einem auch bewusst wird, dass man hier Leistung verbrät.

Dieses Beispiel zeigt sehr deutlich, wie sehr die WinRT auf Geschwindigkeit, flüssiges UI und Energieeffizienz getrimmt ist. Der Verzicht auf Garbage-Collection in der WinRT erfolgte übrigens nicht aufgrund von Performanceüberlegungen. Zum einen wollte man auf Betriebssystemebene die vollständige Kontrolle über die Speicherverwaltung haben und zum anderen sollte die WinRT wirklich von jeder Programmiersprache aus genutzt werden können.

Weitere Programmiersprachen

C++, JavaScript, C# und VB sind zurzeit die einzigen verfügbaren Programmiersprachen für die Windows Runtime und man kann damit auch nur Metro Apps bauen. Da jedoch alle Entwickler, mit denen ich auf der BUILD gesprochen habe, völlig begeistert sind von der WinRT, vermute ich mal, dass in naher Zukunft diverse Programmiersprachen auf die WinRT aufgesetzt werden. Einfach so, weil es eine interessante Herausforderung ist und Entwickler gerne spannende neue Dinge machen. Außerdem lassen sich viele Sprachen vermutlich sogar leichter auf die WinRT aufsetzen als auf das .NET Framework.

Silverlight

Zur strategischen Zukunft von Silverlight wurde auf der BUILD nichts gesagt. Natürlich läuft Silverlight im Browser und Out-of-Browser auf dem Windows 8 Desktop. Das war aber sowieso klar, da schon immer jede neue Windows-Version die Software der Vorgängerversion ausführen konnte. Auch das Silverlight, Flash und sonstige PlugIns nicht innerhalb einer HTML5 Metro App laufen werden ist logisch. Metro Apps laufen in einer Sandbox und werden vor dem Verkauf über den Windows Marketplace von Microsoft verifiziert. Und zu diesem Konzept passen nun mal keine Browser-PlugIns, auch nicht Silverlight.

Nun ist Metro zwar technisch gesehen eine Weiterentwicklung von Konzepten aus Silverlight, deckt aber einen größtenteils anderen bzw. neuen Markt ab. Metro steht für eine neue UX auf Windows 8 Geräten und läuft weder auf Windows XP, Vista oder 7, noch auf dem Desktop weder im Browser noch Out-of-Browser, noch auf dem Mac. Damit ist es auch mittelfristig keine Alternative für Projekte, die man heute mit Silverlight machen würde. Silverlight hat sich von der aus heutiger Sicht nicht mehr realistischen „WPF/Everywhere“ Idee hin zu einer Browser-basierten Windows Desktop Technologie entwickelt. Durch die Einführung von PInvoke kann eine Full-Trust Silverlight 5 Anwendung sowohl im Browser als auch Out-of-Browser alles machen, was mit Win32 möglich ist. Das ist eine andere Richtung als die von Metro eingeschlagene. Metro erweitert Windows für neue Gerätetypen, ersetzt aber keine der bisherigen Desktop-Technologien.

Ich vermute, dass Microsoft selbst noch nicht so genau weiß bzw. entschieden hat, was nach Silverlight 5 kommen wird. Viele Firmen haben auf Silverlight gesetzt und auch LightSwitch basiert darauf. Daher bin ich sicher, dass Silverlight auch in den nächsten Jahren eine zunehmend wichtigere Rolle spielen wird. Für reine Web-Anwendungen mit maximaler Reichweite muss man ausschließlich auf HTML und JavaScript setzen, das war aber auch schon bei Einführung von Silverlight so und Silverlight war nie als Alternative zu HTML angedacht. In Szenarien, wo man jedoch die Wahl zwischen HTML oder Silverlight hat, ist und bleibt Silverlight fast immer die bessere Alternative.

Die tägliche Arbeit

Metro und die WinRT sind sowohl von der UX Seite als auch technologisch ein großer Schritt nach vorne. Die Zukunft wird sicherlich sehr spannend werden. Bis Windows 8 auf dem Markt ist und eine nennenswerte Verbreitung hat, wird allerdings noch eine ganze Weile vergehen. Wer also nächsten Monat ein neues Projekt startet und sich heute Gedanken über die Technologie macht, für den hat sich durch die BUILD nicht viel geändert. Er sollte Silverlight oder WPF für den Desktop verwenden, genau wie bisher. Zwei sehr positive Dinge für die unmittelbare Zukunft hat die BUILD allerdings schon gebracht: Zum einen weiß jetzt jeder Silverlight-Entwickler, dass er sein Know-how zur UI-Programmierung, XAML oder RIA Services auch langfristig mit Metro weiter nutzen kann. Zum anderen sind die von Microsoft durch eine unglückliche Präsentation von Windows 8 im Juni geschürten Befürchtungen, die .NET Entwicklung würde durch JavaScript ersetzt, endlich vom Tisch.

Ich vermute, dass die WinRT langfristig das Win32 API verdrängen wird, jedoch frühestens in der übernächsten Windows-Version. Vorher werden aber bestehende Systeme wie Windows Phone 8 die WinRT als Basis erhalten. Microsoft hat jedenfalls eine sehr durchdachte und innovative Grundlage für die nächsten Jahre geschaffen.

Wenn ich mir was wünschen könnte: Silverlight 6 im Metro Look mit einer WinRT als PlugIn für weitere non-Microsoft Plattformen. Dies wird aber wohl ein Wunsch bleiben.

WP-Tipp #018 – Auf die Kamera, fertig, los!

27.09.2011 08:00:00 | Gordon Breuer

Aba Assa sagte einmal: "Spontaneität heißt, günstige Gelegenheiten nicht nur erkennen, sondern auch ergreifen." - doch wieviele einzigartige Momente lassen wir an uns vorüberziehen? Wie oft wünscht man sich hinterher, genau in diesem Moment schnell ein Foto gemacht zu haben? Doch es gibt noch ein zweites Zitat: "Put People First" (deutsch: "Die Menschen an erste Stelle setzen"), der neue Slogan / Claim für das Windows Phone. Schauen wir uns im heutigen Tipp des Tages einmal an, was das für das spontane Festhalten der erwähnten Momente mit Fotos bedeutet.

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

WP-Tipp #017 – Verspätungen ankündigen

26.09.2011 08:00:00 | Gordon Breuer

Wer kennt das nicht: Man will sich abends noch mit ein paar Freunden treffen, aber erst verschüttet man noch das Getränk über das Shirt, dann muss man noch mal kurz zur Bank und natürlich hat die Bahn auch noch mal 10 Minuten Verspätung. Damit die anderen wenigstens bescheid wissen, gibt man noch kurz Bescheid. Und verspätet sich gleich noch mehr, weil man durch das langwierige Raussuchen der Kontakte und Tippen der Nachricht ganz vergessen hat, an der richtigen Station auszusteigen! Tja, mit dem Windows Phone wäre es schneller gegangen...

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

Slides von der NRW Conf 2011

26.09.2011 04:59:00 | Lars Keller

Ich war zum fünften Mal bei der NRW Conf als Sprecher dabei, darum kann ich behaupten, dass die Konferenz von Jahr zu Jahr besser wird, obwohl ich jedes Mal denke, da geht nichts mehr daran zu verbessern! :-)

Das Motto der diesjährigen NRW Conf war “Verkehr im Sinne von Wissens- und Know-How-Transfer”. Mit 29 Sprechern und 29 Sessions ist der Wissensaustausch auch gut gelungen. Der Themenmix hat mir dieses Jahr sehr gut gefallen!

Ich war mit der Session “Microsoft Kinect & MS Office? – Neue Wege der Benutzer Experience (UX)?” dabei und habe gezeigt, was man alles so mit der Kinect in MS Office anstellen kann. – Auf jeden Fall hat man verschiedene Lacher auf seiner Seite, wenn man die Entwicklung auf der Bühne vorführt! :-)

Slides zum Vortrag: Download

Ich freue mich schon auf die NRW Conf 2012!

Treffen der .NET Developer Group Braunschweig–Pragmatische Architekturen

26.09.2011 04:28:00 | Lars Keller

Die DNUG Braunschweig trifft sich am 29.09.2011 um 19:00 Uhr im Restaurant Zucker (Tagungsraum). Uns kommt der Microsoft MVP und bekannte Konferenzsprecher Oliver Sturm mit einem Vortrag über pragmatische Architekturen besuchen.

Anwendungsarchitekturen zu planen ist eine komplexe Aufgabe, die große Anforderungen an das Verständnis für die Technologie stellt. Oliver zeigt und erklärt die wichtigsten Punkte des Vorgangs, ein Architekturkonzept für eine mittelgroße verteilte .NET-Anwendung zu erstellen. Vom Datenzugriff über die Schichtentrennung bis zur UI muss jeder Teilbereich berücksichtigt werden, und dieser Talk fasst die Essenz der technischen Überlegungen und einer gesunden pragmatischen Philosophie zusammen. Oliver lässt Sie an seinen reichhaltigen Erfahrungen aus Beratung und Projektgeschäft teilhaben - Architekten, Programmierer und Inhaber anderer Berufsbezeichnungen sind gleichermaßen willkommen!

Bio:
Oliver Sturm ist ein Berater und Trainer für Themenbereiche der .NET Softwarearchitektur. Er ist ein Associate Consultant bei thinktecture, bekannt als Autor von Kursmaterial und Artikeln, ein Experte für Programmiersprachen und ein Microsoft C#-MVP, und für seine Erfahrung im Spezialbereich von DevExpress UI-Komponenten und Frameworks. Unter http://www.oliversturm.com finden Sie mehr Informationen!

Wie immer ist die Veranstaltung kostenlos! Weitere Informationen zur DNUG Braunschweig können hier gefunden werden: http://www.dotnet-braunschweig.de

Der OBA Day 2011 findet am 04.11.11 statt

26.09.2011 03:26:00 | Lars Keller

Zum dritten Mal veranstalten Mario Meir-Huber und ich den Office Business Applikation (OBA) Day 2011 (ehemals Office Community Day). An diesem Tag beschäftigen wir uns mit allen Themen rund um die MS Office Entwicklung. Themen sind VSTO, SharePoint und Office 365. Als Referenten sind dieses Mal dabei Thorsten Hans, Helmut Obertanner, Tom Wendel, Andreas Aschauer, Mario Meir-Huber und ich. :-)
Des Weiteren ist viel Zeit für das Netzwerken und den Erfahrungsaustausch gegeben.

Der OBA Day ist eine kostenlose Veranstaltung, damit wir Euch aber Catering, Snacks etc. bieten können, bitten wir die Teilnehmer um eine Spende. Wie hoch die Spende ist und ob Du spenden möchtest, bestimmt du dabei selber.

Termin: 04.11.2011
Ort: Microsoft Deutschland, Unterschleißheim
Anmeldung: http://oba-day.de/2011/08/29/registrierung/
Twitter-HashTag: #obaday11

Ich möchte mich auch noch ausdrücklich bei unseren bisherigen Sponsoren bedanken: CodeForce, H&D International Group und Microsoft Deutschland GmbH
Interesse den OBA Day als Sponsor zu unterstützen, dann melde Dich bitte bei mir.

Weitere Informationen zum OBA Day findet Ihr hier: http://www.oba-day.de

Intellisense für eigene JavaScript-Funktionen

23.09.2011 19:41:00 | Martin Hey

Seit Visual Studio 2008 gibt es die Möglichkeit, JavaScript-Funktionen so zu dokumentieren, dass auch die Intellisense in der Lage ist, Informationen anzuzeigen. Um so erstaunter bin ich jedes Mal, noch häufig auf Konstrukte wie diese hier zu stoßen:

// function that implements some magic
function DoSomething(parameter) {

}

Der Versuch ist ganz gut, aber es geht noch besser. Nachteil dieser Art der Dokumentation ist nämlich, dass Intellisense dann genau auch nur die Methodensignatur anzeigt, nicht aber nähere Informationen zur Methode.

Mit nur einer kleinen Umstellung kann man diese Unterstützung aktivieren:

function DoSomething(parameter) {
    /// <summary>
    /// function that implements some magic
    /// </summary>
    /// <param name="parameter">the dom element's id</param>

}

Was auffällt: Der Aufbau der Dokumentation ist dem was wir schon für C#-Funktionen kennen sehr ähnlich. Einziger Unterschied: In C# wird der Kommentar über die Methode geschrieben und hier in die Methode. Ab diesem Zeitpunkt ist Visual Studio in der Lage, die Informationen wie gewohnt auch schon während des Tippens anzuzeigen.

Wie schon beschrieben ähnelt der Aufbau sehr dem, was man schon von der Dokumentation in C# kennt - es sollte also keine zu große Einstiegshürden für Entwickler geben. Wer eine kurze Einführung braucht, dem sei der Blogpost von Bertrand Le Roy ans Herz gelegt.

WP-Tipp #016 – Das Windows Phone aktualisieren

23.09.2011 08:00:00 | Gordon Breuer

Einige haben Anfang des Jahres vielleicht schon die ersten Aktualisierungen, die für das Windows Phone erschienen sind, mitbekommen. Für alle anderen, die bereits ein Handy mit der aktuellen Version gekauft haben, wird in den kommenden Wochen das erste mal ein Update für ihr Handy erscheinen: Das mit Spannung erwartete "Mango"-Update auf Windows Phone 7.5! Lesen Sie deshalb heute, wie der Update-Vorgang funktioniert und wie einige Hürden vermieden werden können, damit Sie sich genau wie ich auf "Mango" freuen können ohne Sorge um ihren digitalen Assistenten haben zu müssen!

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

WP-Tipp #015 – Wann habe ich welche App gekauft?

22.09.2011 08:00:00 | Gordon Breuer

Bis Apple damals das erste iPhone mitsamt App-Store vorgestellt hat, lag der Umsatz für den durchschnittlichen Entwickler mobiler Anwendungen nahe null. Das hat sich in den vergangenen Jahren natürlich völlig verändert und im Schnitt kauft jeder Besitzer eines modernen Smartphones laut Statistiken rund 5 Apps im Monat. Doch was, wenn Sie Ihre Käufe später einmal nachvollziehen wollen? Auf der Kreditkarten-Abrechnung steht nur jeweils eine Gesamtsumme, und überhaupt muss es doch irgendwo eine Übersicht geben auf die man zugreifen kann? Gibt es!

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

WP-Tipp #014 – Drahtlose Synchronisierung

21.09.2011 08:00:00 | Gordon Breuer

Gestern haben wir die Möglichkeiten zum Synchronisieren Ihrer Multimediadaten zwischen Handy und PC kennengelernt. Doch wenn Ihr Computer im Arbeitszimmer steht und das Windows Phone auf dem Nachttisch als Weckerersatz und für das nächtliche Aufladen liegt? Bevor Sie in den nächsten Elektromarkt rennen um sich ein 10 Meter USB-Kabel zu kaufen, lesen sie erst einmal den heutigen Tipp des Tages!

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

WP7-Tipp #013 – Art der Verbindung auswählen

20.09.2011 08:00:00 | Gordon Breuer

Viele von uns arbeiten nicht nur an einem PC, sondern an mehreren: Der Rechner zu Hause, der PC am Arbeitsplatz und für das bequeme Surfen auf der Couch noch ein Netbook. Doch ihr Windows Phone fühlt sich nicht an allen diesen PCs daheim: Ohne weitere Einstellungen können einige Funktionen gar nicht benutzt werden und andere funktionieren nur wenn Sie es ausdrücklich starten. Wäre es nicht schön, wenn ihr Windows Phone den PC zu Hause erkennen würde und automatisch ihre neuesten Fotos und Musikstücke abgleicht?

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

What’s new in WCF Web API Preview 5 – introducing the test client

19.09.2011 21:54:00 | Alexander Zeitler

This posting is the first posting in a series of blog posts to show you what has changed from WCF Web API Preview 4 to Preview 5.

If you’ve already been working with WCF Web API in Preview 4, you may have extensively used Fiddler to create your requests or inspect your responses.

If you’re working on your own machine, you may have Fiddler installed. But if you’re e.g. at  your customers site this may not be the case.

This is where the WCF Web API test client which has been introduced with Preview 5 comes pretty handy.

To enable the test client, you have to set the EnableTestClient-Property of the WebApiConfiguration to true:

public class MvcApplication : System.Web.HttpApplication {

	protected void Application_Start() {
		var config = new WebApiConfiguration();
		config.EnableTestClient = true;
		RouteTable.Routes.MapServiceRoute("contacts", config);
	}
}

To start the test client for our contacts list which is available at http://localhost:9208/contacts we simply add the /test fragment to the uri: http://localhost:9208/contacts/test:

WCF Web API test client

As you can see, the test client lists the Resources available under the specified uri.

When clicking on the uri, the Request form gets filled:

GET with the WCF Web API test client

When invoking the Api by clicking the “Send” button, we get our list of contacts:

XML Response in the WCF Web API test client

The test client also allows you to set the Accept-Header, e.g. application/json with sort of IntelliSense:

IntelliSense in WCF Web API test client

The result is corresponding:

application/json in the WCF Web API test client

If your Api allows other HTTP methods then the test client allows you to select them from the drop down (not supported methods are disabled):

wcfwebapitestclient5

As POST is enabled, we’ll POST a new Contact:

POSTing application/json with the WCF Web API test client

In this sense: Happy testing Winking smile

DotNetKicks-DE Image

Die BASTA! geht wieder auf Tour

19.09.2011 13:07:00 | Jörg Neumann

Zum zweiten Mal in diesem Jahr geht die BASTA! auf Tour.

Vom 21.-23. November geht es in Düsseldorf wieder um “Architecture & Good Practices”.

Architektur, WPF, WCF, Entity Framework, jQuery, ASP.NET...

Die BASTA! on Tour - Architecture & Good Practices ist das Tochterevent der BASTA! - der größten unabhängigen .NET-Konferenz im deutschsprachigen Raum. Drei Tage lang bietet Ihnen dieses große Trainingsevent insgesamt sechs Power Workshops, acht Sessions und ein Speaker Panel zu den Themen Architektur und Best Practices in der .NET-Entwicklung. Die BASTA! on Tour richtet sich an Softwarearchitekten, Projektleiter und Entwickler, die erstklassiges Know-how für geschäftskritische Projekte erhalten möchten… (mehr gibt’s hier)

Ich übernehme dabei wieder die Client-Themen:

Darüber hinaus bestreite ich einen ganztägigen Workshop über die WPF. Am dritten Tag gibt es diesmal zwei zusätzliche Workshops, in denen je einen Web und eine Desktop-Anwendung live entwickelt werden.

Vielleicht sieht man sich ja :)

WP7-Tipp #012 – Wozu die Zune-Software?

19.09.2011 08:00:00 | Gordon Breuer

Während eines Telefonates mit Jan Welker vor gut einer Woche haben wir gegenseitig unseren Unmut über die teilweise unverständliche und komplizierte Bedienung des Zune-Players unterhalten. Leider kommt man unter Windows als Windows Phone-Benutzer nicht drumherum, sich mit diesem Multimedia-Brocken auseinander zu setzen. Da ich zu dem Zeitpunkt bereits mit meinem Tipp des Tages begonnen hatte, kam die Idee auf, eine Woche lang ein "Zune-Special" zu machen. Die wichtigsten Funktionen und ein paar hilfreiche Tipps und Tricks sollen in den nächsten Tagen unter die Lupe genommen werden, und hoffentlich die Bedienung in Zukunft ein wenig erleichtern. Fangen wir das Special also an mit einem Überblick, wozu wir WP7-Benutzer den Zune-Player überhaupt brauchen!

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

Google und das Open Directory Project

19.09.2011 02:43:34 | Andre Kraemer

Es gibt wohl kaum jemanden, der es nicht macht: Sich selber googeln. Mag es nun sein um zu erfahren, was Google so alles über einen selbst weiß, oder einfach nur um herauszufinden an welcher Stelle die eigene Homepage bei der Suche nach dem eigenen Namen erscheint.

In letzter Zeit habe ich wieder ein wenig an meiner Homepage herumgeschraubt. Daher habe ich auch häufiger mal wieder nach mir selbst gegoogelt und wunderte mich – wie jedes Mal - darüber, wieso Google in der Zusammenfassung für meine Homepage anzeigt, dass ich ich mich in meinem Blog primär mit VB.NET beschäftigen würde:

image

Auf die Antwort stieß ich in Googles Einführung in die Suchmaschinenoptimierung. Da ich kein Description Meta Tag angegeben hatte, schnappte sich Google einfach den Anfang der Kurzbeschreibung  der für meine Homepage im Open Directory Project hinterlegt ist.

image

Den Zugriff auf das Open Directory kann man laut einem Eintrag in der Google Webmaster-Tools-Hilfe durch folgenden Meta-Eintrag verhindern:

<META NAME="ROBOTS" CONTENT="NOODP">

Außerdem ist natürlich ein passender Description Meta Tag hilfreich Smiley

Für meine Startseite habe ich folgenden Eintrag gewählt:

<meta name="description" 
content="André Krämer ist Softwarearchitekt mit den Schwerpunkten ASP.NET, 
Sharepoint, TFS und Silverlight. Er ist Infragistics MVP und leitet die 
DNUG Koblenz."/>

Der Eintrag ist 151 Zeichen lang. Somit hoffe ich, dass er in den Suchergebnissen komplett angezeigt und nicht gekürzt wird.

Das ganze wird gleich online gehen. Ich bin mal gespannt, wie lange es dauern wird, bis Google den Eintrag entsprechend aktualisiert.

MAC-Adresse im Lab simulieren

16.09.2011 17:31:43 | Thomas Schissler

Wir hatten heute die Anforderung dass wir im Lab eine Software installieren mussten die über eine Lizenz freigeschaltet wird. Diese Lizenz is an die MAC-Adresse der Netzwerkkarte gebunden. Ziel war es nun, dass wir mit der selben Lizenz die Software auf mehreren Lab Environments betreiben können. Dabei ging es nicht darum die Lizenzprüfung auszuhebeln sondern mit der selben Konfiguration auf mehreren Labs zu testen. Was nicht funktioniert, ist dass man im Netz mehrere Netzwerkkarten mit der selben MAC Adresse hat. Aber für die virtuellen Maschinen gibt es da eine einfache Lösung. Man fügt einfach eine virtuelle Netzwerkkarte hinzu die nicht mit dem Netz verbunden ist.

Dazu müssen wir in der VM einen weiteren Netwerkadapter hinzufügen den wir einfach auf “Not connected” stellen und für den wir dann eine MAC-Adresse angeben können.

image

15 ways to follow SharePoint Conference

16.09.2011 16:20:57 | Thorsten Hans

According to this Microsoft Feeds’s article on the build conference I’ll give you 15 ways how to stay up to date for the upcoming SharePoint Conference in Anaheim. I’ve looked for the currently most visible channels to get most of the available information about the event.

The live blogging idea will be very nice I guess.

 

clip_image001[7]

clip_image001[9]

clip_image001[47]

clip_image001[13]

clip_image001[15]

clip_image001[19]

clip_image001[21]

clip_image001[23]

clip_image001[25]

clip_image001[27]

clip_image001[29]

clip_image001[31]

clip_image001[33]

clip_image001[35]

clip_image001[37]

 

So I’ve you aren’t attending the SPC11 keep on track by using our social activities.

 

Technorati Tags: ,
DotNetKicks-DE Image

Neue Areas im TFs sind auf den Work Items nicht sofort sichtbar

16.09.2011 16:12:45 | Thomas Schissler

Heute hatte ich das Problem bei einem Kunden dass neu angelegte Areas nicht sofort auf den Work Items sichtbar waren. Was zuverlässig geholfen hat, war eine Recycle des Application Pools. Das ist aber natürlich auch keine Lösung. Im Web habe ich einige Threads zu diesem Problem gefunden, aber keine wirkliche Lösung. Deshalb möchte ich hier kurz beschreiben, welche Analysemöglichkeiten es hier gibt.

Zunächsteinmal habe ich folgende Zusammenhänge herausgefunden:

Wenn man in einem Client (Visual Studio, Excel, Project, Web Access etc.) eine Iteration anlegt, wird diese in der DB der Project Collection unter der Tabelle tbl_Nodes eingetragen. Dann wird eine Stored Procedure aufgerufen die eine Verarbeitung antriggert. Diese Verarbeitung wird vom Visual Studio Team Foundation Background Job Agent ausgeführt. Dieser schreibt dann einen neuen Eintrag in die Tabelle TreeNodes. Von dort werden die Items für die Work Items gelesen.

Damit ergeben sich folgende Schritte die ich empfehlen kann um das Problem zu untersuchen:

  1. Prüfen ob der Visual Studio Team Foundation Background Job Agent Dienst läuft und ob dieser mit dem Account ausgeführt wird mit dem auch der TFS installiert wurde.
  2. Prüfen ob die neuen Areas sowohl in tbl_Nodes als auch in TreeNodes eingetragen werden
  3. Für den Visual Studio Team Foundation Background Job Agent kann ein Tracing aktiviert werden. In diesem sollte ein entsprechender Eintrag für die Verarbeitung der Area stehen. Man kann einfach nach dem Namen der neuen Area suchen. Das Tracing aktiviert man in der Datei "C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\TFSJobAgent\TfsJobAgent.exe.config"
 1: ...
 2:  <system.diagnostics>
 3:  <trace autoflush="false" indentsize="4">
 4:  <!--To
enable tracing to file, simply uncomment listeners section and set trace switch(es)
below.
 5:  Directory
specified for TextWriterTraceListener output must exist, and job agent service account
must have write permissions. -->
 6:  <!--<listeners>
 7:  <add
name="myListener" 
 8:  type="System.Diagnostics.TextWriterTraceListener" 
 9:  initializeData="C:\Replace_Me_With_A_Directory_The_Service_Account_Can_Write_To\jobagent.log"
/>
 10:  <remove
name="Default" />
 11:  </listeners>-->
 12:  </trace>
 13:  <switches>
 14:  <!--
Trace Switches
 15:  Each
of the trace switches should be set to a value between 0 and 4, inclusive.
 16:  0:
No trace output
 17:  1-4:
Increasing levels of trace output; see Systems.Diagnostics.TraceLevel-->
 18:  <add name="API" value="0" />
 19:  <add name="Authentication" value="0" />
 20:  <add name="Authorization" value="0" />
 21:  <add name="Database" value="0" />
 22:  <add name="General" value="0" />
 23:  <add name="traceLevel" value="0" />
 24:  </switches> 
 25:  </system.diagnostics>
 26: ...
.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; }

Die Zeilen 6-11 müssen einkommentiert und für das Log-File ein gültiger Pfad angegeben werden. Dann kann man die Trace-Levels auf einen Wert zwischen 1 und 4 für die einzelnen bereiche setzen. Ich hatte einfach mall alles auf 4 gesetzt. Natürlich nicht vergessen das nach der Fehleranalyse wieder zurückzusetzen.

Damit sollte sich der Fehler identifizieren und beheben lassen. Viel Erfolg!

WP7-Tipp #011 – Die Kontaktliste schneller durchsuchen

16.09.2011 08:00:00 | Gordon Breuer

Mit den Gesten "Ziehen" und "Wischen" können wir uns schon recht bequem in längeren Listen zurecht finden. Wenn wir aber in einer alphabetischen Kontaktliste mit über 300 Einträgen den Walter auswählen wollen, wird das eine ganz schön anstrengende Wischerei. Doch zum Glück gibt es für solche Fälle auch noch eine Abkürzung...

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

C++ Day mit Microsoft und Intel am 19.10 in München

15.09.2011 15:28:21 | Christian Binder

image

Ich habe die Zeit in Produktgruppe genutzt, um dieses Event zu initiieren, da ich glaube, dass es für native Entwickler einige interessante Neuerungen gibt. Ganz besonders freut es mich, daß Jean-Pierre Duplessis, Architect im C++ Team kommt und mit Boris Jabes einige der neusten Entwicklungen vorstellen wird. Die Relevanz nativer Entwicklung für die Windows Plattform wurde in der Keynote auf der BUILD Konferenz in Anaheim nochmals unterstrichen. Ein Grund mehr, sich einen der 50 Plätze  zu sichern.

Wann  19. Oktober 2011 13:00-18:00 Uhr
Wo  MACE Restaurant in München

Die Teilnahme ist kostenlos aber es sind nur 50 Plätze verfügbar. Zur kostenlosen Anmeldung für den Münchner C++ Day 2011.

Hier einige der Sessions und natürlich wird es eine Q&A geben:

Keynote: Visual Studio 11 and Windows –  Powering the Next Wave of Innovation
Visual Studio C++ Program Manager Boris Jabes und Visual Studio Architect Jean-Pierre Duplessis stellen die neuesten Entwicklungen und Ausblicke für C++ in Visual Studio und auf der Microsoft-Plattform vor. Eine Session, die kein C++ Developer verpassen sollte.

Effective C++ Programming with Visual Studio 11 Ultimate
Programmer productivity in the era of agile development is no longer something we can count with lines of code. Visual Studio brings together a slew of lifecycle management tools—from architecture analysis to unit testing—that dramatically improve the productivity of C++ developers everywhere. Come learn how the next version Visual Studio will help you embrace agile methodologies like never before!

Unleash Parallel Performance with C++ in Visual Studio 11
Parallelism is everywhere. The upcoming version of Visual C++ enables native developers to remain the kings of performance across all form-factors. With new compiler technology, we will show how every developer can take advantage of multi-core CPUs. With C++ AMP, we bring the cheap & awesome power of GPUs to every C++ programmer. Finally, we bring it all together with enhancements to the debugging and profiling experiences across VS.

Graphics & Game development tools in Visual Studio 11
Visual Studio 11 brings the most significant set of improvements for developing graphics-intensive apps in over a decade. Whether you are just getting started with 2D/3D games or a self-proclaimed “Guru”, there's something for you in this talk. We will walkthrough a slew of new tools integrated into Visual Studio that will make your life better.

Sprecher von Microsoft und Intel

Bev Bachmayer

Bev Bachmayer
Senior Software Engineer
Software and Solutions Group at Intel GmbH

Bev Bachmayer has worked in diverse software engineering, performance engineering and engineering management positions in the US and Europe during her 28 years at Intel. Her key area of interest is performance analysis and optimization of software on new computer architectures. Additionally, Bev supports increasing the number of professional females entering computer science/engineering programs worldwide through multiple projects. Bev holds a Bachelor's degree in Computer Science from the University of Oregon and an MBA from Portland State University. She is a member of the IEEE, ACM and the European Professional Women's Association (EPWN).

image

Jean-Pierre Duplessis
Architect, Microsoft Visual Studio
Microsoft Corporation

Jean-Pierre Duplessis is an architect for Microsoft Visual Studio. His mission is to simplify and integrate the functions needed to make Visual Studio a key tool in the service of a new generation of software. Before working on the last four versions of Visual Studio, he was instrumental in the creation of Windows XP. “JP” as he is nicknamed is originally from Canada where he was CEO for ten years for a software company called JPSoft before joining Microsoft.

image

Boris Jabes
Senior Program Manager, Visual C++ Team, Microsoft Corporation

Boris Jabes is a senior program manager lead on the Visual C++ team where he is responsible for improving the IDE experience for C++ developers. Recently, he's been concentrating on making the IDE scale to multi-million line source bases. Before joining Microsoft, Boris obtained degrees from the University of Waterloo and Carnegie Mellon where he specialized in distributed systems and software engineering.

Slides und Demos für WCF Web API Round-Up und .NET Usergroup Leipzig

15.09.2011 00:07:00 | Alexander Zeitler

Die Slides und Demos zum WCF Web API Round-Up vom 05.09.2011 bei der Online-Usergroup bzw. zu meinem Vortrag bei der .NET Usergroup Leipzig am 09.09.2011 können hier zusammengefasst heruntergeladen werden.

WcfWebApi

Slides / Demos.

DotNetKicks-DE Image

WP7 App: MSDN Online auf dem Windows Phone

14.09.2011 17:25:20 | Kay Giza

Immer und überall auf dem Laufenden zum aktuellen Entwicklergeschehen bei Microsoft Deutschland bleiben Sie ab sofort mit der neuen Windows Phone 7-App von MSDN Online, die kostenfrei über den Windows Phone Marketplace erhältlich ist. Damit haben Sie jederzeit den Überblick über ... [... 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

Windows Live Hotmail mit “Hacker-Markierung”

14.09.2011 13:23:00 | Gordon Breuer

Vor kurzen sind einige Neuigkeiten zur Wave 5 von Skydrive bekannt geworden, beispielsweise das der Speicher für Office-Dokumente und Fotos nicht länger beschränkt ist; oder das man zusätzlichen Speicher dazu kaufen kann. Heute habe ich zum ersten mal eine neue Option in der Webmail-Oberfläche von Hotmail entdeckt, mit der man gehackte Mailkonten markieren soll.

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

WP7-Tipp #009 – Rund um die Anwendungen

14.09.2011 08:00:00 | Gordon Breuer

Das Windows Phone hat anderen Smartphone-Plattformen von Haus aus viel voraus: Viele Funktionen die man woanders erst mit Zusatzprogrammen nachrüsten muss, sind hier bereits fest in das Handy integriert. Doch natürlich sind Apps auch beim Windows Phone das Salz in der Suppe. Heute erfahren wir deshalb, wie wir den Umgang mit ihnen etwas besser gestalten können.

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

Profi Email-Account mit Microsoft Office 365? Entwickler und Office 365?

13.09.2011 16:44:35 | Kay Giza

Einige sagen, es ist eine Profi Mail-Box, andere sagen, es ist das Arbeiten von praktisch überall und auf fast jedem Gerät in gewohnter Umgebung. Stichworte sind E-Mail & Kalender, Office Web Apps, Websites & Zusammenarbeit, IM & Online-Besprechungen und garantierte Verfügbarkeit von 99,9 Prozent. Aber was hat es damit auf sich und warum sollte es mich als Entwickler interessieren? Die Rede ist von Microsoft Office 365 - damit stellt Microsoft vertraute Office-Tools für die Zusammenarbeit und Produktivität über die Cloud bereit. So können alle ganz einfach von nahezu überall zusammenarbeiten und auf E-Mails, Webkonferenzen, Dokumente und Kalender zugreifen. Ein kleines Beispiel: Microsoft Office 365 für Berufstätige und kleine Unternehmen ist ein Abonnementservice, der 5,25 Euro monatlich pro Benutzer kostet und Ihnen von praktisch überall und von fast jedem Gerät Zugang zu Ihren E-Mails, wichtigen Dokumenten, Kontakten und Kalendern ermöglicht. Wenn Sie bei sich im Unternehmen für die Cloud-Version von Microsoft Office entwickeln möchten, unterstützt Sie das kostenfrei erhältliche... [... 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

WP7-Tipp #008 – Kontakte im Schnellzugriff

13.09.2011 08:00:00 | Gordon Breuer

Wer zuvor noch nie ein Smartphone verwendet hat, vermisst am Anfang sicher seine gewohnten Tasten. Stattdessen muss man nun mit dem Finger auf einem Display rumfahren und bunte Icons antippen. Doch das Windows Phone beweist, dass das gar nicht langweilig sein muss. Wie wäre es, wenn Sie sanft auf die Wange der Freundin (oder des Freundes) Tippen und kurz darauf schreiben Sie ein paar liebe Zeilen nur für sie / ihn? Wenn Sie nicht auf die echte Wange drücken, sondern auf das Foto des Kontaktes Ihres Windows Phones, kann das tatsächlich funktionieren! Wie, das erfahren Sie im heutigen Tipp des Tages.

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

Erstellung von Custom Checkin Policies für Team Foundation Server 2010

13.09.2011 00:30:13 | Thomas Schissler

Erstellen einer simplen Custom Checkin Policy

In diesem Beispiel wollen wir eine Custom Checkin Policy erstellen die prüft, ob beim Checkin ein Kommentar min einer bestimmten Mindestlänge angegeben wurde. Es gibt ja bereits mit den Powertools eine Policy die prüft, ob überhaupt ein Kommentar angegeben wurde, aber wir wollen auch zu einem gewissen Maße prüfen, ob der Kommentar auch sinnvoll ist indem wir eine Mindestlänge erwarten. Zur Erstellung dieser Policy gehen wir als folgendermaßen vor:

 

1.)      Wir erstellen ein neues ClassLibrary Projekt in Visual Studio

2.)      Wir fügen eine Referenz zur Microsoft.Teafoundation.VersionControl.Client.dll hinzu. Diese findet man unter ReferenceAssemblies im VS DIE Ordner, also z.B. C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ReferenceAssemblies\v2.0\Microsoft.TeamFoundation.VersionControl.Client.dll

3.)      Wir leiten unsere Klasse von PolicyBase ab und lassen Stubs generieren. Der Zwischenstand sieht dann so aus:
clip_image002[4]

4.)      Wir setzen nun die Properties mit entsprechenden Werten, z.B.

public override string Description

        {

            get

            {

                return "Will check if the checkin comment is at least 10 letters long.";   

            }

        }

 

        public override bool Edit(IPolicyEditArgs policyEditArgs)

        {

            return true;

        }

 

        public override PolicyFailure[] Evaluate()

        {

            throw new NotImplementedException();

        }

 

        public override string Type

        {

            get

            {

                return "Changeset Comments Length Policy";

            }

        }

 

        public override string TypeDescription

        {

            get

            {

                return "This policy will require users to provide checkin comments of a minimum length.";

            }

        }

Wichtig sind hier vor allem Type und Type Description da diese bei der Auswahl der Policy angezeigt werden.

5.)      Nun wollen wir die Evaluate-Methode implementieren. Diese wird vor dem Checkin ausgeführt und liefert mögliche Verletzungen der Policy zurück. Nur wenn keine Verletzungen gemeldet werden, wird der Checkin ausgeführt. Da wir hier den Checkin Comment prüfen wollen, brauchen wir Zugriff auf das Changeset. Dazu brauchen wir zuerst ein Feld das den Checkin enthält:

 

private IPendingCheckin currentPendingCheckin;

 

6.)      Nun überschreiben wir die Initialize-Methode und setzen hier unser currentPendingCheckin:

 

public override void Initialize(IPendingCheckin pendingCheckin)

{

    base.Initialize(pendingCheckin);

 

    currentPendingCheckin = pendingCheckin;

}

                                                                                                                        

7.)      Anschließend implementieren wir unsere Validierungslogik in der Evaluate-Methode:

public override PolicyFailure[] Evaluate()

{

    var failures = new List<PolicyFailure>();

    if (currentPendingCheckin.PendingChanges.Comment.Length < 10)

    {

        failures.Add(new PolicyFailure("Checkin Comment is too short, at least 10 letters are required", this));

    }

    return failures.ToArray();

}

 

8.)      Dann folgt noch ein wichtiger Schritt, wir müssen die Klasse serialisierbar machen

[Serializable]

public class CheckinCommentLengthPolicy : PolicyBase

 

9.)      Nun kompilieren wir die Solution und kopieren die DLL in einen lokalen Ordner. Anschließend tragen wir in der Registry unter „HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\Checkin Policies“ einen neuen String Value ein dem wir den Pfad zu unserer Assembly übergeben. Der angegebene Pfad in der Registry ist dabei für x64 Systeme angegeben. Bei c86 Systemen lautet der passende Pfad „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\TeamFoundation\SourceControl\Checkin Policies“.

clip_image004[4]

 

10.)   Nun starten wir Visual Studio neu und aktivieren die neue Checkin Policy. Dazu klicken wir im Team-Explorer mit der rechten Maustaste auf das Team-Projekt dann unter Team Project Settings / Source Control und dort wechseln wir dann auf den Reiter „Check-in Policy“. Über den Button Add können wir unsere Policy auswählen und hinzufügen.

clip_image006[4]

 

11.)   Nun können wir einen Eincheckvorgang vornehmen und wir werden sehen, wenn wir einen leere checkin Comment angeben oder einen zu kurzen, erhalten wir eine Meldung.


 

clip_image008[4]

 

Konfigurierbarkeit der Policy hinzufügen

Nun wollen wir die Anzahl der Mindestzeichen noch konfigurierbar machen. Dazu erweitern wir unsere Policy.

 

1.)   Zunächst fügen wir einen Winforms-Dialog hinzu der für die Eingabe des Wertes dient.
clip_image010[4]

2.)   Im Code definieren wir ein public field über das wir die Anzahl übergeben bzw. auslesen können.

public partial class CheckinCommentLengthConfigDialog : Form

{

    public int MinimumCommentLength;

 

    public CheckinCommentLengthConfigDialog()

    {

        InitializeComponent();

    }

 

    private void btnOK_Click(object sender, EventArgs e)

    {

        MinimumCommentLength = (int)this.numericUpDown1.Value;

    }

 

    private void CheckinCommentLengthConfigDialog_Load(object sender, EventArgs e)

    {

        this.numericUpDown1.Value = MinimumCommentLength;

    }

}

3.)   Im Code unserer Policy fügen wir ein private field hinzu in dem wir den Wert speichern können und verwenden diesen in unserer Evaluate Methode. Zusätzlich geben wir im Property CanEdit den Wert true zurück. Und wir implementieren die Edit-Methode so, dass hier unser Formular aufgerufen wird:

public override bool Edit(IPolicyEditArgs policyEditArgs)

{

    using (CheckinCommentLengthConfigDialog dialog = new CheckinCommentLengthConfigDialog())

    {

        dialog.MinimumCommentLength = minimumCommentLength;

        if (dialog.ShowDialog() == DialogResult.OK)

        {

            minimumCommentLength = dialog.MinimumCommentLength;

            return true;

        }

        return false;

    }

}

 

public override bool CanEdit

{

    get

    {

        return true;

    }

}

4.)   Nach dem Kompilieren können wir dann die DLL an den Ort kopieren den wir in der Registry eingetragen haben (bei mir c:\temp). Damit diese Date überschrieben werden kann, müssen wir Visual Studio beenden. Nun können wir für unsere Policy den Edit-Dialog aufrufen:

clip_image012[4]

 

Verbessertes Deployment der Policy

Nun wollen wir das Deployment unserer Policy nov vereinfachen. Aktuell wäre es so, dass auf jedem Rechner auf dem die Policy geprüft werden soll die DLL kopiert und der entsprechende Registry-Eintrag vorgenommen werden muss. Das ist natürlich nicht besonders elegant. Wir müssen die Policy zwar auf jedem Rechner installieren, da sonst die Policy immer als verletzt gilt, aber die Installation können wir durch den Einsatz von VSIX deutlich einfacher machen.

 

1.)   Zunächst müssen wir das Visual Studio SDK herunterladen und installieren. Der Download für die SP1-Version befindet sich unter http://www.microsoft.com/downloads/en/details.aspx?FamilyID=21307C23-F0FF-4EF2-A0A4-DCA54DDB1E21

2.)   Dann fügen wir ein neues Projekt zu unserer Solution hinzu und wählen die Vorlage VSIX Project

clip_image014[4]

 

3.)   Im Manifest des VSIX Projektes tragen wir nun die entsprechenden Werte ein und fügen unser Policy-Projekt als MEF Component im Bereich Content hinzu.

clip_image016[4]

 

4.)   Damit unser Eintrag in der Registry noch hinzugefügt wird, fügen wir noch eine Text-Datei mit dem Namen „Policies.pkgdef“ hinzu und schreiben dort folgenden Inhalt rein:

[$RootKey$\TeamFoundation\SourceControl\Checkin Policies]

"artisoCheckinPolicies"="$PackageFolder$\artisoCheckinPolicies.dll"

 

5.)   Wichtig ist noch, dass wir bei der pkgdef-Datei in den Eigenschaften „Include in VSIX“ auf True stellen.

clip_image018[4]

 

6.)   Nun kompilieren wir unsere Solution. Wenn alles fehlerfrei erstellt wird, bereinigen wir zunächst unsere manuellen Einstellungen, d.h. wir entfernen zunächst die Policy auf unserem Team-Projekt. Anschließen löschen wir die DLL und die Registry-Einträge die wir im ersten Teil angelegt haben. Dazu müssen wir zuvor Visual Studio wieder beenden. Nach dem Entfernen sollte die Policy in der Liste der verfügbaren Checkin Policies nicht mehr erscheinen. Aus dem Output unseres Setup-Projektes können wir nun die vsix-Datei starten und die Policy installieren.

clip_image020[4]

 

7.)   Danach sollte sich die Policy genauso aktivieren lassen wie zuvor.

SharePoint Conference in Anaheim, California

12.09.2011 22:18:04 | Thorsten Hans

Die SharePoint Conference 2011 wird dieses Jahr in Anaheim, Kalifornien stattfinden. Auch ich werde zusammen mit 2 weiteren Entwicklern der Data One Trupper in Anaheim vor Ort sein.

Während des Events werde ich an einer LiveBlogging Aktion teilnehmen. Ziel der Aktion ist es allen Teilnehmern einen Eindruck zu geben, was in den anderen Sessions so gezeigt wird. Im Hinblick auf deutsche Konferenzen ist dies eher schwer verständlich, schaut man sich jedoch die Agenda an, so sieht man relativ schnell, dass viele gute Sessions parallel laufen. Zwischenzeitlich laufen bis zu 16 Sessions parallel.

Die jeweiligen Posts von der #SPC11 werde ich in Englisch schreiben, da alle Teilnehmer der Aktion dies tun.

Aktuell ist die SPC11 noch nicht ausgebucht, daher sollte Ihr euch noch schnell anmelden und auch live teilnehmen. Ein Blick auf die Sessionliste gibt einem jeden 240 Argumente für den Chef… von daher

SPC2011_Ad_960x286

DotNetKicks-DE Image

WP7-Tipp #007 – Standard-Gesten

12.09.2011 08:00:00 | Gordon Breuer

Der Benutzer eines modernen Smartphones ist heutzutage ein kleiner Herbert von Karajan: Mit zahlreichen Gesten dirigiert er das Orchester seiner vielfältigen Funktionen und Apps mit der Fingerspitze. Vorbei sind die Zeiten, in denen man mit einem kleinen Stift (Stylus) auf kaum erkennbare Symbole tippen musste. Heute wutschen und wedeln wir um Kontakte zu finden, Kartenausschnitte zu vergrößern oder Bilder zu manipulieren. Welche dieser so genannten Gesten es dafür standardmäßig gibt, erklärt der heutige Tipp des Tages.

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

Vorträge auf der NRW Conf 2011

09.09.2011 17:53:58 | Thomas Schissler

image

Auf der diesjährigen NRW Conf in Wuppertal hatte ich am ersten Konferenztag einen ganztägigen Workshop zum Thema SCRUM und am zweiten Tag einen Vortrag zum Thema Agile Projektplanung mit Scrum und User Stories. Die Veranstaltung war wieder einmal super organisiert und sowohl der Workshop als auch der Vortrag waren sehr gut besucht.

Die Folien zum Vortrag können hier heruntergeladen werden:

>

SCRUM Community Event bei der .Net Developer-Group Ulm

09.09.2011 17:23:24 | Thomas Schissler

scrumit_g

Die .Net Developer-Group Ulm bietet am 13.10. die Möglichkeit sich 1 Tag lang rund um das Thema SCRUM zu informieren. Hochkarätige Sprecher werden ihre Erfahrung und ihr Wissen zu Scrum weitergeben. Die Themen sind dabei breit gefächert. Vom Einsteigervortrag über tiefgreifende Aspekte von Scrum für diejenigen die Scrum bereits nutzen bis hin zu Erfahrungsberichten decken wir ein breites Spektrum ab. Da ist für jeden etwas bdabei, egal ob Entwickler, Scrum-Master, Product Owner oder Entscheider, egal ob sie planen SCRUM einzuführen, sich nur mal informieren wollen oder SCRUM bereits einsetzen.

Für eine Verpflegungspauschale von nur 20,—€ bekommen sie geballte Informationen aus Expertenhand und können sich mit vielen Gleichgesinnten austauschen. Also nicht zögern, sondern am besten gleich anmelden, die Plätze sind limitiert.

Anmeldung unter: http://www.dotnet-ulm.de/Anmeldung.aspx

Weitere Informationen und die Agenda in Kürze.

WP7-Tipp #006 – Kontakt aus verschiedenen Quellen kombinieren

09.09.2011 08:00:00 | Gordon Breuer

Über meinen Windows Live-Kontakt von Peter Nowak kann ich hin und wieder gemütlich mit ihm plaudern. In meinem Exchange-Kontakt sind seine geschäftlichen Daten hinterlegt und dank seinem Facebook-Account erfahre ich, dass er verheiratet ist, Polnisch spricht und aus Bottrop kommt (armer Kerl). Dennoch möchte ich ihn jetzt nicht drei mal in meiner Kontaktliste stehen haben oder mich daran erinnern müssen, bei welchem Account ich eine bestimmte Information finde. Muss ich dank Windows Phone aber auch nicht: Ich werfe Peter, bzw. seine verschiedenen Einträge, bildlich gesprochen in einen großen Sack mit seinem Foto und Namen drauf! Wie, das erfahren wir im heutigen Tipp des Tages...

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

WP7-Tipp #005 – Facebook auf dem Windows Phone

08.09.2011 08:00:00 | Gordon Breuer

Egal ob man ein Android-Gerät oder ein iPhone hat: Auf jeder Plattform gibt es zahlreiche Apps, die einem Facebook & co. auf das Handy zaubern. Natürlich gibt es solche Apps auch für das Windows Phone, aber hier sind sie gar nicht unbedingt notwendig: Microsoft hat sein Mobiltelefon schon von Haus aus mit einer guten Facebook-Integration ausgestattet. Man muss sie nur zunächst auch aktivieren.

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

Externe Templates in KnockoutJS laden

07.09.2011 23:50:00 | Alexander Zeitler

Will man die Templates für KnockoutJS in externe Files auslagern, kann man das wie folgt tun:

<script id="addCustomerTemplate" type="text/html" src="templates/customer/add.html"></script>
<script id='displayCustomerTemplate' type='text/html' src="templates/customer/display.html"></script>

<script type="text/javascript">
	ensureTemplates();
	function ensureTemplates() {
		var totalTemplates = $('script[type="text/html"]').length;
		var readTemplates = 0;
		$('script[type="text/html"]').each(function (idx, val) {
			$.get($(val).attr('src'), function (tmpl) {
				$(val).text(tmpl);
				readTemplates++;
				if (readTemplates == totalTemplates) {
					ko.applyBindings(viewModel);
				}
			});
		});
	}

In den Templates selbst findet sich dann wieder normales HTML inkl. Color Coding und IntelliSense in VS.

Die Lösung basiert auf dem Posting von Ryan Niemeyer und dem Kommentar von “The Reverand”.

DotNetKicks-DE Image

HtmlHelper und Interfaces

07.09.2011 09:35:00 | Martin Hey

MVC-Views an ein Modell zu binden ist eigentlich ganz einfach: Man definiert eine Klasse, und typisiert die View mit Hilfe von @model. Das Ganze funktioniert super mit konkreten Typen und auch mit Interfaces:

@using EmployeeApplication.Models
@model Employee

Name:  @Html.DisplayFor(m => m.LastName), @Html.DisplayFor(m => m.FirstName)
Salary: @Html.DisplayFor(m => m.Salary)

Mein Beispiel ist recht einfach umrissen: Es gibt eine Klasse Employee, die einen Mitarbeiter eines Unternehmens definiert, mit typischen Eigenschaften wie Name und Jahresgehalt. Mit Hilfe der Html-Helper-Methode DisplayFor werden die Daten des jeweiligen Mitarbeiters angezeigt.

So weit alles recht unproblematisch.

Nicht immer möchte man auf konkrete Typen binden. Aus diesem Grund ändere ich mein Modell etwas um: Es wird das neue Interface IPerson definiert. Dieses definiert die Eigenschaften einer Person - also Vorname und Nachname. Davon abgeleitet wird nun noch das Interface IEmployee definiert, das IPerson um die Eigenschaft Jahresgehalt erweitert.

public interface IPerson
{
    int Id { get; set; }
    string LastName { get; set; }
    string FirstName { get; set; }
}

public interface IEmployee : IPerson
{
    double Salary { get; set; }
}

Die Klasse Employee implementiert nun dieses Interface und die View wird mit Hilfe des Interfaces IEmployee typisiert.

@model IEmployee

Name:  @Html.DisplayFor(m => m.LastName), @Html.DisplayFor(m => m.FirstName)
Salary: @Html.DisplayFor(m => m.Salary)

Was passiert? Die Eigenschaften, die IEmployee selbst definiert (Salary) können problemlos angezeigt werden. Aber es kommt zu einer Exception, wenn die Expressions aufgelöst werden sollen, die IPerson definiert (LastName und FirstName). Der Helper kann das Interface also nicht komplett auflösen.

 

Offenbar handelt es sich dabei aber um eine erwartete Implementierung des MVC-Frameworks. 

Wie lässt sich das Problem jetzt lösen, ohne wieder auf den konkreten Typ zu binden? Das MVC-Framework kann die Expression auflösen, wenn man als Hilfe das konkrete Interface angibt. In meinem Fall also IPerson.

@model IEmployee

Name:  
@Html.DisplayFor(m => ((IPerson)m).LastName), 
@Html.DisplayFor(m => ((IPerson)m).FirstName)

Salary: 
@Html.DisplayFor(m => m.Salary)

WP7-Tipp #004 – Signalstärke, Ladezustand der Batterie und andere Infos

07.09.2011 08:00:00 | Gordon Breuer

Der Kollege aus der Buchhaltung hat den aktuellen Quartalsbericht als PDF in einer Mail geschickt - stolze 18 MB ist das Werk mitsamt den bunten Grafiken und Diagrammen groß. Ein kurzer Blick zeigt, dass ich im Moment mit meinem W-Lan Netz verbunden bin, ich kann den Anhang also schnell herunterladen ohne mein Datenvolumen beim Mobilfunkbetreiber zu belasten. Und anschließend vielleicht noch die Freundin anrufen um den kommenden Urlaub zu besprechen. Reicht denn die Akkuleistung noch für das kurze 3-Stunden-Gespräch? Und wo finde ich überhaupt diese ganzen Daten beim Windows Phone?!

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

NRWConf 2011

06.09.2011 14:51:27 | Thorsten Hans

Am Freitag den 09. September 2011 ist es wieder soweit. Eine der größten und besten Konferenzen rund um das Thema .NET, die NRWConf,  geht in die nächste Runde.

Das OrgaTeam rund um Lenny, Kostja und den Düsseldorfer Jung haben auch in 2011 mal wieder einen perfekten Job geleisetet und die Neuauflage der NRWConf möglich gemacht. Viele bekannte Gesichter aus der deutschen .NET Community Treffen sich dieser Tage wieder in Wuppertal um über .NET zu reden. Auch ich werde dort sein und einen Vortrag zum Thema SharePoint 2010 halten.

SharePointDie NRWConf ist bereits komplett ausgebucht und verspricht daher analog zur Vergangenheit eine coole Konferenz zu werden. Weitere Infos zur Agenda und der Konferenz findet ihr hier.

 

Technorati Tags: ,,
DotNetKicks-DE Image

WP7-Tipp #002 – Das Anwendungs- und Kontextmenü

05.09.2011 08:00:00 | Gordon Breuer

Bedienkonzepte sind das A und O eines jeden technischen Gerätes: Wenn der Anwender nicht versteht, wie er etwas machen kann oder wo er die jeweilige Funktion findet, wird er das Handy schnell als zu kompliziert abtun und zur Seite legen. Auch in Windows Phone gibt es zusätzliche Funktionen, welche - mal mehr, mal weniger - einfach erreichbar sind; wenn man denn weiß wo man suchen muss!

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

Update auf dotnet Kicks für Windows Phone 1.1

04.09.2011 13:29:32 | dotnet-kicks.de Blog

Die Reaktionen auf unsere DNK-App für das Windows Phone waren fast ausschließlich positiv. Vielen Dank noch mal dafür! Vielleicht kann der eine oder andere Benutzer auch noch eine Bewertung im Marketplace hinterlassen, das würde uns ebenfalls freuen. Smiley

Kritik wurde zumeist nur an dem Vibrations-Feedback verübt, das einige Anwender gestört hat. Wir haben also kurzfristig eine Option eingebaut, mit der man das VIbrations-Feedback nun selber ein- oder ausschalten kann.

Weitere Neuerungen sind auch ein- und ausschalten von Instapaper für die vereinfachte Darstellung der Artikel, so dass ihr nun selber entscheiden könnt ob der Dienst verwendet werden soll. Außerdem kann jetzt auch die anonyme Nutzerstatistik abgeschaltet werden, auch wenn es natürlich schön wäre wenn möglichst viele sie aktiviert ließen. Hierüber wird erfasst, wieviele verschiedene Installationen es von der App gibt, in welchem Land diese erfolgen, wieviele Benutzer von einer früheren Version auf die aktuelle aktualisiert haben, welche Fehler aufgetreten sind und noch ein paar andere Statistische Daten. Jedoch werden keine persönlichen Daten übermittelt oder welche Funktionen / Seiten in der App verwendet werden.

Außerdem gibt es noch ein paar kleine Fehlerkorrekturen, die in der ersten Version leider übersehen wurden. So kann man jetzt endlich, wenn man auf die Details eines Artikels gegangen ist, mit dem Finger nach links oder rechts wischen um innerhalb der Liste zu blättern. Hier gab es zuvor beim ersten Listeneintrag ein Problem.

Hier das Changelog im Detail:

02. September 2011 | Version 1.1
  • Bugfix: Fehlerhafte Einbindung des AdDuplex-Banners
  • Bugfix: Auf der Detailseite des ersten Artikels einer Liste funktionierte die “Flick”-Geste zum Blättern nicht
  • Das Vibrations-Feedback wurde verkürzt und ist jetzt standardmäßig deaktiviert
  • Benutzer von Windows Phone Mango erhalten einmalig einen Hinweis auf die Beta-Version der Mango-Version
  • Logo auf dem Live-Tile etwas verkleinert
  • Zusätzliche Optionen im Einstellungsmenü:
    • Vibrations-Feedback ein/aus
    • Instapaper ein/aus
    • Anonyme Statistiken ein/aus

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