{tecnologia, conceitos, negócios, idéias, práticas, .NET, ruby, osx, ios e algo mais}
09/10/2010
Uma das coisas que me fascinaram logo no VB6 foi o Immediate. Foi bem legal descobrir que poderia executar alguns comandos, criar e inspecionar valores, executar operações, etc, em uma janela de comando.No .NET isso continuou, e temos o Immediate Windows no Visual Studio. Uma das coisas que mais me frustraram foi a incapacidade de utilizar o Immediate sem estar em debug de uma aplicação(acho que hoje isso já é possível). Ainda assim o Immediate possui algumas limitações, não avalia query expression por exemplo:
var pares = from num in new[]{
,2,3,4,5}
where num%2==0 select num;
Isso não é possível.O Projeto Mono tornou possível a realização dessa tarefa com um console para a execução de comandos C# sem a necessidade de uma aplicação estar em debug, e sem a necessidade do Visual Studio estar aberto: agora temos o CSharpREPL.REPL é algo muito comum em linguagens dinâmicas. REPL significa: Read-Eval-Print-Loop.É um ambiente onde podemos executar nossos códigos, sem compilação, e sem complicação. Temos um feedback muito rápido sobre alguma operação que queremos executar em nosso código.
Para utilizarmos o CSharpREPL precisamos instalar o Mono. Faça o download do Mono aqui.Selecione a plataforma Windows e a opção "Mono for Windows, Gtk#, and XSP".Após o download o setup é ao melhor estilo Windows: NNF.
Execute então o console do Mono:
Digite então "csharp", e o REPL será aberto:
Agora podemos executar comando C# diretamente no console.Executando Linq no REPL do C#:
Executando operações com System.IO no REPL C#:
É isso galera. O projeto Mono possui coisas bastante interessante e tem gente muito boa trabalhando nele. Vale muito a pena conferir como ele pode nos ajudar, ainda que trabalhemos com .NET no Windows e utilizando o Visual Studio.Espero que o REPL ajude vocês assim como tem ajudado uma série de outras pessoas.
Abraços, e não deixem de conferir o site do Projeto Mono que lançou sua versão 2.8 esta semana.Vinicius Quaiato.