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

Roslyn: o ‘Compilador como Serviço’ da Microsoft

por Elemar Jr. em 13 Abr 2012 |

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.

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

Roslyn Rocks by Cleydson Silva de Andrade

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

está em versão CTP, bastante estável, desde outubro de 2012... Corrigir para 2011

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

2 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