BT
x Por favor preencha a pesquisa do InfoQ !

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

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.