Ilmu Komputer    
   
Daftar Isi
(Sebelumnya) Comparison of C Sharp and Visu ...Comparison of database access (Berikutnya)

Perbandingan -- code generation tools

This article compares variable metamodel code generation tools[clarification needed]. Fixed metamodel code generation tools, such as UML tools, are excluded (see Daftar/Tabel -- UML tools). Many of the links on this page are broken or removed since the descriptions of these tools do not meet the standards of significance for Wikipedia.

NameCreatorOSFirst public releaseLatest stable versionSoftware licenseOpen source
Code4Green-a ultimate code generation toolCode4GreenWeb - Free Online20091.0ProprietaryNo
CodeFluent EntitiesSoftFluentWindows2005691 - 2013ProprietaryNo
CodeSmith GeneratorCodeSmith ToolsWindows20046.5.0 / 2012-06-06ProprietaryMixed (Templates and Providers are open sourced).
ZumCoder MDD/MDA/ Template BasedAgen Consultoria – Adilson de ALmeida PedroWeb – Online 1.0ProprietaryNo
AcceleoObeocross-platform (Java / Eclipse)20063.1.0 / 2011-06-23Eclipse Public LicenseYes
AcceleratorSurround TechnologiesWindows (C# / .NET)20073.0ProprietaryNo
GenerateXYDotXYWindows 5.1FreewareNo
actifsourceactifsource GmbHcross-platform (Java / Eclipse) 4.6.3 / 2011-08-09Eclipse Public LicenseYes
Agile PlatformOutSystemsWindows20015.1.1.0 / 2010-11-30ProprietaryNo
Apeel PHP Code Generator ProCity Business LogicWindows200111.03b / 2011-09-04ProprietaryNo
AtomWeaverIsomerisWindows20101.3.1 / 2012-02-20ProprietaryNo
GNU AutoGenBruce KorbUnix like, Apple, WinNT [1]19985.14 / 2011-12-4GPLYes
CodeGenerator360 Windows (Online Tool)2011 FreewareNo
Code OnTimeCode On Time LLCWindows (c# / .NET)  Freeware and SubscriptionNo
CogNed Batcheldercross-platform (Python) 2.1MIT licenseYes
DMS Software Reengineering ToolkitSemantic DesignsWindows20012.0ProprietaryNo
EntiProEntiCraftWindows  ProprietaryNo
Genshi (templating language)[2]Edgewall Softwarecross-platform (Python)2006-08-030.5.1 / 2008-07-09  
Iron Speed DesignerIron Speed, Inc.Windows20019.2.0 / 2012-10-04 [3]ProprietaryNo
JCodeBox cross-platform (Java)  ProprietaryNo
Jinja (Template engine)[4]Pocoo teamcross-platform (Python) 2.1.1BSDYes
Kid (templating language)[5]Ryan Tomaykocross-platform (Python) 0.9.6 / 2006-12-20  
MakoMichael Bayercross-platform (Python) 0.2.3 / 2008-05-12MITYes
Microsoft Visual Studio LightSwitchMicrosoftWindows20112011-07-26ProprietaryNo
M-Powermrc[disambiguation needed]cross-platform (Java)2004 ProprietaryNo
MOLGENISMorris Swertz[6]cross-platform (Java)20043.3LGPLv3Yes
MyGeneration Windows   Yes
OMS.Ice – T4 Text Template Generator [7]Olaf MeyerWindows ( .NET )20121.4 / 2012-05-30Eclipse Public LicenseYes
OpenMDX cross-platform (Java)2004-01-282.4 / 2009-03-26BSDYes
[PHPRunner]XlinesoftWindows20035.3 / 2010-10-15ProprietaryNo
T4MicrosoftWindows20052010ProprietaryNo
UmpleUniversity of Ottawacross-platform (Java / Eclipse)20101.12 / 2011-04-21MIT licenseYes
Velocity apache[8]Apache Software Foundationcross-platform (Java) 1.6.2 / 2009-03-19Apache License 2.0Yes
Code-g flexible pattern based code generatorAbstractmetaJava 0.30 / 2012-05-20Apache License 2.0Yes
XACT X4MRApplied Conversion Technologies IncVirtual DOS19943 / 1997-08-01ProprietaryNo

Technical

NameImplementation LanguageActive; Passive [9]Model[10]Typical inputOther inputTypical output
CodeFluent EntitiesC#ActiveMixedUser-defined models, Database schemaTemplates.NET classes, Persistence layers (Microsoft SQL Server, Oracle, PostgreSQL, MySQL), WCF Services, ASP .NET websites...
CodeSmith GeneratorC#, VB.NET, JavaScriptActiveMixedDatabase schema (ADOX, DB2 zOS, ISeries, MySQL, Oracle, Postgre, SQL Anywhere, SQL Compact, SQL Server, SQLite, VistaDB), C# or VB.NET source code, Any meta data source.. E.G., Web Services, SharePoint, UML, XSD, XML, DBML, EDMX, JSON, HBM, HTML and more...TemplatesAny textual output such as C#, VB.NET, C/C++, XML, SQL, JSON, JavaScript, HTML, or any other plain text format.
ZumCoder/MDAPHPPassive[11]MixedXSD, DBML, Database Schema(Mysql,SqlServer,PostegreSQL,SQ Lite),HTML forms,PHP class and (ZML "ZumCoder Model Language", a XML define structureTemplatesAny textual language, depends upon your template code, you can write your own template to outputs the language of your preference
AcceleoJavaActiveTierUser-defined EMF based models (UML, Ecore, user defined metamodels)Any EMF based input (Xtext DSLs, GMF graphical models, etc.)Any textual language.
AcceleratorC#ActiveTierDatabase schemaXML Schema, Templates and configuration tablesC#, WPF, Silverlight, ASP.NET, WCF, WebServices(complete application)
GenerateXYJavaActiveTierUser-defined ModelsXML, CSV, Java, ... (extensible)Any textual language, predefined modules for Java, HTML, XML
actifsourceJavaActiveTierUser-defined ModelsImport from UML, Ecore.Any textual language.
Agile Platform.NetActiveTierUser defined models based on the OutSystems visual modeling languageJava, C#, JavascriptASP.Net and JEE
Apeel PHP Code Generator ProDelphiPassiveTierDatabase schemaPHP, HTML, CSSFull Application – PHP, CSS, Apeel Open Source Framework.
AtomWeaverC++, LuaActiveTierTree models built using a cooperative template system, based on the ABSE modeling approachCode in any languageAny textual language
Code4GreenC#, VB.net, ASP.net, SharePoint, SQL, JAVA, classical ASP, HTML, XMLActive[12]TierCode4Green - an online ultimate code generation tool with a green cause of plantation of trees on each 10,000 LOCCode in C#, VB.net, ASP.net, SharePoint, SQL, JAVA, classical ASP, HTML, XMLOutput determined by the selected language type. It is a plain text.
GNU AutoGenCActiveTierAutogen definitions (lists of key-value pairs or hierarchical data arranged like C structs), Autogen templates (fixed output plus inline macros for conditional or repetitive emission of code blocks or evaluation of Bourne shell or Scheme expressions)XML, CGI dataOutput determined by template (any language or even plain text); additional support for emitting header guards, certain licenses, option parsers, and finite state machines in C
CogPythonActive[13]MixedAny codeJava C# C++ C Perl Python Ruby TCL Javascript Fortran Lisp Scheme Cobol XSLT JSP PHP Yacc SQL XML System Configuration Files
CodeGenerator360C#ActiveTierDatabase SchemaXML SchemaStored Procedures, .NET DAL, C# ASP.NET Pages, Visual Studio 2010 Solution and Project Files
CodeOnTimeC#Active Database TablesTemplates and Various XML configuration tablesC# ASP.NET
C++ Middleware WriterC++Active DSL instance / Middle fileInclude filesC++ marshalling code
DMS Software Reengineering ToolkitSeveral code generation DSLs (attribute grammars, tree patterns, source-to-source rewrites)ActiveDSLs represented as abstract syntax treesDSL instanceWell-formed output language code fragmentsAny programming language (proven for C, C++, Java, C#, PHP, COBOL)
gSoapC / C++  WSDL specifications C / C++ code that can be used to communicate with WebServices. XML with the definitions obtained.
Iron Speed DesignerC# / VB.NETActiveTierDatabase schemaCSSASP.NET (Full application, including C# code, VB code, XML, Stored Procedures, etc.)
JostracaJavaActive [14]TierAny codeJavaAny code; Java, JSP
JCodeBoxJava TierJava Java (Full Web Application)
Microsoft Visual Studio LightSwitchC# / VB.NETActiveTierDatabase schema Complete Silverlight application (Desktop or Web)
MyGeneration     .NET
OMS.Ice – T4 Text Template GeneratorC#ActiveMixedT4 text template, C# or VBC# partial classesAny textual output such as C#, VB, C/C++, XML, or any other plain text format
PHPRunnerPHP/ASP/C#/VB.NETActiveTierDatabase schemaPHP, ASPX, HTML, CSS,PHP, ASP, ASP.NET (Full Web application, including C#, VB.NET, PHP, ASP code, HTML, Javascript, CSS, etc.)
Pro*C  InlineSQL in C C
Spring RooJavaActiveTierJava and automatically-introspected project metadataShell commandsJava (Full Web Application including Java source, AspectJ source, XML, JSP, Spring application contexts, build tools, property files etc.)
T4 Passive T4 Template/Text File Any text format such as XML, XAML, C# files or just plain text files.
UmpleJavaActiveTierJava, PHP, Ruby with embedded Umple codePure Umple code describing associations, patterns, state machines etc.Java, PHP, Ruby, ECcore, Umlet, Yuml, Textuml, JSON, Papyrus XMI
Appsroller Web Form GeneratorJavascriptActiveWeb TierAny codeJavascript 
Velocity apacheJavaPassive [15]TierAny codeJavaJava
XDocLet Active[16]MungerJavaDoc EJB support beans
XACT X4MRCPassive Language_A Source,
Language_A-to-Language_B Transform Rules
CHILL, CMS2, FORTRAN, COBOL, JOVIAL, PASCAL, PL/1, PLM86Compilable Language_B Source;
Application_A Documentation;
Application_B Documentation

References

  1. ^ GNU/Linux, BSD, Apple's OS/X, SVR4-5, HPUX, SCO OpenServer and Solaris. It is expected that it will work on any reasonably modern UNIX system with an ANSI-compliant C compiler. It also runs under WinNT, provided you have CygWin and Guile loaded.
  2. ^ Great tutorial
  3. ^ Version History
  4. ^ Welcome | Jinja2 (The Python Template Engine)
  5. ^ http://www.kid-templating.org
  6. ^ Swertz, Morris A.; de Brock, E. O. (Bert); van Hijum, Sacha A. F. T.; de Jong, Anne; Buist, Girbe; Baerends, Richard J. S.; Kok, Jan; Kuipers, Oscar P. et al. (2004). "Molecular Genetics Information System (MOLGENIS): alternatives in developing local experimental genomics databases". Bioinformatics 20 (13): 2075–83. doi:10.1093/bioinformatics/bth206. PMID 15059831. 
  7. ^ Very fast in-process T4 text template generator
  8. ^ Apache Velocity Site – The Apache Velocity Project
  9. ^ "Active generators build code that you should not modify or should only modify in specifically marked sections which are held safe during a re-generation cycle... Passive generators build code once and then it’s up to you to maintain the code long-run. "
  10. ^ Type based on input: Code munger, Inline code expander, Mixed code generator, Partial class generator, Tier generator
  11. ^ [1]
  12. ^ [2]
  13. ^ The output area for each generator (between the]]] and [[[end]]] lines) is deleted, and the output of running the Python code is inserted in its place.
  14. ^ Jostraca should be used primarily for active code generation.
  15. ^ Open source tools are available that make the task of developing passive code generators all but trivial. One such offering is Velocity from the Apache Software Foundation.
  16. ^ MockDoclet is the base of XDocLet"MockDoclet is an active code generation tool for automatically generating mock objects"
(Sebelumnya) Comparison of C Sharp and Visu ...Comparison of database access (Berikutnya)