Neste artigo, vou comentar sobre o Roslyn, o novo compilador da plataforma .NET e sua utilização em projetos web criados no .NET 4.5.
A compilação Roslyn agora é padrão a partir da versão 4.5 da plataforma .NET, e isso significa que se você criar qualquer aplicação web, Web Forms ou MVC, você terá o compilador Roslyn pré-instalado em seu projeto na pasta bin dentro da pasta Roslyn:
Porque usar a compilação Roslyn ?
Ao usar a compilação Roslyn, você tem acesso a muitos recursos durante o desenvolvimento do seu aplicativo e também durante a implantação no servidor.
Apenas para citar algumas das vantagens:
- Durante o desenvolvimento da aplicação
Antes do Roslyn, quando você fazia qualquer alteração no seu código (C#. VB .NET), era preciso realizar um build para ver o resultado no navegador. Com o Rosyln isso não é mais necessário.
- Durante a implantação no servidor
Ao desenvolver uma aplicação Web, escrevemos código C# e HTML mesclados nas páginas ASPX ou nas views MVC e isso requer algum tipo de compilação para exibir o resultado ao usuário, afetando o tempo de carregamento da página. Dessa forma, usando o Roslyn, essa compilação não será necessária e o tempo de carga da página vai melhorar.
Assim, só por esses dois benefícios já valeria a pena usar o Roslyn. Existem mais recursos que o Roslyn possui e eu não citei aqui.
O problema do Roslyn em hospedagem compartilhada
Se você está tentando publicar sua aplicação com o Roslyn em hospedagem compartilhada, você pode ter problemas.
Quando vamos fazer a implantação de uma aplicação no servidor, ela é executada no modo Full Trust (confiança total), e, empresas de hospedagem compartilhadas não permitem que aplicativos executem no modo Full Trust. Em geral, elas substituem o Full Trust por Medium Trust devido a restrições de segurança, visto que elas hospedam sites de diversos clientes e, assim, evitam que uma aplicação web de um cliente afete a aplicação de outro cliente.
A compilação Roslyn só vai funcionar em modo Full Trust e, dessa forma, em ambientes compartilhados, você terá problemas se a sua hospedagem não permitir esse modo.
Se a hospedagem compartilhada não der suporte ao modo Full Trust, você não poderá implantar a sua aplicação usando o Roslyn.
O que fazer agora?
Como implantar a sua aplicação web sem o Roslyn em servidores compartilhados?
Felizmente você pode implantar a sua aplicação sem o Roslyn e não precisa fazer nenhuma mudança no código.
Abra a janela do Gerenciador de pacotes NuGet e desinstale os pacotes:
- “Microsoft.CodeDom.Providers.DotNetCompilerPlatform”
- “Microsoft.Net.Compilers”
Esta desinstalação também vai remover a configuração CodeDom do arquivo web.config e isso vai resolver o problema.
E estamos conversados!