Pular para o conteúdo principal

Postagens

Mostrando postagens de Abril, 2011

Como Testar Extension Methods sem o Visual Studio

Extension Methdos são um recurso interessante do Framework .NET porém, para testarmos o seu funcionamento, geralmente precisamos escrever o código no Visual Studio e gerar um programa.Para quem não quer usar o Visual Studio uma alternativa interessante é usar o programa gratuito LINQPAD que pode ser baixado em http://www.linqpad.net.Para fazer os testes com Extension Methods primeiro mude o tipo da consulta para C# Program (isto se você estiver usando esta linguagem) no campo “Language”.Daí em diante o editor de texto prepara a estrutura do programa para o formato abaixo.void Main()
{

}

// Define other methods and classes here



A classe para os métodos de extensão deve ser colocada fora do método definido em "void Main()".


void Main()
{

}

// Define other methods and classes here
publicstaticclass MetodosDeExtensao
{
publicstaticint ContarPalavras(thisstring str)
{
return str.Split(' ').Length;
}
}


O código que irá consumir o método de extensão deve ser colocado dentro do méto…

Extension Methods–Outros dados importantes

Ao fazer referência ao namespace System.Linq no código os Extension Methods deste são acrescentados para as collections dentro do código e tornando-se acessíveis pelo intelisense do Visual Studio. Veja este exemplo:namespace CodigosExemplo
{
publicclass Class1
{
publicvoid Mostrar()
{
int[] numeros = newint[] { 1, 7, 2, 11, 5, 13 };
}
}
}


Neste exemplo podemos usar um Extension Method para fazer a ordenação dos números bastando incluir o namespace:


using System.Linq;


Observe na figura os métodos de extensão já habilitados no Intelisense do Visual Studio.



Assim para ordenar o array basta mudar o código para o seguinte:


using System.Linq;

namespace CodigosExemplo
{
publicclass Class1
{
publicvoid Mostrar()
{
int[] numeros = newint[] { 1, 7, 2, 11, 5, 13 };
var ordena = numeros.OrderBy(n => n );
}
}
}


Com este recurso é possível descobrir o índice de um elemento dentro do vetor, o que não pode ser feito sem usar os Extension Methods.


//Exemplo de Exten…

Entity Framework–Primeiros Passos

EF representa um avanço para os programadores que querem gastar o seu tempo escrevendo as aplicações e não se preocupando em como os dados são armazenados e como devem ser recuperados. Embora a Microsoft mantenha as plataformas existentes para acesso a dados, EF será o padrão a ser adotado e, consequentemente, receberá toda atenção e inovações desta empresa. Por isto, para os programadores que planejam permanecer na plataforma .NET é bom dar uma conhecida em seus recursos.Com EF não é preciso escrever o código baseado no banco de dados, mas, agora, podemos ter em mente os objetos de negócio da aplicação e escrever o código baseado nestes. EF usa um modelo chamado Entity Data Model (EDM).Mudando os conceitosConsidere que exista no banco de dados três tabelas com os seguintes campos:Para você recuperar todos os dados do produto usando as instruções SQL provavelmente você terá de fazer alguns JOINS. Dificilmente você vai agrupar os dados em uma só tabela, principalmente aqueles referente…

WPF–Controlando a aplicação

Cada aplicação em WPF consiste de uma instância da classe System.Windows.Application.Isto signifca que é por meio desta classe que são controladas as janelas e o comportamento geral do programa.O Visual Studio gera automaticamente o código abaixo para o início da aplicação.using System;
using System.Windows;

publicclass Startup
{
[STAThread()]
staticvoid Main()
{
//Cria a aplicação
Application app = new Application();
//Cria a janela principal
Window1 win = new Window1();
//Executa a aplicação e mostra a janela principal
app.Run(win);
}
}





Comportamento da aplicação – Controlando como a mesma é finalizada

Em WPF é possível alterar vários aspectos da aplicação, um que merece destaque é a maneira como a mesma pode ser encerrada. Por padrão a aplicação permanece ativa até o momento que a última janela é finalizada, mas, isto pode ser modificado. Se você fizer um ajuste na propriedade ShudtownMode da classe Application antes de chamar o método Run(). Existem três opções…

Extension Methods–Fatos e curiosidades

Um dos grandes problemas deste tipo de funcionalidade é que estes métodos são mais difíceis de serem descobertos, quando se considera o uso de Reflection por exemplo.Considere a classe produto:namespace Dados
{
publicclass Produto
{
publicint Id { get; set; }
publicstring Descricao { get; set; }
publicdecimal ValorDeVenda { get; set; }
publicstring DescricaoAdicional { get; set; }
publicstring GrupoEstoque { get; set; }
publicdecimal Saldo { get; set; }
}
}




E que possua uma classe de método de extensão para retornar o valor do estoque:


namespace Dados
{
publicstaticclass MetodosDeExtensao
{
publicstaticdecimal RertornarValorDoEstoque(this Produto objProduto)
{
return objProduto.Saldo * objProduto.ValorDeVenda;
}
}
}





Se você usar Reflection, o método acima não será listado com um dos métodos desta classe, mesmo podendo ser usado com uma instância da mesma. Isto pode causar algum impacto se estiver considerando distribuir este tipo de dado em um Class Library,

Outros elementos E…

Iniciando com WPF e XAML – Mais elementos importantes

Respondendo a EventosUm dos pontos importantes de qualquer linguagem é a capacidade desta permitir escrever código para responder a eventos.No C# os eventos são escritos para elementos especiais das classes, os delegates que funcionam como ponteiros para funções.Um uso típico é o responder a um clique em um controle Buttom ou verificar se em um controle de texto, o usuário pressionou uma tecla específica. Entretanto, há muito mais por trás de eventos. É possível inspecionar se houve mudança no valor de alguma propriedade de um determinado componente, por exemplo.No XAML a maneira de responder a evento é simples bastando escrever o nome do evento e o método que será executado, como no exemplo abaixo:EventName=”EventHandlerMethodName” Para um controle do tipo Button o código ficaria parecido com o seguinte: <Button … Click=”btnEnviar_Click”>

É importante lembrar que é preciso conhecer os parâmetros que o método do EventHandler precisa ter para poder ser executado. O código C# par…

Iniciando com WPF e XAML

A partir de hoje vou deixar aqui as minhas impressões e experiências com o WPF e XAML. O meu objetivo é anotar os principais pontos desta linguagem de marcação do Framework .NET usada para definir a interface dos programas construídos sobre a plataforma WPF (Windows Presentation Foundation).XAML – O ponto principalUm ponto fundamental da linguagem XAML é que cada elemento mapeia uma classe do Framework .NET, logo, ao definir a tag Button você está criando uma instância da classe Button. Cada propriedade é configurada a partir dos atributos sendo que, para configurações de interface mais complexas, provavelmente você precisará definir os controle usando as tags aninhadas. <Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>