Microsoft® “Roslyn” e um futuro muito interessante

Microsoft® “Roslyn” e um futuro muito interessante

Para quem ainda não conhece, Microsoft “Roslyn” demonstra a próxima geração de modelos de objeto de linguagem, para geração de código, análise e refactoring, e terá suporte para scripting e interatividade com C# e VB.NET.

A proposta inicial é bem interessante, segue o disclaimer em inglês:

Traditionally, compilers are black boxes – source code goes in one end and object files or assemblies come out the other end. The Roslyn project changes that model by opening up the Visual Basic and C# compilers as APIs.  These APIs allow tools and end-users to share in the wealth of information the compilers have about code. The Roslyn CTP previews the next generation of language object models for code generation, analysis, and refactoring, and the upcoming support for scripting and interactive use of VB and C#.

A proposta do projeto é extremamente interessante e podemos em um futuro não muito distante fazer muito mais, e prover significativas soluções para aplicações ou mesmo para ambientes corporativos.

A abordagem trazida pelo Roslyn faz com que possamos criar padrões de arquitetura em níveis muito mais baixos, abordando a construção de novas sintaxes em baixo nível, lado-a-lado com o compilador. As possibilidades são infinitas. Enfim, é um assunto extremamente excitante, pois podemos pensar em metaprogramação de uma forma que nunca vislumbramos até então.

Imagine que você, possa escrever validações de arquitetura, que interagem diretamente com o compilador, ou ainda, que você escreva sentenças como o await/async que proporcionam geração de código automática durante o build. Estamos cada vez mais próximos de poder realizar essas tarefas de forma realmente simples!!

Abaixo temos uma lista de links para o Roslyn e seus diversos itens de documentação. Foram tirados da página.

Lista de Links

Whitepaper: Roslyn Project Overview

Get an overview of how the Roslyn project exposes the Visual Basic and C# compilers’ code analysis.

Roslyn Project Overview Download

Download the Roslyn Project Overview.

Walkthrough: Getting Started with Syntax Analysis – C#

Follow step-by-step instructions for navigating and analyzing syntax trees in both Visual Basic and C#.

Walkthrough: Getting Started with Semantic Analysis – C#

Follow step-by-step instructions to do semantic analysis in both Visual Basic and C#.

Walkthrough: Getting Started with Syntax Transformations – C#

Follow step-by-step instructions to transform syntax trees using both syntax and semantic analysis in Visual Basic and C#.

Walkthrough: Getting Started with Workspaces – C#

Follow step-by-step instructions for using Roslyn with Visual Studio Solutions, Projects, and Documents.

Walkthrough: How To Write a Quick Fix – C#

Follow step-by-step instructions for creating a custom code issue that is surfaced through the IDE and an automatic fix to correct it in both Visual Basic and C#.

Walkthrough: Executing Code in the Interactive Window – C#

Follow step-by-step instructions for getting started using the Interactive window to explore code snippets and their behaviors. Only the C# Interactive window is available at this time.

Walkthrough: Seeding the Interactive Window from a WPF Project – C#

Follow step-by-step instructions for using a WPF project to load context into the Interactive window.

Walkthrough: Introduction to Scripting – C#

Follow step-by-step introductions to the basics of the Scripting APIs and using the host execution engine in your .NET applications.

Walkthrough: Scripting a Paint-like Application – C#

Follow step-by-step instructions for enabling scriping in a fictitious Paint-like application and executing scripts in a custom execution context.

Scripting

Uma das capacidades que acho incrível nesse projeto é Scripting. Sempre gostei da idéia de usar scripting em aplicações comerciais, no entanto as soluções nunca me pareceram efetivamente interessantes, pelo menos não tão interessantes como o Roslyn se tem mostrado.

Abaixo temos alguns links para especificações de Scripting do Roslyn:

Espero que tenham gostado!

[deprecated]Oragon Architecture disponível no NuGet

[deprecated]Oragon Architecture disponível no NuGet

ReferenciasOragon

[deprecated]

Bom,

admito que já faz algum tempo que tenho pensado em migrar as referências do Oragon Architecture para o NuGet. A direita está a lista completa de referências, armazenadas na pasta [References], uma prática bem antiga, mas extremamente eficiente.

Por diversos motivos, incluindo retrocompatibilidade, venho sofrendo com a vontade e concomitantemente com a preguiça de realizar a migração. O problema é que tenho de manter a pasta [References] para projetos antigos, e coordenar as evoluções usando sempre 2 sets de configuração. Mas, já que estou tendo trabalho para migrar o projeto de framework (do 4.0 para o 4.5.1) então essa mudança se justificou. Resolvi arregaçar as mangas nesse carnaval e realizar as migrações necessárias para usar o NuGet como repositório de referências, e aproveitei que tive esse imenso trabalho, para publicar o projeto no NuGet também! E aqui estamos, temos uma RC2 publicada no endereço https://www.nuget.org/packages/Oragon.Architecture/.

Antes de mais nada vale lembrar, que agora temos:

  • Build para o framework 4.0 (usando referências em [References])
  • Build para o framework 4.5.1 (usando referências do NuGet)

Nuget

Espero que gostem!