BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Roslyn: o ‘Compilador como Serviço’ da Microsoft

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

Favoritos

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.

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.

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Comentários da comunidade

  • 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

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Seu cadastro no InfoQ está atualizado? Poderia rever suas informações?

Nota: se você alterar seu email, receberá uma mensagem de confirmação

Nome da empresa:
Cargo/papel na empresa:
Tamanho da empresa:
País:
Estado:
Você vai receber um email para validação do novo endereço. Esta janela pop-up fechará em instantes.