ASP .NET Core 2.1 - Razor Class Libraries (RCL) - I

 Neste artigo vou apresentar novo recurso Razor Class Library(RCL) da ASP .NET Core 2.1.

       

A ASP .NET Core 2.1 trouxe muitas novidades e dentre elas a Razor Class Library (RCL) que permite encapsular Razor Pages, Views, modelos de página, Views Components e modelos de dados. A RCL pode ser empacotada e reutilizada e, os seus aplicativos podem incluir a RCL e substituir as views e páginas que ele contém.

As RCLs facilitam o compartilhamento do código de aplicativos Web com elementos da interface do usuário.

Quando uma view, view parcial ou Razor Page é encontrada no aplicativo Web e na RCL, a marcação Razor (arquivo .cshtml) no aplicativo da web tem precedência.

Nota:  Esse recurso agora é usado no template dos projetos que inclui a autenticação.(Identity)

Podemos criar RCLs usando o template disponibilizado no VS 2017 ou criar um projeto usando a CLI e comando "dotnet new razorclasslib"

Para entender como a RCL funciona e como podemos usá-la nada melhor que um exemplo prático usando o VS 2017.

Recursos Usados:

Criando um projeto no VS 2017

Abrindo o VS 2017 e criando um novo projeto teremos as seguinte operações :

  • Create New Project;
  • Visual C# -> Web -> ASP .NET Core Web Application;
  • Informe o nome AspnRCL_Demo

   

  • Selecione .NET CoreASP .NET Core 2.1;
  • Selecione o template Razor Class Library e clique em OK;

Ao clicar no botão OK  teremos um projeto criado com a estrutura de arquivos mostrada na figura abaixo:

Observe na figura do projeto criado que temos a pasta Areas que contém uma pasta MyFeature que traz dentro da pasta Page uma Razor Page: Page1.

Vamos alterar o nome de MyFeature para Relogio e de Page1.cshtml e Page1.cshtml.cs para Pagina1.cshtml e Pagina1.cshtml.cs conforme figura baixo:

A seguir vamos definir o código abaixo no arquivo Pagina1.cshtml.cs :

A seguir vamos incluir o código a seguir no arquivo Pagina1.cshtml:

Observe que no código acima estamos definindo um layout a ser consumido pela aplicação.

O arquivo de projeto do projeto AspnRCL_Demo :

Pronto nossa biblioteca Razor Class Library esta pronta para ser consumida.

Incluindo um projeto ASP .NET Core MVC

Vamos incluir um projeto ASP .NET Core MVC chamado ConsomeRCL.

No menu File clique em Add -> New Project e selecione o template Web -> ASP .NET Core Web Application;

A seguir selecione template Web Application(Model-View-Controller) e clique em OK;

Teremos assim uma solução com dois projetos:

Para consumir a RCL criada vamos incluir uma referência no projeto ASP .NET MVC Core ao projeto RCL.

Podemos fazer isso de duas maneiras :

  • Via Nuget
  • Via arquivo .csproj (add reference)

Vamos usar a segunda opção.

Clique com o botão direito do mouse sobre o projeto ConsoleRCL e a seguir clique em Add -> Reference e marque o projeto AspnRCL_Demo:

Agora executando a aplicação e navegando para :  Relogio/Pagina1

Veremos a nossa Razor Class Library em ação exibindo o conteúdo de Pagina1 conforme definido na aplicação com a aplicação do leiaute.

Na próxima parte do artigo veremos como compartilhar elementos da UI com múltiplos projetos e como sobrescrever páginas razor via RCL.

"E também todos os que piamente querem viver em Cristo Jesus padecerão perseguições.
Mas os homens maus e enganadores irão de mal para pior, enganando e sendo enganados."
2 Timóteo 3:12,13

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 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti