Este é um post disponível para assinantes MVPArtigo .net magazine 70 - ASP.NET 4.0
Este artigo trata de alguns dos novos recursos que acompanham o Visual Studio 2010, como ASP.Net WebForms v4, LINQ to entities, a nova versão do Entity Framework utilizando recursos do C# 4.0. No ASP.Net WebForms 4, iremos tratar de server side paging e page routing, no LINQ iremos fazer consultas sobre as entidades, no Entity Framework v2 iremos modelar nossa camada de dados conceitual/mapeamento/física.
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da .net Magazine 70
ASP.NET 4.0
Aplicação em camadas, Page Routing, LINQ e Entity Framework – Parte 2
Na parte anterior deste artigo (edição 69), vimos
Criando as classes para que aplicações externas interajam como modelo
Uma vez que nosso modelo de entidades esteja disponível, já é possível disponibilizar as entidades para que a aplicação funcione utilizando o LINQ Data Source. Como nosso exemplo é N camadas, fica muito mais elegante e reutilizável criar um mecanismo de interface entre a camada de apresentação e a camada de acesso a dados, e uma classe factory para fornecer a instância de object context que a aplicação está utilizando. Neste caso, criei uma classe façade que esconde as
Nota: Factory e Façade são Padrões de Projeto / Design Patterns bastante utilizadoss em projetos .NET. Para mais informações, consulte a edição 66.
A estratégia para a construção da factory que fornece o contexto pode ser diversificada. Não devemos utilizar static se queremos que a aplicação seja thread-safe. O ideal é que cada sessão tenha seu próprio contexto de objetos, mas neste caso, alocamos mais memória. Considerando que é uma aplicação exemplo, não utilizaremos recursos sofisticados de gerenciamento de contexto, apenas guardaremos o contexto na sessão atual, para fins de exemplo.
Para armazenarmos o nosso contexto de objetos na sessão atual, adicionaremos ao projeto mais uma classe chamada ContextService. Esta classe utilizará o cache da sessão para gerenciar a instância de contexto de objeto disponível para a aplicação. O código ficará semelhante à Listagem 1.
Listagem 1. Classe factory para o Objeto de Contexto
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Adventure.Services.Data
{
/// <summary>
/// Esta classe é a factory que gerencia a utilização de uma mesma instância do contexto de objetos do Entity Framework. Com
/// esta classe, a aplicação utilizará sempre a mesma instância do contexto de objetos, evitando conexões desnecessárias
/// </summary>
internal class ContextService
{
AdventureWorksEntities _CurrentContext;
/// <summary>
/// Atributo que retorna a instância atual do contexto de objetos.
/// Caso seja a primeira chamada, o contexto de objeto será criado (instanciado)
/// </summary>
public AdventureWorksEntities CurrentContext
{
get
{
// Gerencia a utilização de uma mesma instância. Esta factory atende à web, em aplicações
// padrão Windows.Forms ou WCF, "System.Web.HttpContext.Current" deverá ser nulo
if (_CurrentContext == null)
"
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
Space do autor


0
0
