BT
x A sua opinião é importante! Por favor preencha a pesquisa do InfoQ sobre os seus hábitos de leitura!

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.

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

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2014 C4Media Inc.
Política de privacidade
BT