BT

Usando Mono para compilar C# para WebAssembly

| por Jeff Martin Seguir 11 Seguidores , traduzido por Danilo Pereira de Luca Seguir 0 Seguidores em 04 abr 2018. Tempo estimado de leitura: 1 minuto |

Para melhorar a experiência das pessoas que acessam o InfoQ Brasil, nós criamos uma série de funcionalidades que te permitem ficar por dentro das últimas tendências e das novidades de seu interesse, sem que você seja incomodado por coisas irrelevantes. Receba e-mails periódicos e notificações sobre seus tópicos favoritos!

Dado que todos os principais navegadores da Web possuem agora suporte para WebAssembly, os desenvolvedores podem procurar por uma nova plataforma para a qual possam segmentar suas aplicações. A cadeia de ferramentas padrão fornecida pelo grupo WebAssembly compila C/C++ para WebAssembly, o que não possibilita que os desenvolvedores possam usar outras linguagens. Felizmente para os programadores C#, o Projeto Mono está trabalhando em duas abordagens diferentes para suportar o WebAssembly.

A primeira abordagem utiliza o interpretador Mono IL para executar código gerenciado (como C#) em tempo de execução. O objetivo desta abordagem é apoiar a prototipagem e desenvolvimento rápidos. Este segundo método seria melhor usado quando um aplicativo estiver pronto para ser entregue ao cliente, usando compilação estática para produzir um arquivo WASM para execução nativa por um navegador que suporte WebAssembly.

Para criar esses arquivos WASM, o projeto Mono introduziu uma nova ferramenta, o mono-wasm, que utiliza entradas C# e gera bitcode LLVM para ser usado com o backend do LLVM WebAssembly. O arquivo WASM resultante do mono-wasm inclui todas as dependências necessárias para a execução do programa em C#, incluindo mscorlib.dll, biblioteca C e o Mono Runtime. Uma vez que o vinculador LLVM recentemente adicionou suporte para WebAssembly, então o mono-wasm suporta compilação incremental. Isso reduz consideravelmente o tempo de compilação, pois o código que não muda (mscorlib.dll, Mono runtime, etc.) não precisa ser recompilado ao desenvolver sua aplicação.

Muito trabalho já foi realizado pelo projeto, mas o desenvolvedor primário Laurent Sansonetti ressalta que ainda está em uma versão pré-alfa. Na sequência, os objetivos proeminentes incluem a fixação do garbage collector e a preparação de uma versão alpha formal. A longo prazo, o projeto procurará diminuir o tamanho dos executáveis do WASM (o exemplo de "Hello World!" é de 10 megabytes), atualizando o compilador Mono para que ele possa segmentar o WASM32 diretamente e melhorar a interoperabilidade entre C# e JavaScript.

Embora este projeto esteja em desenvolvimento ativo, desenvolvedores curiosos ou aqueles que procuram contribuir podem encontrar o código atual do projeto no GitHub.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Fique por dentro das novidades!

Configure as notificações e acompanhe as novidades relacionada a tópicos, conteúdos e pessoas de seu interesse

BT