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