Zur Zeit wird gefiltert nach: .NET Development
Filter zurücksetzen

17.07.2012
23:04

T4 TemplateFileManager als NuGet Package

Aktuell beschäftige ich mich ein wenig intensiver mit NuGet. Nachdem ich einen eigenen NuGet-Server in wenigen Schritten erstellen konnte, um firmeninterne Optimierungen testen zu können, interessiert mich nun verstärkt die Bereitstellung von Content-Packages. Gerade für die kommende App-Entwicklung mit Schwerpunkt Javascript, HTML und REST kann T4 seine stärken gegenüber CodeDOM viel besser ausspielen.

Als erstes habe ich dies mit dem TemplateFileManager ausprobiert. Das erste Resultat ist hier verfügbar und kann mit folgenden Befehl installiert werden:

PM> Install-Package T4.TemplateFileManager

Im Paket ist auch ein Beispiel zur Verwendung enthalten. In einer weiteren Phase werde ich dieses wieder entfernen und ein NuGet-Package bereitstellen, welches nur aus Beispielen bestehen wird.

Aktuell steht nach der Installation eine SimpleSample.tt - Vorlage zur Verfügung, die den Einsatzzweck veranschaulichen soll. Dazu wird auch ein ParameterTemplate verwendet, um die Ausgabelogik von der Verarbeitungslogik zu trennen. Für mich hat sich diese Vorgehensweise als sehr praktisch herausgestellt, da so bspw. bei der Generierung von Schnittstellen für einen WCF-Service auch die Konfigurationseinstellungen erstellt, aber auch einfacher ersetzt werden können.

Nach der erfolgreichen Installation hat das Projekt folgende Elemente:

Abbildung 1 Sichtbare Elemente SimpleSample.tt, SimpleParameterTemplate.tt und TestFolder in dem die Ausgabe von SimpleSample.tt erzeugt wird
Abbildung 1
17.07.2012
23:04

T4 TemplateFileManager als NuGet Package

Aktuell beschäftige ich mich ein wenig intensiver mit NuGet. Nachdem ich einen eigenen NuGet-Server in wenigen Schritten erstellen konnte, um firmeninterne Optimierungen testen zu können, interessiert mich nun verstärkt die Bereitstellung von Content-Packages. Gerade für die kommende App-Entwicklung mit Schwerpunkt Javascript, HTML und REST kann T4 seine stärken gegenüber CodeDOM viel besser ausspielen.

Als erstes habe ich dies mit dem TemplateFileManager ausprobiert. Das erste Resultat ist hier verfügbar und kann mit folgenden Befehl installiert werden:

PM> Install-Package T4.TemplateFileManager

Im Paket ist auch ein Beispiel zur Verwendung enthalten. In einer weiteren Phase werde ich dieses wieder entfernen und ein NuGet-Package bereitstellen, welches nur aus Beispielen bestehen wird.

Aktuell steht nach der Installation eine SimpleSample.tt - Vorlage zur Verfügung, die den Einsatzzweck veranschaulichen soll. Dazu wird auch ein ParameterTemplate verwendet, um die Ausgabelogik von der Verarbeitungslogik zu trennen. Für mich hat sich diese Vorgehensweise als sehr praktisch herausgestellt, da so bspw. bei der Generierung von Schnittstellen für einen WCF-Service auch die Konfigurationseinstellungen erstellt, aber auch einfacher ersetzt werden können.

Nach der erfolgreichen Installation hat das Projekt folgende Elemente:

Abbildung 1 Sichtbare Elemente SimpleSample.tt, SimpleParameterTemplate.tt und TestFolder in dem die Ausgabe von SimpleSample.tt erzeugt wird
Abbildung 1
05.06.2012
13:16

Neue Möglichkeiten mit dem T4-Editor von Tangible

Der T4-Editor von Tangible hat ein paar neue Funktionen verpasst bekommen. Was mir am besten gefällt, ist die bessere Integration in Visual Studio. Microsoft selbst schaffte es nicht, obwohl ankündigt, die Intellisense in VS 2012 für T4 zu ermöglichen.

In dieser Hinsicht gibt nachfolgendes Video einen kurzen und informativen Überblick über die wichtigsten Neuerungen.

05.06.2012
13:16

Neue Möglichkeiten mit dem T4-Editor von Tangible

Der T4-Editor von Tangible hat ein paar neue Funktionen verpasst bekommen. Was mir am besten gefällt, ist die bessere Integration in Visual Studio. Microsoft selbst schaffte es nicht, obwohl ankündigt, die Intellisense in VS 2012 für T4 zu ermöglichen.

In dieser Hinsicht gibt nachfolgendes Video einen kurzen und informativen Überblick über die wichtigsten Neuerungen.

Entity Framework 4.3 - Building Blocks oder wie steuer ich die Datenbankversion

Gelegentlich kommt es vor, dass die Datenbankversionen pro Umgebung unterschiedlich sein können. Bei meinen ersten versuchen ist mir das mit den SQL-Server Versionen 2005 und 2008 so ergangen.

Sofort ersichtlich wurde das, wenn die folgende Fehlermeldung im Log zu sehen war:

System.ArgumentException: The version of SQL Server in use does not support datatype 'datetime2'

Um dies in den Griff zu bekommen gibt es das Attribut "ProviderManifestToken" in der EDMX-Datei. Mit dem ERM-Ansatz lassen sich, neben unterschiedlen Datenbanken, auch unterschiedliche Versionen einer Datenbank verwalten und mappen. Ein sehr interessanter Ansatz bei der Realisierung von Standardsoftware.

Nun stellt sich die Frage, wie mache ich das in Code First mit Schema Migrations?

Der Schlüssel liegt dabei in der Klasse DbModelBuilder. Beim erstellen kann damit die Datenbankversion definiert werden.


// default
var model = builder.Build(connection);

// with version
var model = builder.Build(new DbProviderInfo("System.Data.SqlClient", "2005"));

Gerade mit der nächsten Version von SQL Server 2012 wird es sicherlich ähnliche Probleme geben können, wenn die Systemumgebungen trotz ITIL nicht ganz so synchron sind. Bei der erstmaligen Erstellung des Models wird das sicherlich nicht von Bedeutung sein, wohl aber bei Schema Migrations.

Im Blogbeitrag von Arthur Vickers finden sich noch andere interessante Punkte die interessant sind, so auch die Aussage das Pluggable Conventions für den Durchschnittsentwickler frühstens mit EF6 nutzbar werden, wenn überhaupt.

Weitere Informationen zum Thema:

Translate this page

Kategorien