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.
Roslyn Rocks
by
Cleydson Silva de Andrade
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.
Conteúdo educacional
Lean na Globo.com
Bernardo Heynemann 24 Mai, 2013
Mobilidade: Frameworks, SOs e o Mercado
Ricardo Ogliari 23 Mai, 2013
Caminhos de uma estratégia mobile
Sérgio Lopes 23 Mai, 2013
Complexidade organizacional no Século 21
Alexandre Magno 16 Mai, 2013

Olá visitante
Você precisa cadastrar-se no InfoQ Brasil ou Login para enviar comentários. Há muitas vantagens em se cadastrar.Obtenha o máximo da experiência do InfoQ Brasil.
Dê sua opinião