.
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

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…!

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.

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.

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 :)

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.

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

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

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

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

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)

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

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

Regeln | Impressum