Zur Zeit wird gefiltert nach: .NET Development
Filter zurücksetzen
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:
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:
Bei Gelegenheit werde ich das Paket T4Scaffolding analysieren, um das Zusammenspiel mit Powershell besser zu verstehen. Mal sehen, welche Ideen sich damit zu Boden bringen lassen ;-)
Weitere Informationen zum Thema:
- Package T4.TemplateFileManager auf NuGet.org
- T4 - Ein neues Feature "Parameter für StartHeader-Methode" im TemplateFileManager
- T4 - Format Document, dass zweite neue Feature im TemplateFileManager
- T4 - Custom Tool ein weiteres neues Feature im TemplateFileManager
- T4 - Benutzerdefinierte Parameter für die StartHeader-Methode im TemplateFileManager
- T4 - Wo steht die Version 2 des TemplateFileManager zur Verfügung
- T4 - EntityFramworkTemplateFileManager durch den TemplateFileManager ersetzen
- What the Hell is Powershell
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:
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:
Bei Gelegenheit werde ich das Paket T4Scaffolding analysieren, um das Zusammenspiel mit Powershell besser zu verstehen. Mal sehen, welche Ideen sich damit zu Boden bringen lassen ;-)
Weitere Informationen zum Thema:
- Package T4.TemplateFileManager auf NuGet.org
- T4 - Ein neues Feature "Parameter für StartHeader-Methode" im TemplateFileManager
- T4 - Format Document, dass zweite neue Feature im TemplateFileManager
- T4 - Custom Tool ein weiteres neues Feature im TemplateFileManager
- T4 - Benutzerdefinierte Parameter für die StartHeader-Methode im TemplateFileManager
- T4 - Wo steht die Version 2 des TemplateFileManager zur Verfügung
- T4 - EntityFramworkTemplateFileManager durch den TemplateFileManager ersetzen
- What the Hell is Powershell
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.
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:
