Colagem 01 – C# Collections

Quer aprender definitivamente como funcionam as coleções em C#? IEnumerable, ICollection, List<string>().Count, etc…

Essa é a parte da documentação da microsoft que lhe interessa:

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/collections

Esse artigo do Shakeel Iabal é muito mais interessante pra entender melhor.

https://www.codeproject.com/Articles/31640/Basics-of-NET-Collections-in-C

Pra memorizar, seria interessante esse desenho ficar gravado em sua mente:

Class Giagram

E por fim, se você tiver dificuldade com o inglês (como eu), tem esse artigo em português do Jhonathan Marolo:

https://codigosimples.net/2014/04/10/quando-usar-ienumerable-icollection-ilist-e-list-em-asp-net-c

Pronto! É isso aí!

Uma dica do GIT que pode te salvar

E aí amigo(a) leitor, tudo bem?

Hoje estou “passando por aqui” só mesmo pra deixar uma dica rápida sobre GIT que pode te salvar, assim como me salvou.

Eu estou constantemente desenvolvendo e estudando sobre tecnologias emergentes, nesse caso usar as ferramentas mais atuais faz parte do meu dia a dia. Só que muitas vezes eu estou fazendo isso dentro de uma “caixa” que é o desenvolvimento nos ambientes corporativos.

O que quero dizer com isso?

Quero dizer que muitas vezes estamos dentro de uma rede corporativa, com firewall’s e proxy’s e uma série de outras restrições. E um dos problemas mais comuns que encontro, é a utilização de ferramentas como bower, npm, cordova, compose, gem, yeoman, e companhia.  O problema está em acessar os repositórios para instalação/atualização dos nossos componentes usando essas ferramentas.

Na verdade o acesso aos repositórios (GitHub na grande maioria) está livre na rede em que trabalhamos. Podemos notar isso quando acessamos a url do repositório pela web. O problema na verdade existe porque essas ferramentas tentam acessar os repositórios usando o protocolo GIT:// ao invés de HTTPS://,e esse protocolo está normalmente bloqueado nas redes corporativas, enquanto o HTTP:// e HTTPS :// são desbloqueados por padrão.

Em algumas ferramentas é possível até mudar o protocolo de acesso aos repositórios através de uma configuração nos arquivos da mesma, mas em muitos casos não é possível. Tente por exemplo clonar o projeto do “mono” e seguir as instruções para compilação; uma dessas instruções será [git submodule update --init --recursive] mas se você observar as definições dos módulos verá que as url’s apontam sempre pra GIT:// e não para HTTPS://); nesse caso então fica um pouco mais difícil de resolver o problema se o protocolo GIT:// está bloqueado.

Então a dica de hoje é…

Deixe as ferramentas como estão, e diga ao GIT pra usar o protocolo HTTPS:// toda vez que alguém pedir pra ele acessar com o protocolo GIT:// e pronto!

Legal e como fazemos isso?

Com a simples linha de comando abaixo:

git config --global url."https://".insteadOf git://

Isso fará com que o GIT use HTTPS:// toda vez que alguém tentar algo como “git clone git://seurepositorio/online.git” por exemplo.

 

Bom, é isso aí, espero que ajude você como me ajudou!

Remover acentos C#

Esta é uma dica rápida!

Procurando na internet sobre dicas de como remover acentuação de palavras (coisa comum no desenvolvimento brasileiro) em C#/.NET, encontrei coisas como:

Solução 1:

public static string RemoveAccents(this string text){   
    StringBuilder sbReturn = new StringBuilder();   
    var arrayText = text.Normalize(NormalizationForm.FormD).ToCharArray();
    foreach (char letter in arrayText){   
        if (CharUnicodeInfo.GetUnicodeCategory(letter) != UnicodeCategory.NonSpacingMark)
            sbReturn.Append(letter);   
    }   
    return sbReturn.ToString();   
} 

Solução 2:

public static string removerAcentos(string texto)
{
    string comAcentos = "ÄÅÁÂÀÃäáâàãÉÊËÈéêëèÍÎÏÌíîïìÖÓÔÒÕöóôòõÜÚÛüúûùÇç";
    string semAcentos = "AAAAAAaaaaaEEEEeeeeIIIIiiiiOOOOOoooooUUUuuuuCc";

    for (int i = 0; i < comAcentos.Length; i++)
    {
        texto = texto.Replace(comAcentos[i].ToString(), semAcentos[i].ToString());
    }
    return texto;
}

Se continuarmos teremos várias opções, e uma mais engenhosa do que a outra.

Mas… Você sabia que nós podemos simplesmente utilizar os recursos de codificação já disponíveis no .NET em nosso favor?

Pos é. então #FICAADICA:

string RemoveAcentos(string palavacomacentos)
{
    return Encoding.ASCII.GetString(
        Encoding.GetEncoding("Cyrillic").GetBytes(palavacomacentos)
    );
}

Até a próxima, e espero ter ajudado!