Si vous utilisez un un des événements, lequel? p>
13 Réponses :
J'ai tendance à éviter la génération de code et à générer des fonctionnalités dynamiques au moment de l'exécution, à l'aide de C # dynamicmethods ou d'expressions C # Lambda ... Je préfère ne pas avoir généré de code dans mes solutions ... P>
Pourquoi? Vous aimez taper tous ce code ennuyeux et répétitif manuellement?
Ce n'est que ennuyeux et répétitif si vous le faites mal.
Dans l'application traditionnelle, il y a une tonne absolue de joli code de chaudière - Pourquoi quelqu'un voudrait-il que quelqu'un voudrait réécrire cela à chaque fois? Peut-être que vous travaillez sur quelque chose de très spécialisé et / ou neuf chaque fois que Lorenvs?
@Charlie, pas toujours votre langue de choix peut vous résumer du code répétitif et même si cela peut, il pourrait ne pas être pratique pour des raisons de performance.
La génération de code a un mérite important - vous pouvez voir ce que vous générez. Mais généralement, les protocoles de métaprogramming et de métaobject doivent être la bonne façon IMHO.
Mes mains comptent-elles? :) p>
C'était agréable de lire. :RÉ
CODESMith Studio - Beaucoup de grands modèles d'échantillons qui fonctionnent avec elle. p>
Excellent outil - J'ai abandonné T4 et je suis retourné à CodeMith après que les modèles T4 ne puissent pas être configurés pour sélectionner un serveur / une base de données / tableau sous forme de propriétés, plutôt que sur le code papier dans le code de modèle ...
Eclipse EMF et JET. P>
Alors que Jet est populaire, ce n'est pas non plus très puissant. Par exemple, OAW / XPAND prend en charge les modèles d'aspect afin que vous puissiez étendre ou remplacer les modèles existants; Il est également basé sur un méta-modèle. EMF utilise Jet pour sa génération de code, tandis que GMF utilise OAW / XPAND pour sa génération de code; Ce dernier est nettement plus facile d'étendre ou de modifier.
Je viens de commencer à jouer avec les fonctionnalités de génération de code de l'architecte Enterprise. C'est un bon rapport de code généré à partir du modèle au lieu de la couche de base de données, mais malheureusement, leur outil de code-gen est un peu difficile à manier. Jusqu'à présent, j'ai modifié son modèle C # pour produire des classes de CSLA à os nues qui me sauvent au moins beaucoup de dactylographie. P>
Jeeves (discuté dans la programmation de Perl avancée). P>
J'ai une étape de pré-construction dans VS 2005 qui exécute que jeeves pour produire du code source "juste à temps" pour la compilation / la liaison. P>
Qu'est-ce que Jeveves ne peut trouver aucun lien?
Avez-vous une copie de Jeeves?
J'écris souvent des scripts de génération de code dans Python. Dans le passé lointain, j'ai également utilisé Perl. L'une ou l'autre langue est bien adaptée à la tâche. P>
Utilisez-vous Python pour générer de Python ou autre chose?
J'utilise Python pour générer Java. Il convient de noter que je ne génère pas de cours d'UML ou de quoi que ce soit comme ça; Je génère des cours qui contenaient un grand nombre de constantes. Cela signifiait que nous chargons des données constantes à l'aide du chargeur de classe au lieu de la lire à partir d'un fichier, ce qui nous permet de renforcer la vitesse (le système intégré que nous travaillons a sur une version mal implémentée de la JVM; de nombreuses classes de base doivent être évitées à cause de mauvaise performance.
"Normal" Code-Gen Outils J'utilise que beaucoup de gens ne pensent pas: P>
Autres outils généraux de code qui sont évidemment Code Gen dans le projet: P>
file.xlsx code>) en code ( fichier.g.cs code>) li>
ul> Toolkit de réengagement logiciel DMS P>
peut être configuré pour lire n'importe quel style de langage de spécification et générer un code, y compris l'optimisation de la génération de code post-code. P>
Le lien ne semble pas fonctionner maintenant.
Le site Web était en panne temporairement. Le lien fonctionne maintenant.
J'utilise les générateurs de code suivants: P>
Je crois que ma productivité serait beaucoup plus faible sans outils de génération de code. Les générateurs de code ne produisent généralement pas de bogues dans le code généré, il s'agit également d'une bonne raison de les utiliser. p>
python (parce que je trouve que ce n'est que le moyen le plus rapide de pirater quelque chose ensemble). p>
Eclipse Xpand et xtext , également appelé Openarchitectureware . P>
OpenRarchItectureware n'existe plus, tous les subprojects sont devenus une partie de la modélisation Eclipse. La boîte à outils contient Xpand, Xtend, MWe et Xtext.
@Gabriel OpenRarchItectureware existe toujours comme un groupe de travail Eclipse (voir le lien dans ma réponse).
C'est vrai, je voulais juste souligner, qu'il n'y a pas de logiciel sous ce nom.