Freitag, 7. Dezember 2012

Oliver Niehus, Microsoft: "Wer kennt Windows 8 wirklich?"

Schon auf der ADC 2012 vor wenigen Wochen überraschte mich Oliver Niehus, Application Development Manager (Technology Lead) bei Microsoft, mit einer Vielzahl von neuen Features in Windows 8 in seinem Talk "Windows RT (Win on ARM)".

Es scheint allerdings, dass er es mittlerweile Leid ist, dass eine Diskussion über Neuerungen in Windows 8 oft auf der Ebene der Oberfläche bleibt - wo ich ihm, spätestens nach dem Talk, vollends zustimme.

Auch die offizielle Seite "Lernen Sie Windows 8 kennen" bringt nicht das erhoffte Aha-Erlebnis.

Werft mit mir zusammen einen Blick auf die neue Serie von Oliver:

Whitepaper: Parallel, TPL, PLINQ, Dataflow, Async/Await

Wie angekündigt, startet nun die Artikel-Reihe zu Async/Await.
Um erst einmal ein par Grundlagen zu schaffen, werden die ersten Artikel eine Zusammenstellung von Ressourcen zum Thema sein. Da Async/Await nicht allein betrachtet werden kann, geht es natürlich auch immer um die Grundlagen-Technologie und Technologien im Umfeld, u.a. TPL, PLINQ, Dataflow.

Offizielle Whitepaper von Microsoft zu Parallel, TPL, PLINQ, Dataflow, Async/Await
Die nachfolgende Ressourcen-Aufstellung fast alle offiziellen Whitepaper von Microsoft zu diesem Thema zusammen. Wenn ihr weitere findet, lasst einfach einen Kommentar da.

Dienstag, 4. Dezember 2012

async & await auf der .Net UserGroup Köln / Artikelserie

Genau jetzt werde ich auf der .NET UserGroup Köln einen kurzen Vortrag als Appetitanreger zum Thema async / await halten.

Dies möchte ich auch zum Start für eine Artikelreihe diesen Advent nehmen - über async / await.

Als Code-Beispiel während des Vortrags musste ein IHttpHandler bzw. IHttpAsyncHandler / HttpTaskAsyncHandler herhalten. Zur Darstellung wurde an diesem Beispiel folgende Evolution aufgezeigt:
  1. Synchrone Variante - schlechter Code :)
  2. Asynchrone Variante - mit APM (Asynchronous Programming Model)/Callback, ohne TPL (Task Parallel Library)/Tasks
  3. Asynchrone Variante - mit APM/Callback, mit TPL/Tasks
  4. Asynchrone Variante - mit TPL/Tasks, mit HttpTaskAsyncHandler, ohne APM/Callback
  5. Asynchrone Variante - mit async / await
Downloads:

Montag, 3. Dezember 2012

2. Bug or Feature: The certificate with thumbprint...was not found

Und zum zweiten Mal bin ich über den Humor der Azure Kollegen gestoßen.
Vielen Dank an meinen Kollegen für dieses Fundstück :)

Freitag, 21. September 2012

Bug or Feature: Due to an ongoing Windows Azure infrastructure upgrade...

Ich bin mir unschlüssig darüber, ob dies als Bug oder Feature dienen soll.
Auf jeden Fall scheint das Azure Team den Humor noch nicht verloren zu haben :)


Samstag, 28. Juli 2012

Design Guidelines in Microsoft Technologien

Eine hohe Qualität des Source Codes gehört bekanntlich zu einer hohen Produktqualität dazu. Schon ein Blick auf die Fehleranfälligkeit und Wartbarkeit eines Systems offenbart die direkte Abhängigkeit zu der Qualität des Quelltextes. Hierbei ist insbesondere die Detail-Ebene gemeint, also bis zu Namensgebungen von Variablen und Felder oder bestimmte "Coding Practices".

Ich möchte hiermit zunächst einen Überblick über bekannte Design Guidelines im C# Umfeld geben und anschließend weitere, weniger populäre, Leitlinien auflisten.

Freitag, 20. Juli 2012

Entity Framework nun Open Source

Es ist offiziell: Entity Framework ist nun Open Source


Das ADO.NET Team gab nun bekannt, dass auch das Entity Framework nun unter Open Source steht und der Source-Code auf CodePlex zur Verfügung steht. In diesem Jahr wurden schon ASP.NET MVC, ASP.NET Web API, ASP.NET Web Pages und Razor unter Open Source gestellt.
Der auf CodePlex liegende Quellcode wird die Grundlage für EF 6 und alle nachfolgenden Releases sein. Allerdings finde ich dieses gar nicht die bedeutendste Neuigkeiten in dieser Ankündigung.

Freitag, 8. Juni 2012

Windows Azure Preview Portal

Erlebnisreiche Tage rund um die Cloud Microsoft Azure.
Alles begann vorgestern mit der Ankündigung von neuen "Windows Azure Services" auf dem Windows Azure Team Blog. Kurz darauf folgte die Keynote von Scott Guthrie auf der "MEET Windows Azure" in San Francisco.
Gestern erfolgte dann die offizielle Freigabe bzw. Online-Schaltung der neuen Services und Funktionen.
Holger Sirtl gibt auf seinem Blog unter Windows Azure Reloaded – Microsofts Cloud wird erwachsen eine deutschsprachige Übersicht der Neuerungen.

Auf zwei Dinge möchte etwas näher eingehen, da diese mein Interesse wecken. In diesem Post geht es zunächst um das neue Azure Management Portal. In dem nachfolgendem um die Windows Azure Web Sites Preview.

Freitag, 11. Mai 2012

Neue Version: Tangible T4 Editor - nun mit Debugging

Tim, CEO der tangible engineering GmbH in Stuttgart, überbrachte mir heute die erfreuliche Nachricht, dass heute offiziell die neue Version des Tangible T4 Editors erschienen ist.

Dies freut mich nicht nur, da wir uns gut kennen, sondern auch weil meine Firma den Tangible T4 Editor im Einsatz hat und damit eine gute Basis geschaffen wurde. Außerdem wurde der Internetauftritt komplett überarbeitet. Eine Übersicht der neuen Features gibt es ebenfalls. Zudem begeistert mich das neue Feature "Template Debugger", was in meinem Augen einer der USPs ist (zufälligerweise brachte ich Tim auf das Fehlen eines Debuggers - ich glaube mein Satz war vor paar Wochen: "Ohne Debugging finde ich T4 nicht nutzbar") ;).

Ladet euch einfach die Free Version herunter. Ausführliche Erklärungen/Tutorials gibt es ebenfalls.


Donnerstag, 10. Mai 2012

Investitionen in die Cloud aus einer strategischen und Enterprise Architektur Sicht

Heute möchte ich euch eine Artikel-Empfehlung geben:

Es gibt zahlreiche Aufstellungen von Entscheidungshilfen hinsichtlich von Investitionen in die Cloud.
Soeben hat Mike Walker, Editor-in-Chief des Microsoft Enterprise Architecture Portals, einen Blog Eintrag veröffentlicht, welcher versucht die Frage von Cloud-Investitionen aus einer strategischen und Enterprise Architektur Sicht zu beantworten. Wie ich finde sehr gelungen.



Freitag, 4. Mai 2012

EF Entitäten: Finden der Primary Keys

Es gibt verschiedenste Gründe, dass man die Werte der Primary Keys (PKs) von Entitäten im Entity Framework haben muss.
Ein Beispiel ist hierbei sicherlich die Find-Methode auf dem DbSet, welche ein object-Array entgegennimmt, um eine beliebige Anzahl von PKs zu unterstützen und das gesuchte/eindeutige Objekt zurückzugeben.

Um die PKs herauszubekommen, gibt es verschiedene Ansätze.

1. Lösung mithilfe des KeyAttribute

Donnerstag, 3. Mai 2012

Automatisches Laden von EF Konfigurationen

Normalerweise der der Ansatz von Entity Framework Code First ein "Convention over Configuration". Allerdings wird man aus meiner Sicht nicht umher kommen, an der einen oder andere Stelle die Konventionen mit geeigneten Konfigurationen zu ergänzen bzw. zu überschreiben.

Entity Framework bietet für diesen Zweck zwei Möglichkeiten an:

Mittwoch, 2. Mai 2012

DbContext Merge für detached Entitäten

Spätestens ab dem Zeitpunkt, wo man beim Entitiy Framework mit detached Entitäten in Berührung kommt, steigt die Komplexität von dem zunächst sehr simplen EF Code First Ansatz.

AttachUpdated für detached Entitäten

Die Lösung eines AttachUpdated für detached Entitäten auf dem DbContext habe ich euch bereits zur Verfügung gestellt. Damit dies allerdings reibungslos funktioniert, müssen alle Ids korrekt mit übertragen werden. Bei ganzen Objektbäumen heißt dies aber auch, dass für alle Kind-Elemente die Ids ebenfalls korrekt übertragen werden müssen.
Problematisch wird es allerdings in zwei Fällen:

  1. der Objektbaum enthält mehrere neue Entitäten: dies führt zu einer Duplicate Key Exception, da versucht wird, mehrere Entitäten mit derselben Id (Guid.Empty) dem Context hinzuzufügen
  2. in dem Objektbaum 1-n Relationen existieren und an dieser Stelle in den zugehörigen Listen Elemente hinzugefügt bzw. gelöscht werden

In beiden Fällen hilft uns leider der AttachUpdated-Ansatz nicht weiter, obwohl er eine performante Lösung ohne DB-Roundtrip darstellt.

Merge & MergeChildren für detached Entitäten

Freitag, 27. April 2012

OBJEKTspektrum - Praxisnah: Agile Architekturmodellierung am Rande der UML

Heute erscheint mein Artikel "Praxisnah: Agile Architekturmodellierung am Rande der UML" in der OBJEKTspektrum Ausgabe 03/2012, welche als Schwerpunktthema Architektur hat.

Der Artikel lässt sich zudem öffentlich herunterladen.
Zusätzlich habe ich eine Seite mit weitergehenden Informationen angelegt: Agile Architekturmodellierung.

Ich wünsche allen Lesern viel Spaß und freue mich konstruktive Kritik bzw. interessante Gespräche.

Mittwoch, 25. April 2012

InstanceEndpoint Port im Azure Emulator

Der ein oder andere von euch hat bestimmt des öfteren schon mit dem Port-Problem des Azure-Emulators gekämpft. Der normale Aufruf - wie man es erwarten würde - funktioniert leider nicht im Emulator:

Dienstag, 24. April 2012

RoleEnvironmentException: error / GetConfigurationSettingValue

Diese Woche sties ich wieder einmal auf einen Fehler des RoleEnvironments, der mich wertvolle Zeit kostete:

Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironmentException: error

Montag, 23. April 2012

Windows Azure und Native Code / C++&CLI Integration

Die Einbindung von nativem Code in euer Windows Azure Projekt ist relativ einfach. Relativ deswegen, weil ein paar Dinge zu beachten sind. Meist fängt der Erste Versuch mit folgender Fehlermeldung an:

BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x800700B)

Eine gute Anleitung findet man unter: Windows Azure and Native Code.

Leider hat dies bei uns nicht ausgereicht...

Sonntag, 22. April 2012

Windows Azure Architektur Symbole / Visio Azure Template

David Pallmann veröffentlichte letztes Jahr ein Set von Icons für die Windows Azure Plattform unter dem Stichwort "Windows Azure Architectural Symbols". Später folgte eine neue Version mit Vektorgrafiken.

Eine Übersicht über die Module inklusive Beispiele stellt er in seinem ersten Post zur Verfügung.

Dienstag, 10. April 2012

EF Performance Considerations / Power Tools Beta 2

Es freut mich, euch endlich eine Zusammenfassung über die verschiedenen Performance Auswirkungen des Entity Framework zu empfehlen.

Das zuständige Microsoft Team hat hierzu eine ganze Seite zusammengetragen:
Performance Considerations for Entity Framework 5

Schade finde ich nur, dass "2.3.3 How to use Pre-Generated Views with a Code First model" keine bessere Start-Up Performance in meinem aktuellen Projekt bringt.

Zusammen mit der Nachricht, dass die EF Power Tools Beta 2 verfügbar sind, ist dies trotzdem ein gelungener Start in die Woche.

Samstag, 7. April 2012

Choreo4You 2.0 neue Version


Seit heute ist die neue Version von Choreo4You online. Dazu gibt
es ein Video mit allen Funktionen und den Download auf der Seite Choreo4You 2.0 Produkt


Sonntag, 11. März 2012

EF CodeFirst DbContext AttachUpdated

Es ist schon eine ganze Weile her, als Cesar de la Torre - ein Architekt bei Microsoft - über Entity Framework in N-Tier und N-Layer Applikationen geschrieben hat. Damals bot das Entity Framework noch keinen Code First Ansatz.

Sehr interessant war der Artikel vor allem dahingehend, dass er eine Lösung für das Handling von detached Entitäten bot: "AttachUpdated". Dieser Ansatz führte dazu, dass man in der Lage war, detached und geänderte Entitäten wieder zurück zu spielen.

Donnerstag, 23. Februar 2012

Cloud 4 Society Award von Microsoft

Freudig steht seit heute fest, dass das Produkt "Hub/Player", welches in unserem Team entwickelt wurde, den Microsoft Cloud 4 Society Award in der Kategorie eCommerce & Line of Business gewonnen hat.

Dies freut mich natürlich besonders, da ich vor ca. einem Jahr der Initiator und Umsetzer war, welcher unsere damaligen Only-On-Premise Lösung Cloud-fähig machte.

Weitere Informationen zum Award und zum Produkt.

Montag, 9. Januar 2012

PMI Agile Certified Practitioner (PMI-ACP)

Ich habe heute nach langem Warten die erfreuliche Nachricht bekommen, dass ich die Prüfung zum PMI Agile Certified Practitioner (PMI-ACP) erfolgreich bestanden habe.

Persönlich fand ich die Vorbedingungen und die Prüfung ansich nicht einfach, aber machbar. Als einzigen negativen Punkt kann ich nur die inkonsequente Benennung von agilen Rollen bzw. Fachbegriffen in der Prüfung anführen.

Sonntag, 8. Januar 2012

Internetpräsenz Online

Unsere Firmen-Internetpräsenz ist nun online und kann unter assento.de begutachtet werden.

Wir wünschen viel Spaß.

Deutsche Funktionsübersicht für CodingKata.NET

Zusätzlich zu den englischen Seiten, welche die Funktionen auf CodingKata.NET (Übersicht, Kata Manifesto) beschreiben, haben wir nun eine deutsche Seite eingerichtet, um die derzeitigen Möglichkeiten aufzulisten: Trainiere C# Fähigkeiten mit 'Code Katas'.

Wenn ihr immer noch Fragen habt, schreibt uns einfach.

Mittwoch, 4. Januar 2012

Erste Retrospektive nach Kanban-Einführung

Ich stehe gerade vor der Fragestellung, welche Art von Retrospektive die "Richtige" für die erste Retrospektive nach der Einführung von Kanban in einem Unternehmen ist.
In diesem speziellen Fall handelt es sich sogar um die erste Retrospektive überhaupt.