Linux / PHP / Java / Designer

As melhores dicas estão aqui.

22 de setembro de 2016
por Heitor Herzog
0 comentários

Otimização – Uma Ferramenta Chamada Vacuum

O Vacuum é um utilitário manutenção do Banco de Dados.  Vacuum existe devido ao controle exclusivo de transação que o postgreSQL possui: o MVCC. As duas principais operações realizadas por essa ferramenta são:

  1. Recuperar espaço em disco devido a registros atualizados ou deletados;
  2. Atualizar as estatísticas utilizadas pelo otimizador para determinar o modo mais eficiente de executar uma consulta no PostgreSQL.

Continue Lendo →

13 de setembro de 2016
por Heitor Herzog
0 comentários

[C#] object , var e dynamic qual a diferença ?

- object e dynamic : são tipos;
- var :  é uma forma de inferir um tipo e somente variáveis podem ser declaradas;
-  object e var :  toda a informação do tipo/variável é conhecida em tempo de compilação;
- dynamic : a informação é conhecida somente em tempo de execução e pode ser aplicado a propriedades, retorno de métodos, parâmetros, objetos enfim a TUDO.
- object e var : são palavras reservadas enquanto que dynamic não é. Dessa forma se você definir uma variável chamada dynamic ela será compilada no C# 4.0.

Continue Lendo →

5 de setembro de 2016
por Heitor Herzog
0 comentários

[C#]Como criar um objeto dinâmico

As vezes as linguagens muito tipizadas acabam nos atrapalhando mais do que ajudando. Criando cada propriedade com seu tipo especifico dentro de uma classe por exemplo, quando seria mais fácil simplesmente fazer como se faz com javascript : objeto.novavariavel = "ola" 

Felizmente C# possuiu um tipo que nos permite criar objetos de forma dinâmica quando convêm .

Só inicializar o objeto com a classe do tipo ExpandoObject e dizer que a variável é do tipo dynamic e pronto.

Veja no Exemplo:

dynamic MyDynamic = new System.Dynamic.ExpandoObject();
MyDynamic.A = "A";
MyDynamic.B = "B";
MyDynamic.C = "C";
MyDynamic.Number = 12;
MyDynamic.MyMethod = new Func<int>(() => 
{ 
    return 55; 
});
Console.WriteLine(MyDynamic.MyMethod());

2 de setembro de 2016
por Heitor Herzog
0 comentários

[C#]Como passar tipos anônimos como parâmetros.

Considerando o seguinte exemplo :

var query = from employee in employees select new 
{ Name = employee.Name, Id = employee.Id };

A partir da lista de employee selecionamos 2 campos e damos o nome de name e id.
Isso retorna uma lista com somente com esse 2 valores, ao invez de todos os campos
da lista de employee.

Mas como passamos a variável query para outro método se não sabemos o tipo?

Muito simples, somente temos que dizer que o tipo do campo é dynamic,
como no exemplo a seguir :

public void LogEmployees (IEnumerable<dynamic> list)
{
    foreach (dynamic item in list)
    {
        string name = item.Name;
        int id = item.Id;
    }
}

-Dynamic : a informação é conhecida somente em tempo de execução e pode ser
aplicado a propriedades, retorno de métodos, parâmetros, objetos enfim a TUDO.