Compilar o guidão-templacas no código C# nativo para renderização HTML de performant e servidor de tipo de tipo de tipo.
Este compilador é o resultado da tese de solteiro de Jakob Demler, que abrange a abordagem, decisões de design, detalhes da implementação e sua avaliação e pode ser encontrado aqui
Este projeto está atualmente em uma fase beta.
Uma comparação de desempenho foi feita contra os microbenchmarks do repositório do guidão.
| Microbenchmark | guidão.js | CompiledHandleBars | Aceleração |
|---|---|---|---|
| Arrayeach | 391 OPS/MS | 3039 OPS/MS | 7.77 |
| complexo | 120 OPS/MS | 1180 OPS/MS | 9.83 |
| dados | 295 OPS/MS | 1333 OPS/MS | 4.51 |
| Depth1 | 228 OPS/MS | 3693 OPS/MS | 16.20 |
| Depth2 | 63 OPS/MS | 1515 OPS/MS | 24.04 |
| recursão parcial | 125 OPS/MS | 1895 OPS/MS | 15.16 |
| parcial | 211 OPS/MS | 905 OPS/MS | 4.29 |
| caminhos | 2060 OPS/MS | 4646 OPS/MS | 2.25 |
| corda | 5563 OPS/MS | 13964 OPS/MS | 2.51 |
| variáveis | 1991 OPS/MS | 4027 OPS/MS | 2.02 |
Basta instalar o pacote VSIX no projeto CustomTool e reiniciar o Visual Studio. Adicione um novo modelo de guidão à sua solução (terminando em .hbs) e adicione "HODEBARSCOMPILER" à propriedade CustomTool do arquivo. O compilador será chamado sempre que o modelo do guidão for salvo e criará um arquivo {Templatename} .hbs.cs contendo o código gerado.
Todo guidão-templos precisa de um tipo que ele renderize. Como exemplo, uma classe chamada "Personmodel" servirá:
namespace ViewModels
{
public class PersonModel
{
public string FirstName { get ; set ; }
public string LastName { get ; set ; }
public int Age { get ; set ; }
public List < string > EMailAddresses { get ; set ; }
}
}Agora, devemos comunicar o tipo ao guidão. No início de cada plataforma do guidão, é preciso haver um Soned Modeltoken:
Para o nosso exemplo que seria:
Observe que o tipo dentro do Modeltoken também pode ser uma classe base ou interface do modelo de exibição real que é passado para o modelo.
O restante dos tocares de guidão segue a sintaxe e a semântica do guidão padrão. Aqui está o exemplo completo:
Parciais não precisam ser registrados. Apenas certifique-se de compilar o parcial antes do plato do guidão que usa esse parcial. Para tudo o mais, lógica de guidão padrão.js se aplica.
CompiledHandleBars permite o uso de funções auxiliares. Estes devem ser estáticos, retornar uma string e ser anotado por um atributo. Os parâmetros são verificados se corresponderem ao tempo de compilação, para que a sobrecarga seja possível. Fora isso, eles não têm restrições e podem ser colocados em qualquer lugar da sua base de código.
[ CompiledHandlebarsHelperMethod ]
pulic static string FullName ( PersonModel model )
{
return string . Concat ( model . FirstName , " " , model . LastName ) ;
} O CompiledHandleBars oferece funcionalidade diferente em relação aos layouts: qualquer placa de manobra pode ser renderizada dentro de um guidão. O handlebarsLayouts difere dos planos normais do holo de manuseio devido a um token especial {{body}}:
Para renderizar um modelo de guidão nesse layout, use o token {{layout}} logo após o {{modelo}} token:
O resultado desse modelo é igual ao seguinte modelo:
Devido à abordagem diferente da versão do guidão. Esta informação é comunicada ao compilador por um Modeltoken especial. Sua sintaxe é direta:
Por exemplo:
Este token precisa estar no início de todos os chapas do guidão.
A seguir, são necessários pré -requisitos para poder construir a solução: