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

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

Conteúdo educacional

BT