Você escreveu seu código e na hora de testar você move, lê informações que fazem parte do arquivo ou cria um arquivo e depois que o processamento terminou você quer apagar o arquivo e se depara com o erro a seguir.

Access to the path ‘C:\Program Files\ReportingServices.Extension.dll’ is denied.

Então a primeira coisa que pensamos é: faltou usar using em algum lugar para que o Dispose pattern faça o seu trabalho. E aí você percebe que não é isso e abre-se um buraco no chão bem na sua frente. …


Recentemente nos deparamos com a situação de high swap space usage esta situação foi evidenciada pelo alerta configurado pelo DevOps.

Isto significa que, em algum momento a aplicação está descarregando algum objeto que está na stack (não na HEAP) para o disco, liberando memória. Porém este objeto pode ser utilizado em outras partes da aplicação e quando requisitado ele volta para a memória, esta troca é chamada de swap. Este processo com certeza deixa a aplicação mais lenta.

List < T >

As listas são grandes indicativos de que estão causando situações como esta. Existem formas de utilizar as listas genéricas que minimizam o…


Dando continuidade ao post ASP.NET Core 3.1 — PKCE Component, para não ficar tão extenso, neste vou explicar como fiz para publicar o componente no NuGet de forma automática (DevOps) usando as Actions do GitHub.

Publish NuGet Package Steps

Deixei por último a parte mais interessante, que é como preparar todo o seu ambiente para publicar automaticamente um pacote no NuGet usando as Actions (DevOps) do GitHub — it’s free!

Step 1

Utilizei a documentação da Microsoft, no tópico Criar chaves de API para criar uma chave que permite que outro sistema possa publicar no NuGet atrelado ao meu usuário, então você vai precisar ter uma…


No post ASP.NET Core 3.1 — IdentityServer4 — Client-Security-PKCE (Parte 11) eu falei sobre o PKCE (Proof Key for Code Exchange).

Eu percebi também que a implementação dele não é algo trivial, então decidi fazer um componente para apenas chamar o método de extensão UsePkce() através das options do serviço para o protocolo do OpenID Connect. Este componente segue os passos do tópico do protocolo da RFC 7636.

NuGet

O componente criado foi publicado no NuGet.

Para instalá-lo, basta utilizar o comando a seguir, ou pelo Visual Studio — mais fácil — basta adicionar a referência através do gerenciador de pacotes.


Transport Layer Security (TLS) já é amplamente utilizada como uma opção mais avançada ao Secure Sockets Layer (SSL), por fim a função de ambas é a mesma e a troca do nome se deve a uma questão “comercial” — digamos assim. O HTTPS é uma implementação do TLS quando falamos em segurança de comunicação criptografada entre aplicações web e servidores. O servidor deve ter um certificado TLS instalado, comumente chamado de SSL certificate.

Versions

Temos 3 (três) versões do SSL:

  • SSL 1.0 — não entrou em operação por a questões de segurança não resolvidas;
  • SSL 2.0 — se tornou deprecated em…


Em Maio de 2019 os responsáveis pelo desenvolvimento do navegador Chrome, anunciaram que fariam algumas mudanças relacionadas a segurança e uma melhor experiência do usuário.

Problem

No dia 4 de fevereiro de 2020, a atualização do Chrome passou a não compartilhar mais os cookies entre aplições third-party (cross-site). Isso significa que aplicações que possuem redirecionamentos entre si, mas entre diferentes sub-domínios ( a.domain.com e b.domain.com) não poderiam mais compartilhar os mesmos cookies por padrão e isso acabou gerando diversos problemas para as aplicações no mundo todo.

SameSite Attribute

A RFC6265bis introduziu o atributo SameSite que permite que o cookie funcione de duas maneiras…


No post Drapo Framework for ASP.NET Core — Initial eu comentei que algumas configurações do eu falaria mais adiante, portanto, aqui vou falar sobre como funciona a criação e execução de componentes feita pelo drapo.

Middleware Pipeline

No método ConfigureDrapo conforme exemplo a seguir, temos nas options o comando para indicar para o drapo qual o caminho onde os components irão ficar.

options.Config.LoadComponents(string.Format("{0}{1}components", env.WebRootPath, Path.AltDirectorySeparatorChar), "~/components");

Isto significa que na pasta wwwroot você vai ter uma pasta chamada components.

Create Component

Qual o real objetivo de ter um componente? É poder utilizá-lo em diversos pontos do sistema sem que haja necessidade de a…


No post Drapo Framework for ASP.NET Core — The Beginning eu falei sobre um novo framework para frontend, algo diferente de tudo que você já viu sem deixar de ser incrível.

Vou falar agora sobre a forma de funcionamento do template, pois como o drapo foi desenvolvido usando TypeScript usamos algumas libs e o gulp para facilitar o uso.

Pre-requisites

Você vai precisar do Node.js instalado, não esqueça de confirmar a criação da variável de ambiente para que o executável do npm possa ser executado de qualquer pasta.

TypeScript

Após o npm instalado, execute a linha abaixo, pode ser no powershell, isso…


Há tempos que a comunidade ASP.NET não tem um framework para frontend que esteja alinhado com a forma de desenvolvimento para ASP.NET Core. Atualmente podemos utilizar somente ou Razor Pages para as aplicações MVC (model view controller).

Já na parte de frontend quando falamos em frameworks podemos utilizar o Angular, Vue.js, React entre outros.

Drapo

Então, para sanar algumas necessidades, sem depender de plugins dos frameworks de frontend e até mesmo outros artifícios de terceiros, surgiu o Drapo. O nome Drapo é uma analogia/brincadeira ao esparadrapo (band aid), vai curar esta ferida aberta para quem trabalha com ASP.NET Core. …


Pessoal, bacana estar aqui novamente! Vamos falar de algo importante. No mundo do desenvolvimento de software tudo muda muito rápido e no IdentityServer4 não é diferente, há muitas atualizações.

Em alguns posts eu falei sobre a geração do arquivo tempkey.rsa, algumas mudanças aconteceram e alguns posts foram afetados, como:

  1. ASP.NET Core 3.1 — IdentityServer4 — In-memory (Parte 1);
  2. ASP.NET Core 3.1 — IdentityServer4 — Segurança (Parte 2);
  3. ASP.NET Core 3.1 — IdentityServer4 — Digital Certificate On Azure (Parte 12)

Mudança no método AddDeveloperSigningCredential

Nas versões mais atualizadas do pacote do IdentityServer4, o arquivo tempkey.rsa passou a se chamar tempkey.jwk, o conteúdo, objetivo entre outras…

Alex Tochetto

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store