segunda-feira, 30 de setembro de 2013

Criando controles dinâmicos ASP.NET com C#


Já esteve desenvolvendo sua aplicação e chegou em algum momento que não tinha idéia de quantos controles iria usar? E agora o que fazer? Que tal criar esses controles de forma dinâmica, em tempo de execução,  lembrando que não teremos que impotar namespaces ou algo do tipo apenas um mecanismo que lembre os controles criados de forma dinâmica, uma maneira de fazer é utilizando array que será o usado com exemplo.

domingo, 29 de setembro de 2013

Compreendendo a Sobrecarga de Membro

Como em qualquer linguagem moderna Orientada a Objeto o C# permite que um método seja sobrecarregado. Simplificando, quando você define um conjunto de membros com nomes idênticos, que diferem no número (ou tipo) de parâmetros, diz-se que o membro em questão está sobrecarregado, veja este exemplo:
            static int Add(int x, in y)
            {
                return x + y;
            }
            static double Add(double x, double y)
            {
                return x + y;
            }
            static long Add(long x, long y)
            {
                return x + y;
            }

Utilizando a sobrecarga conseguiremos permitir que o chamador chame um único método chamado Add(). O chamador pode simplesmente chamar Add() com os argumentos necessários e o compilador ficará feliz em concordar, já que o compilador é capaz de resolver a implementação correta para o chamado com os argumentos, veja
            // Chamando a versão int
            Console.WriteLine(Add(10, 10));

            // Chamando a versão long
            Console.WriteLine(Add(500000000000, 500000000000));

            // Chamando a versão double
            Console.WriteLine(Add(7,5, 9,5));
 Bons estudos.

sábado, 28 de setembro de 2013

sexta-feira, 27 de setembro de 2013

quinta-feira, 26 de setembro de 2013

quarta-feira, 25 de setembro de 2013

Criando e Exportando dados para Arquivo Texto TXT

Vejo que existe muitas duvidas de como exportar um grid, textbox ou outras informações para um arquivo texto, vou mostrar como utilizar o StreamWriter. Que pertence ao namespace System e a classe IO.

Primeiro passo: referenciar System.IO
Segue abaixo o exemplo de criação do TXT e a escrita:

terça-feira, 24 de setembro de 2013

segunda-feira, 23 de setembro de 2013

domingo, 22 de setembro de 2013

sábado, 21 de setembro de 2013

Compreendendo o Tipo Enum

Nós sabemos que o sistema de tipos .NET é composto por classes, estruturas, enumerações, interfaces e delegates. Vamos entender o papel da enumeração (Enum).

Ao construir um sistema, em geral é conveniente criar um conjunto de nomes simbólicos que são mapeados em valores numéricos conhecidos. Veja o exemplo, estamos desenvolvendo um sistema de folha de pagamentos, para referir o tipo de empregados utilizando constantes como (vice-presidente, gerente, fornecedor e reclamador).

O C# suporta a noção de enumerações personalizadas por este mesmo motivo. 

sexta-feira, 20 de setembro de 2013

quinta-feira, 19 de setembro de 2013

quarta-feira, 18 de setembro de 2013

terça-feira, 17 de setembro de 2013

Session Criando e Recuperando

No desenvolvimento Web, teremos pontos na programação com necessidades de enviar algumas informações entre as paginas, porém não estamos falando de apenas ID´s, e sim algum nome de usuário alguma informação que utilizará em algumas paginas, para isso podemos utilizar Session.
Para criar uma Session, veja o exemplo abaixo:

segunda-feira, 16 de setembro de 2013

MariaDB An enhanced, drop-in replacement for MySQL


MariaDB é um servidor de banco de dados que oferece a funcionalidade e substituição para o MySQL. MariaDB é construído por alguns dos autores originais do MySQL, com a ajuda da grande comunidade de desenvolvedores de software livre e software de código aberto. Além das funcionalidades básicas do MySQL, MariaDB oferece um rico conjunto de aprimoramentos de recursos, incluindo mecanismos de armazenamento alternativo, otimizações de servidores e patches.


domingo, 15 de setembro de 2013

sábado, 14 de setembro de 2013

sexta-feira, 13 de setembro de 2013

Parallel.For Loop com .NET 4.0 (Multiprocessador em Paralelo)

Você tem um sistema multiprocessador? Então, aperte (Ctrl+Shift+Esc) e abrirá o famoso Gerenciador de Tarefas do Windows, na aba Desempenho, verá as informações de sua memoria e dos seus núcleos caso tenha um multiprocessador. Você verá algo como mostrado abaixo:



Podemos ver que existe núcleos não totalmente utilizado para o melhor desempenho de seu software.
Para o loop

for (int i = 0; i < 100; i++)
{
        //Código independente, porém executa sequencialmente.
        a[i] = a[i]*a[i];
}
Este tipo de processador está praticamente sendo defult em novas maquinas. Para ter um programa atualizado e com melhor desempenho recomenda-se utilizar todos os processadores em paralelo.
Vou apresentar a TPL
A Task Parallel Libary (TPL) foi projetada para torna muito mais fácil a vida do desenvolvedor e conseguir a utilização de todos os processadores disponíveis no equipamento de forma automática. Usando esta biblioteca poderá utilizar os processadores de forma paralela. Geralmente isto resulta em um enorme ganho de desempenho.
TPL é um dos principais componentes da biblioteca Parallel FX, a próxima geração de suporte a concorrência de arquivos.
Como as iterações são independentes umas das outras, ou seja, as iterações subsequentes não leem atualizações de estado feitas pelas iterações anteriores, você pode usar TPL executar cada iteração em paralelo em núcleos disponíveis, como este:

Loop Parallel

Parallel.For(0, 100, i =>
                {
                        //Bloco onde deverá conter código independente
                        //Este código deverá ter um enorme tempo de execução
                        //Código de pequena complexidade pode resultar em mal desempenho
                        a[i] = a[i]*a[i];
                }
            );

Obs. Veja que o uso do CORE 1 e CORE 2 será altíssimo e o uso total da CPU será de 100%.
Bons estudos

quinta-feira, 12 de setembro de 2013

quarta-feira, 11 de setembro de 2013

terça-feira, 10 de setembro de 2013

Blocos Try, Catch e Finally em C#

Exceções? Muito falado e muito usado, porém quem esta começando terá dificuldades. Vou apresentar o famoso bloco Try,Catch.
Imagine em um cenário onde você irá fazer uma conexão com o banco de dados e retornar uma tabela (DataSet), porém o banco esta OFF-LINE, por tanto não conseguiu a conexão, PAN! Erro. Caso esteja utilizando ASP .NET pagina amarela, bom por que não tratar este erro de forma simples e não parar seu processo? Utilize o Try, Catch. Veja exemplo abaixo:

segunda-feira, 9 de setembro de 2013

Class ou Classe, o que é?

Vamos começar pelos fundamentos:
  1. A Classe é um modelo que define a forma de um objeto.
  2. Uma classe especifica as informações e o código que irá trabalhar / executar sobre alguns dados.
  3. Objetos são instanciados em uma classe.
  4. Os métodos e variáveis que constituem uma classe são chamados membros da classe. 

domingo, 8 de setembro de 2013

Replace com C#

O Replace (substituir) pode ser muito utilizado na programação, eu utilizo muito na tratativa de arquivos que são anexados ao sistema.


sábado, 7 de setembro de 2013

sexta-feira, 6 de setembro de 2013

quinta-feira, 5 de setembro de 2013

quarta-feira, 4 de setembro de 2013

Obtendo dias úteis

Estava criando um batch onde o mesmo só iria ser executado nos dias úteis da semana e aos finais de semana ele receberia uma folga também, achei que seria útil compartilhar pois mais pessoas precisarão da mesma informação, abaixo segue o código.

terça-feira, 3 de setembro de 2013

CLR – Performace Garbage Collection (Coletor de Lixo)

Todos nós sabemos que qualquer computador que seja não tem uma quantidade ilimitada de memoria, por tanto a memoria deve ser recuperada bem quando uma variável ou objeto não estiver mais sendo utilizada. Tipos de valores (Value types) são destruídos e limpos quando saem de uso (de seu bloco de código), existe um tratamento por traz de seu código que efetua esta limpeza. Já o Garbage Collection (Coletor de Lixo) que faz parte do CLR, recupera a memoria dos tipos de valores em uso, este método não é controlado diretamente por código.

segunda-feira, 2 de setembro de 2013

C# Tipos Nulos (Nullable Types)

O que é nulo?
O termo nulo é um conceito de programação interessante, ele não significa o mesmo que zero ou em branco, mas sim, muitas vezes, implica em falta ou não de dados e, por isso, é freqüentemente usada como uma bandeira nesse cenário. 

domingo, 1 de setembro de 2013