DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Artigo .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.






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 como configurar o banco de dados da aplicação. Vimos também como criar uma camada de acesso a dados em uma Class Library usando ADO.NET Entity Framework. Nesta segunda parte do artigo, vamos criar uma camada de acesso a dados, utilizando LINQ.

 

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 complexidades do acesso às entidades, da camada de apresentação. Iremos utilizar o object data source para exemplificar como objetos comuns podem trabalhar com o LINQ e com o Entity Framework de maneira transparente.

 

         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
Este post também está disponível para assinantes da .net Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



Publicidade
Autor
Fabio S. Fernandes

É Arquiteto de Software e Coordenador de Projetos especializado em tecnologias Microsoft, Bacharel em Ciências da Computação, pós graduado em Gerência de Projetos de TI com PMBOK, Certified Scrum Master e Profissional Certificado Microsoft, trabalhando com tecnologias Microsoft há mais de 10 anos.


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03