ASP.NET MVC Filters – Utilizando o Action Filter

Bom, hoje eu vou falar um pouco sobre os Filters no asp.net mvc. Utilizar Filters é uma maneira de se trabalhar com o pré processamento e o pós processamento do seu controller e actions. Um exemplo clássico é você querer logar a chamada de uma determinada página, ou então restringir o acesso a determinadas áreas do seu sistema. Imagine a situação em que você precisa verificar se o usuário está logado para realizar determinada ação, porém você não quer poluir a sua action com validações, ou pior ainda, ficar duplicando código pelo seu projeto inteiro. Neste e nos próximos posts, falaremos de alguns tipos de filtros:

  • Action Filter
  • Exception Filter
  • Result Filter
  • Authorization Filter

Action Filter – IActionFilter

Com o Action Filter nós podemos interferir no comportamento da nossa action tanto antes como depois da sua execução. Para isso nós utilizamos a interface IActionFilter:

Continuar lendo

Anúncios

NHibernate – One Session Per Request

Ao trabalhar com NHibernate, um dos principais desafios é gerenciar a Session. Podemos abrir a Session a cada consulta, mas isso seria bem custoso, pois em muitos casos precisamos recorrer ao banco de dados diversas vezes, além de perder uma das grandes vantagens do NHibernate que é utilizar o Lazy Load.
Uma maneira comum de se trabalhar com a session seria da maneira que eu mostro neste post, que ficaria mais ou menos assim:

        using (ISession session = NHibernateHelper.OpenSession()) { }

Porém, se trabalhamos desta maneira, e buscamos uma lista de usuários por exemplo. O código ficaria assim:

    public IList<User> GetAll()
    {
        using (ISession session = NHibernateHelper.OpenSession())
        {
            var users = session.CreateCriteria<User>().List<User>();
            return users;
        }
    }

Continuar lendo

TUTORIAL: ASP.NET MVC COM NHIBERNATE E MYSQL – PARTE 2 – Criando o Repository

Na primeira parte do tutorial, nós mapeamos o nosso modelo utilizando o Mapping By Code do NHibernate. Como nosso modelo é basicamente um usuário com endereço, caso você queira popular o seu banco com os países, cidades e estados disponíveis, eu criei este gist no github.
Bem, vamos começar agora com o acesso aos dados. Vamos criar um Repository para o nosso usuário contendo as operações básicas: Salvar, Atualizar, Obter 1 usuário e Obter uma lista de usuários:

Continuar lendo