ASP .NET - O compilador Roslyn (csc.exe  e vbc.exe ) e a hospedagem compartilhada


 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 somente esses dois benefícios já valeria a pena usar o Roslyn. Existem mais recursos que o Roslyn possui e eu não citei aqui. Para detalhes veja as referências.

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 somente 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 :

Esta desinstalação também vai remover a configuração CodeDom do arquivo web.config e isso vai resolver o problema.

E estamos conversados...

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

Referências:


José Carlos Macoratti