O Roslyn, projeto da Microsoft que torna acessível o processo de compilação para .NET, está em versão CTP, bastante estável, desde outubro de 2012. Entretanto, embora seja revolucionário, ainda é relativamente desconhecido para a comunidade desenvolvedora.
O Roslyn torna a compilação transparente, facilitando o desenvolvimento de ferramentas para geração, análise e refatoração de código. Além disso, diminui significativamente a complexidade de soluções de scripting e de programação interativa com VB e C#.
O Roslyn funciona como uma extensão para o Visual Studio 2010 SP1, adicionando recursos ao IDE como um Console REPL para C# e VB (veja a figura abaixo). Também pode operar como uma biblioteca, utilizável diretamente em seus programas.
O código que segue ilustra o potencial do Roslyn no suporte a scripting. São necessárias algumas poucas linhas para desenvolver uma interface interativa para uma aplicação.
using System; using Roslyn.Compilers; using Roslyn.Scripting.CSharp; using Roslyn.Scripting; namespace Roslyn_001 { class Program { static void Main(string[] args) { var engine = new ScriptEngine(); var session = Session.Create(); session.AddReference(MetadataReference.Create("System")); session.AddReference(MetadataReference.Create("System.Core")); session.AddReference(MetadataReference.Create("System.Data")); session.AddReference( MetadataReference.Create("System.Data.DataSetExtensions")); Console.WriteLine("Roslyn REPL for C#"); while (true) { Console.Write(">"); try { var result = engine.Execute(Console.ReadLine(), session); if (result != null) Console.WriteLine("{0}\n", result); } catch (Exception m) { Console.WriteLine("{0}\n", m.ToString()); } } } } }
A imagem que segue ilustra o programa anterior em execução:
A possibilidade de combinar o compilador do C# com aplicações comuns faz com que Roslyn esteja sendo chamado como "compilador como serviço".
É importante destacar que o Roslyn está incompleto e há muitos recursos de VB e C# que não são suportados ainda. De qualquer forma, o que já está disponível deverá permanecer compatível na versão final, e já tem um conjunto de funcionalidades suficiente para muitos experimentos.
Comentários da comunidade
Roslyn Rocks
by Cleydson Silva de Andrade /
Roslyn: o ‘Compilador como Serviço’ da Microsoft correção Outubro de 2011
by Vinicius Leite /
Roslyn Rocks
by Cleydson Silva de Andrade /
Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!
Muito legal o artigo Elemar.
Realmente, depois do Roslyn totalmente implementado as possibilidades de uso serão infinitas. A comunidade .Net vai ganhar muitíssimo com isso. Lembrei de algumas soluções nas quais utilizei reflections que ficariam muito mais simples e flexíveis com o Roslyn.
Roslyn: o ‘Compilador como Serviço’ da Microsoft correção Outubro de 2011
by Vinicius Leite /
Seu comentário está aguardando aprovação dos moderadores. Obrigado por participar da discussão!
está em versão CTP, bastante estável, desde outubro de 2012... Corrigir para 2011