<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gustavo Bellini Bigardi</title>
    <description>The latest articles on DEV Community by Gustavo Bellini Bigardi (@gustavobigardi).</description>
    <link>https://dev.to/gustavobigardi</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F138482%2Febc723d7-a233-4f80-819a-de9bdd66bae7.jpg</url>
      <title>DEV Community: Gustavo Bellini Bigardi</title>
      <link>https://dev.to/gustavobigardi</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gustavobigardi"/>
    <language>en</language>
    <item>
      <title>ASP.NET Core 3.0 Preview 8 - Novidades do Blazor - Estrutura e código</title>
      <dc:creator>Gustavo Bellini Bigardi</dc:creator>
      <pubDate>Thu, 22 Aug 2019 20:11:38 +0000</pubDate>
      <link>https://dev.to/gustavobigardi/asp-net-core-3-0-preview-8-novidades-do-blazor-estrutura-e-codigo-ko7</link>
      <guid>https://dev.to/gustavobigardi/asp-net-core-3-0-preview-8-novidades-do-blazor-estrutura-e-codigo-ko7</guid>
      <description>&lt;p&gt;Salve galera!&lt;/p&gt;

&lt;p&gt;Continuando com as novidades do Blazor no relase do .NET Core 3.0 Preview 8, vamos as alterações de código!&lt;/p&gt;

&lt;h1&gt;
  
  
  Case-sensitive component binding
&lt;/h1&gt;

&lt;p&gt;A partir desta versão, os componentes criados através de arquivos com a extensão .razor são sensíveis a caixa alta / baixa.&lt;/p&gt;

&lt;p&gt;Por que isso? Antes, se fosse necessário criar um componente Button, por exemplo, com funcionalidades extras, estilizado como um botão primário, teríamos conflito com o elemento &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; do HTML. Agora que foi habilitado o "case-sensitive" para componentes, não temos mais esse problema.&lt;/p&gt;

&lt;p&gt;Abaixo o exemplo que foi utilizado no Blog do ASP.NET Core, onde usamos uma tag &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt; dentro dele e algumas funcionalidades extras, como incrementar um contador.&lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;Agora, um teste para você fazer… Tente renomear seu componente de &lt;code&gt;Buttton&lt;/code&gt; para &lt;code&gt;button&lt;/code&gt;, ajuste o nome no arquivo &lt;code&gt;Count.razor&lt;/code&gt; e tente compilar seu projeto. Você terá um erro como o da imagem a seguir, informando que seus componente não pode ser todo em letras minúsculas devido a conflito com o HTML.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzgr3ft6ppi845gmwe92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyzgr3ft6ppi845gmwe92.png" alt="VS 2019 - Error - Button Case Sensitive" width="700" height="147"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  NavLink atualizado para suportar atributos extras
&lt;/h1&gt;

&lt;p&gt;O component NavLink, parte do Blazor, agora suporta parâmetros adicionais para serem renderizados com a tag de âncora &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt;. Antes tínhamos suporte para os atributos &lt;code&gt;href&lt;/code&gt; e &lt;code&gt;class&lt;/code&gt;, mas agora podemos especificar qualquer um. Veja os exemplos onde podemos adicionar o target:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;NavLink href="my-page" target="_blank"&amp;gt;My page&amp;lt;/NavLink&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;E isso irá produzir:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;a href="my-page" target="_blank" rel="noopener noreferrer"&amp;gt;My Page&amp;lt;/a&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Data binding considerando a cultura atual
&lt;/h1&gt;

&lt;p&gt;O suporte a data binding (&lt;code&gt;@bind&lt;/code&gt;) para o elemento &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; agora suporta cultura. Os valores podem ser formatados e "parseados" de acordo com a cultura atual, identificada pela propriedade &lt;code&gt;System.Globalization.CultureInfo.CurrentCulture&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Isso quer dizer que, o data binding do elemento vai formatar e converter de forma correta quando a cultura do usuário for a mesma que a atual para o ambiente de runtime, onde podemos configurar utilizando um Middleware para localization no ASP.NET Core. Também podemos especificar a cultura a ser utilizada em um data binding, com o parâmetro &lt;a class="mentioned-user" href="https://dev.to/bind"&gt;@bind&lt;/a&gt;:culture, onde o valor do parâmetro é uma instância da classe CultureInfo.&lt;/p&gt;

&lt;p&gt;Para fazer um binding ignorando a cultura (InvariantCulture), podemos fazer:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;&amp;lt;input @bind="amount" @bind:culture="CultureInfo.InvariantCulture" /&amp;gt;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Os elementos &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; do tipo &lt;code&gt;number&lt;/code&gt; e &lt;code&gt;date&lt;/code&gt; irão utilizar por padrão a cultura invariante (&lt;code&gt;CultureInfo.InvarianteCulture&lt;/code&gt;) e regras de formatação de acordo com o browser. Esses elementos não podem conter texto digitado sem formatação e a aparência deles é controlada pelo browser.&lt;/p&gt;

&lt;p&gt;Outros tipos de campo com regras específicas de formatação são datetime-local, month e week. Esses campos ainda não suportados pelo Blazor, dado que também não suportados pela maioria dos browsers.&lt;/p&gt;

&lt;p&gt;Outro ponto importante é que o data binding agora também suporta os tipos DateTimeOffset, DateTime? e DateTimeOffset? (&lt;code&gt;?&lt;/code&gt;, tipos nuláveis suportados).&lt;/p&gt;

&lt;h1&gt;
  
  
  Suporte do Razor Pages a diretiva &lt;code&gt;@attribute&lt;/code&gt;
&lt;/h1&gt;

&lt;p&gt;O Razor Pages (consequentemente Blazor também) agora suporta a diretiva @attribute, para adicionar atributos a classe gerada para a página.&lt;/p&gt;

&lt;p&gt;Podemos, por exemplo, especificar que a página precisa ter autorização validada, como a seguir:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@page
@attribute [Microsoft.AspNetCore.Authorization.Authorize]

&amp;lt;h1&amp;gt;Authorized users only!&amp;lt;h1&amp;gt;

&amp;lt;p&amp;gt;Hello @User.Identity.Name. You are authorized!&amp;lt;/p&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Concluindo
&lt;/h1&gt;

&lt;p&gt;Estas foram as últimas novidades deste release, diretamente relacioandas ao Blazor.&lt;/p&gt;

&lt;p&gt;Temos algumas novidades extras, mais gerais do ASP.NET Core que do Blazor, que serão apresentadas na terceira parte desta série.&lt;/p&gt;

&lt;h1&gt;
  
  
  Referências
&lt;/h1&gt;

&lt;p&gt;Este post tem como referência / faz tradução ao post original sobre o release do .NET Core 3.0 Preview 8, disponível em:&lt;br&gt;
&lt;a href="https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0-preview-8/" rel="noopener noreferrer"&gt;https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0-preview-8/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blazor</category>
      <category>dotnet</category>
      <category>webassembly</category>
      <category>aspnet</category>
    </item>
    <item>
      <title>ASP.NET Core 3.0 Preview 8 - Novidades do Blazor - Novos Templates</title>
      <dc:creator>Gustavo Bellini Bigardi</dc:creator>
      <pubDate>Mon, 19 Aug 2019 18:57:05 +0000</pubDate>
      <link>https://dev.to/gustavobigardi/asp-net-core-3-0-preview-8-novidades-do-blazor-novos-templates-28ll</link>
      <guid>https://dev.to/gustavobigardi/asp-net-core-3-0-preview-8-novidades-do-blazor-novos-templates-28ll</guid>
      <description>&lt;p&gt;E aí galera, tudo certo?&lt;/p&gt;

&lt;p&gt;Bom, esse é um de meus primeiros posts aqui na plataforma DEV.TO, que tem me atraído bastante devido a comunidade de desenvolvedores e demais profissionais de TI que postam conteúdo por aqui.&lt;/p&gt;

&lt;p&gt;Na semana passada (13/08/2019) tivemos uma nova versão do .NET Core 3.0 liberada, a versão Preview 8. Junto com ela, tivemos novas versões do EF Core e ASP.NET Core e, consequentemente, do Blazor.&lt;/p&gt;

&lt;p&gt;Irei postar as novidades em artigos separados, assim não fica muito extenso para leitura e cada um pode focar onde ainda não se atualizou ou tem mais interesse, ok? Vamos lá!&lt;/p&gt;

&lt;h1&gt;
  
  
  Novos Templates do Blazor
&lt;/h1&gt;

&lt;p&gt;Os templates foram atualizados e organizados, sendo que agora temos dois templates, onde demais "templates" foram colocados como opções.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blazor Server App&lt;/strong&gt;: Este é o antigo Blazor Server-Side, onde podemos criar um projeto com o Blazor onde a renderização das views ocorre no servidor, com o uso do SignalR para comunicação com o browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blazor WebAssembly App&lt;/strong&gt;: Este é o antigo Blazor Client-Side, onde podemos criar um projeto Blazor onde a renderização ocorre no lado do cliente (browser), gerando um pacote em WebAssembly que irá executar nossa aplicação ASP.NET Core diretamente no browser. Este template pode ser publicado de forma estática ou mesmo utilizando o ASP.NET Core (Kestrel) como servidor dos assets estáticos que o Blazor gera.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para visualizar estes novos templates, além do .NET Core Preview 8 instalado, precisamos atualizar o Visual Studio 2019 Preview para a versão 16.3 Preview 2 ou superior. Ao acessar o menu para criar um novo projeto e filtrar por "Blazor", temos os templates descritos conforme a imagem a seguir:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwvbqnqpzf16ztx0mdh9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frwvbqnqpzf16ztx0mdh9.png" alt="New Project - Blazor" width="800" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para quem utiliza o Visual Studio Code com o CLI do .NET Core, pode instalar ou atualizar os templates do Blazor com o comando a seguir, lembrando que é preciso atualizar o SDK do .NET Core 3.0 para preview 8 antes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dotnet new &lt;span class="nt"&gt;-i&lt;/span&gt; Microsoft.AspNetCore.Blazor.Templates::3.0.0-preview8.19405.7
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os templates para criarmos projetos Blazor App e Blazor WebAssembly App, com o CLI, são &lt;code&gt;blazorserver&lt;/code&gt; e &lt;code&gt;blazorwasm&lt;/code&gt;, respectivamente.&lt;/p&gt;

&lt;p&gt;Para criar um projeto do tipo &lt;strong&gt;Blazor WebAssembly App&lt;/strong&gt; e utilizar o ASP.NET Core como host dos arquivos estáticos, precisamos marcar na tela de criação do projeto a opção &lt;strong&gt;ASP.NET Core Hosted&lt;/strong&gt;, ou para que estiver utilizando o CLI, adicionar o argumento &lt;code&gt;--hosted&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dotnet new blazorwasm &lt;span class="nt"&gt;--hosted&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Novo Template para o componentes Blazor
&lt;/h1&gt;

&lt;p&gt;O novo template Razor Class Lib agora é o padrão para criação de componentes para Razor Pages ou Blazor, sendo que o antigo template Blazor Class Lib foi removido. &lt;/p&gt;

&lt;p&gt;Outro detalhe é que o template é baseado no .NET Standard, permitindo sua utilização tanto com a versão Server como WebAssembly App do Blazor. Caso você precise componentizar views inteiras assim como assets e usar como target o .NET Core, é necessário informar isso na opção "Support Pages and Views" na tela de criação do projeto, ou para o CLI do .NET Core com o argumento &lt;code&gt;--support-pages-and-views&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h80fv3iinrkyolnpjgq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h80fv3iinrkyolnpjgq.png" alt="New Project - Razor Class Lib - Support Views and Pages" width="800" height="555"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para criar um novo Razor Class Lib via .NET Core CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dotnet new razorclasslib &lt;span class="nt"&gt;--support-pages-and-views&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  Demais templates
&lt;/h1&gt;

&lt;p&gt;Outros templates a nível de projeto também não mais aparecem "duplicados" e foram organizados, aparecendo apenas no menu "Create a new project" do Visual Studio 2019 Preview ou do CLI do .NET Core.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Worker Service&lt;/li&gt;
&lt;li&gt;gRPC Service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O segundo template que listo acima será detalhado em um segundo post, pois agora temos um suporte melhor do Visual Studio e CLI do .NET Core para trabalharmos com serviços gRPC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adicional
&lt;/h2&gt;

&lt;p&gt;O template de uma aplicação SPA Angular agora foi atualizado para utilizar o Angular 8. Como o foco da série é sobre Blazor, irei abordar este assunto em outro post fora da série, ok?&lt;/p&gt;

&lt;h1&gt;
  
  
  Treinamento com Desconto
&lt;/h1&gt;

&lt;p&gt;Temos um código de 50% de desconto para o treinamento presencial &lt;strong&gt;Azure na Prática&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffb173bfhzvi9fmbh7se1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffb173bfhzvi9fmbh7se1.png" alt="Logo - Azure na Prática" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O Azure na Prática surgiu de necessidades observadas pelos palestrantes e Microsoft MVPs Ericson da Fonseca, Milton Camara Gomes e Renato Groffe ao longo de diversos eventos em que os mesmos participaram nos últimos anos.&lt;/p&gt;

&lt;p&gt;Eles constataram nestes encontros técnicos dúvidas recorrentes sobre qual a melhor maneira de uma empresa migrar para a nuvem, quais serviços utilizar, além de como conduzir este processo de mudança sem custos abusivos e maximizando a produtividade das equipes de TI.&lt;/p&gt;

&lt;p&gt;Diante de tudo isso, surgiu a ideia deles (Ericson, Milton e Renato) compartilharem suas experiências através de um curso totalmente diferente dos hoje existentes no mercado. Um treinamento com foco totalmente prático e enfatizando os principais recursos do Azure, tornando o aprendizado muito mais fácil e dinâmico.&lt;/p&gt;

&lt;p&gt;Lembrando que o treinamento será inteiramente prático, ou seja, cada participante deverá levar o seu notebook para operar a plataforma.&lt;/p&gt;

&lt;p&gt;Para se inscrever com 50% de desconto, basta utilizar o código &lt;code&gt;jundevelopers&lt;/code&gt; ou acessar o link a seguir que já direciona para o Sympla com o código de desconto aplicado.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.sympla.com.br/azure-na-pratica__605145?d=jundevelopers" rel="noopener noreferrer"&gt;https://www.sympla.com.br/azure-na-pratica__605145?d=jundevelopers&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Concluindo
&lt;/h1&gt;

&lt;p&gt;Este é apenas um pedaço das novidades que temos para o Blazor no Preview 8 do .NET Core 3.0. Estou quebrando em partes para detalhar um pouco melhor cada uma das novidades e não deixar os artigos muito extensos e postar com maior frequência. Acompanhe a série para mais novidades, sendo que teremos novos posts ainda esta semana.&lt;/p&gt;

&lt;h1&gt;
  
  
  Referências
&lt;/h1&gt;

&lt;p&gt;Este post tem como referência / faz tradução ao post original sobre o release do .NET Core 3.0 Preview 8, disponível em:&lt;br&gt;
&lt;a href="https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0-preview-8/" rel="noopener noreferrer"&gt;https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0-preview-8/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blazor</category>
      <category>dotnet</category>
      <category>aspnet</category>
      <category>webassembly</category>
    </item>
  </channel>
</rss>
