2010-07-29 17 views
4

Est-il possible d'exécuter la génération de code T4 sans avoir besoin de Visual Studio 2010? Fondamentalement, je dois construire un ORM dans la maison (ne demandez pas ... si j'avais le choix je ne le ferais pas). J'avais l'intention d'utiliser subsonic comme base, mais changer certaines choses et comment ils fonctionnent. Cependant, ma question principale est de savoir si je peux exécuter T4 à partir d'une application externe que j'écris, donc je peux utiliser les fonctionnalités de T4? Ou suis-je mieux de le faire moi-même (dont je doute)? AFAIK Les modèles T4 sont invoqués depuis Visual Studio IDE.Génération de code T4 sans Visual Studio 2010?

Répondre

0

La création d'un ORM nécessite plus que des modèles de texte. Je vous suggère de regarder dans AtomWeaver (au http://www.atomweaver.com) qui est un générateur de code qui vous permet de construire des modèles à partir de blocs de construction individuels (appelés "atomes"). Ces atomes sont des modèles intelligents qui agissent à la fois comme modèles de texte mais aussi comme mini-programmes, ce qui vous permet de faire bien plus que de simples substitutions de chaînes.

Vous pouvez développer vos propres "atomes" qui transforment une structure de base de données en code source. Ensuite, pour chaque nouvelle base de données, vous combinez ces atomes pour construire votre schéma et lancez le générateur pour obtenir le code source. Parce que ce que vous avez construit était en fait un modèle de votre base de données, vous pouvez ensuite apporter des modifications et régénérer votre code. AtomWeaver implémente ABSE, une sorte de développement logiciel piloté par modèle (qui n'a rien à voir avec UML ou MDA). Apprenez la mécanique d'ABSE au http://www.abse.info

AtomWeaver est actuellement en version bêta publique. Il n'y a pas beaucoup de documentation à ce stade, vous aurez peut-être de la difficulté à vous y mettre.

0

Il existe un utilitaire de ligne de commande appelé TextTransform.exe que vous pouvez utiliser pour générer du code pour un modèle T4. Je ne peux pas commenter si c'est l'outil approprié pour construire un ORM, mais je l'aime assez bien pour générer des machines d'état à partir d'un fichier XML.

http://msdn.microsoft.com/en-us/library/bb126245.aspx

7

TextTransform.exe fera ce que vous voulez pour les scénarios simples:

http://msdn.microsoft.com/en-us/library/bb126245.aspx

Voici comment exécuter un modèle T4 à partir de votre propre code pour les modèles créés dans VS 2010:

http://msdn.microsoft.com/en-us/library/ee844259(VS.100).aspx

Et voici comment exécuter un T4 t Emplate à partir de votre propre code pour les modèles créés dans VS 2008:

http://www.capprime.com/software_development_weblog/PermaLink,guid,104d9faf-5780-42ca-88e5-c04cb88f61b3.aspx

Il y aura des problèmes en cours d'exécution des modèles subsoniques T4 en dehors de Visual Studio:

How can I automate the t4 code generation for SubSonic

Je tiendrais à T4 plutôt que lancez votre propre moteur de template.

3

T4 fait partie de Visual Studio. Si votre outil ORM peut supposer que Visual Studio est disponible, T4 est un bon choix. Vous avez une option de redistribution du shell Visual Studio, qui inclut également T4, avec votre application. Vous pouvez également utiliser preprocessed templates pour compiler les modèles dans des générateurs de code exécutable. Sous forme compilée, ces modèles ne nécessitent pas Visual Studio, mais ne peuvent pas non plus être modifiés.

Oleg