BT

Mono 3: suporte a Async, melhorias em GC e .NET 4.5

por Roopesh Shenoy , traduzido por João Talles em 13 Dez 2012 |

Miguel de Icaza anunciou o lançamento do Mono 3.0, que vem com melhorias como o Async para programação assíncrona, funcionalidade melhorada do SGen do coletor de lixo e uma API de Eval aperfeiçoada, além de compatibilidade com o .NET Framework 4.5.

O Mono 3.0 é uma atualização da versão 2.10 - a última versão estável do Mono. Algumas das novidades já tinham sido incluídas nas versões 2.11.x lançadas neste ano. As principais mudanças são:

  • Compilador C# Async;
  • Integração com diversos projetos open source da Microsoft como ASP.NET MVC 4, ASP.NET WebPages, Entity Framework, Razor e System.Json;
  • O SGen Garbage Collector passa a ser o coletor de lixo padrão, com melhorias de desempenho e escalabilidade e melhor aproveitamento de hardware com múltiplos processadores e núcleos. O SGen também foi portado para Windows e MPIS;
  • A API Eval() agora pode compilar tipos completos, ao invés de apenas expressões. O compilador como serviço (compiler-as-a-service) deixou de possuir escopo global e pode ser instanciado múltiplas vezes em escopos diferentes;
  • Há diversas otimizações em tempo de execução para tipos, como ThreadLocal<T> e List<T>;
  • Foram incluídos novos atributos para forçar o compilador a fazer in-lining, para aumento de desempenho;
  • Há a possibilidade de compilação binária de 64 bits no MacOS (embora só exista suporte para distribuição em 32 bits);
  • Melhorias no Soft Debugger para melhor desempenho com dispositivos conectados via USB;
  • Inclusão do F# 3.0 com o Mono no OS X;
  • A implementação do banco de dados SQLite do Mono passa a contar com suporte à API de criptografia do iOS. Também é possível alterar o modelo de threads através de configuração.

Pode-se ver mais detalhes sobre as mudanças nas notas de lançamento.

Miguel de Icaza afirma que todas as melhorias serão implementadas futuramente também no MonoTouch e Mono para Android. E o mantenedor do Mono indica que o time do projeto está trabalhando para reduzir a duração de ciclos de lançamento. Desse modo, mudanças maiores serão feitas em um ramo (branch) separado e depois migradas para o ramo principal. O objetivo dessa iniciativa é manter o ramo principal o mais estável possível.

Um dos principais pontos levantados por desenvolvedores que utilizam o Mono é a falta de um construtor de interfaces multiplataforma. O time, no momento, recomenda a construção de interfaces nativas para cada plataforma, utilizando um conjunto de funcionalidades compartilhadas. Uma sugestão do próprio Miguel de Icaza é a utilização de GTK#, ou o Qt com mapeamento Qyoto para C#, ou ainda um novo conjunto de ferramentas chamado Xwt.

Estão disponíveis binários (3.0.2 beta) para Windows, OS X e OpenSUSE. P0de-se também efetuar o build a partir do código-fonte.

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
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

We notice you’re using an ad blocker

We understand why you use ad blockers. However to keep InfoQ free we need your support. InfoQ will not provide your data to third parties without individual opt-in consent. We only work with advertisers relevant to our readers. Please consider whitelisting us.