Criando um repositório genérico para Entity Framework

Standard

Irei demonstrar aqui uma forma bem simples e rápida para implementarmos um repositório genérico com Entity Framework. A ideia de implementação será a mesma utilizada com Linq to SQL, ou seja, nosso repositório será responsável por realizar apenas quatro operações: Selecionar os dados, salvar, apagar e atualizar.

Vamos primeiramente criar uma interface para o repositório:

public interface IRepositorio
{
	void Atualiza();

	void Apaga<TEntidade>(TEntidade entidade) where TEntidade : class;

	void Salva<TEntidade>(TEntidade entidade) where TEntidade : class;

	IQueryable<TEntidade> Seleciona<TEntidade>() where TEntidade : class;
}

Continue reading

Criando um repositório genérico para Linq to SQL

Standard

Vou demonstra aqui uma forma bem rápida e produtiva para criarmos um repositório genérico com Linq to SQL. Basicamente devemos efetuar quatro operações básicas: Selecionar os dados, salvar, apagar e atualizar.

Vejamos como ficaria nossa interface para o repositório genérico:

public interface IRepositorio
{
   void Atualiza();

   void Apaga<TEntidade>(TEntidade entidade) where TEntidade : class;

   void Salva<TEntidade>(TEntidade entidade) where TEntidade : class;

   IQueryable<TEntidade> Seleciona<TEntidade>() where TEntidade : class;
}

Pegou a idéia com Generics? veja a implementação: Continue reading

Cria suas próprias coleções utilizando Iteration Pattern em C#

Standard

Antes de iniciarmos este artigo, é altamente recomendado que você saiba o que é, e como funciona a interface IEnumerable, localizada no namespace System.Collection. Com uma rápida explicação retirada do MSDN, podemos considerar um IEnumerable como:

“Exposes the enumerator, which supports a simple iteration over a non-generic collection.”

Ou seja, é uma interface que expõe o enumerador, e suporta uma iteração simples sobre uma coleção não genérica.

Ok, e o que seria esse “Iteration Pattern” ?

Iteration Pattern é um padrão de desenvolvimento muito utilizado em loops de repetições. É um padrão que viabiliza o acesso sequencial aos elementos de uma dada coleção, sem que seja necessário o conhecimento dos elementos subsequentes. Continue reading

Mapeando simple objects e complex objects com AutoMapper

Standard

Bom, para quem não sabe o que é o AutoMapper, segue uma definição retirada do próprio site do projeto:

“AutoMapper is a simple little library built to solve a deceptively complex problem – getting rid of code that mapped one object to another.”

Ou seja, é um biblioteca criada para mapeamento entre objetos.

Ao longo do artigo irei demonstrar exemplos de mapeamento entre objetos simples e complexos, além de demonstrar como configurar o mapeamento e exibir os prós e contras (no meu ponto de vista) quanto ao recurso/biblioteca.

Para o exemplo estarei utilizando Linq To SQL com um projeto em ClassLibrary. Continue reading

ASP.NET MVC – Criando estruturas para Injeção de Dependência com o MVC Turbine no Visual Studio 2010

Standard

 

Neste artigo demonstrarei o uso de uma extensão (ou plugin se preferir) para desenvolvimento de aplicações com ASP.NET MVC, chamada MVC Turbine Project Templates.

MVC Turbine?

Basicamente, o MVC Turbine é uma extensão que viabiliza e permite criar uma estrutura já configurada para a utilização de Injeção de Dependência.

Isso mesmo, ele nos permite criar uma estrutura inicial em MVC já configurada com IoC utilizando Injeção de Dependência. E o melhor, ainda é possível escolher o container desejado, como: Ninject, StructureMap, Castle Windsor e Unity.

Continue reading

ASP.NET MVC – Injeção de dependência com StructureMap

Standard

Injeção de dependência ?

A injeção de dependência é geralmente utilizada quando se deseja diminuir o acoplamento entre diferentes componentes/módulos de um sistema, de forma que o controle de instanciação das classes dependentes é realizado fora das classes, ou seja, todas as dependências entre os componentes/módulos não são definidos programaticamente, mas através da configuração de um container, onde o mesmo é responsável por injetar em cada componente/módulo suas dependências necessárias declaradas no código da classe. Mais claramente, utilizando a injeção de dependência é possível instanciar diversas classes concretas, sem manter-se aclopado a mesma.

Criação do projeto

Vamos criar um projeto do tipo ASP.NET MVC com o nome de Site.Apresentação no respectivo caminho C:Site conforme a figura 1.0.

Figura 1.0

Continue reading