Existe um Template Engine como o Velocity ou o Freemarker for Delphi? [fechadas]
Para aplicações web, seria útil se as propriedades e métodos do objeto Delphi pudessem ser "conectados" ao código HTML.
Isso pode ser usado de várias maneiras, durante o estágio de construção da resposta HTML e o estágio de processamento da solicitação:
acessar um valor de propriedade de objeto do lado do servidor para produzi-lo no código HTMLvincular uma propriedade de objeto do lado do servidor a um campo de entrada de formulário HTML, para que o aplicativo da Web envie o HTML do formulário com seu valor atual e defina a propriedade com o valor inserido quando o cliente enviar o formuláriovincular um botão de formulário HTML a um método de objeto do lado do servidor, que será executado quando o cliente enviar o formulárioEu não encontrei uma biblioteca Delphi nativa que tornaria mais fácil adicionar esse HTML à vinculação de objetos Delphi.
Minha pergunta:
Existe um mecanismo de modelo para geração de código com script comoApache Velocity ouFreemarker (veja exemplos abaixo) que posso usar em aplicativos Delphi? (não no IDE - não estou procurando uma solução baseada em OTA ou modelos de código Delphi)
O mecanismo de modelo ligaria os objetos Delphi a um modelo e substituiria as variáveis de script e executaria iterações / condições com base nos valores nos objetos. Os modelos podem ser aninhados (chame outros modelos).
Um caso de uso típico seria a geração dinâmica de código HTML, mas também funcionaria para geradores de código Delphi.
Exemplo de velocidade:
<HTML>
<BODY>
Hello $customer.Name!
<table>
#foreach( $mud in $mudsOnSpecial )
#if ( $customer.hasPurchased($mud) )
<tr>
<td>
$flogger.getPromo( $mud )
</td>
</tr>
#end
#end
</table>
Exemplo do Freemarker:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>Welcome ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
Outros motores de modelo semelhantes ao que estou procurando sãoGeração de código T4 do Visual Studio eSmarty.