BT

Início Notícias Usando Mono para compilar C# para WebAssembly

Usando Mono para compilar C# para WebAssembly

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.

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

Comentários da comunidade

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

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

BT

Seu cadastro no InfoQ está atualizado? Poderia rever suas informações?

Nota: se você alterar seu email, receberá uma mensagem de confirmação

Nome da empresa:
Cargo/papel na empresa:
Tamanho da empresa:
País:
Estado:
Você vai receber um email para validação do novo endereço. Esta janela pop-up fechará em instantes.