Entity Framework – Melhores práticas em busca de performance

Separei neste post algumas dicas de como tornar suas aplicações com Entity Framework mais performáticas. As dicas abaixo se resumem a um grupo de boas práticas que costumo aplicar em meus projetos. Algumas desta dicas não se aplicam apenas ao Entity Framework, mas se aplicam a outras ferramentas ORM ou técnicas de modelagem de sua camada de acesso a dados.

Tornando sua aplicação mais performática

Leia mais »

WCF e Protection Level

Windows Communication Foundation é uma plataforma distribuída orientada a mensagens SOAP. Dentre suas principais características podemos destacar os recursos de segurança entre mensagens cliente/servidor. Atualmente tais recursos são essenciais para proteção dos nossos dados.

Dentre os recursos de segurança dos serviços WCF encontramos os níveis de proteção (protection levels) dos envelopes SOAP. Tais níveis de proteção são responsáveis por proteger a comunicação cliente/servidor contra interceptações e alterações indevidas.

Estes recursos são necessários para garantir a confidencialidade dos dados, prevenindo o extravio, a alteração ou a leitura dos dados por outros.

Leia mais »

Entity Framework 6 – Database.BeginTransaction() e Database.UseTransaction(DbTransaction)

Ao falarmos sobre transações é bastante comum ouvir sobre o acrônimo ACID (Atomicidade, Consistência, Isolamento e Durabilidade). O conceito ACID descreve características necessárias em uma transação, sendo estes conceitos:

Atomicidade: uma transação é uma sequência de operações tratadas como um bloco único e indivisível. Todas as suas operações devem ser executadas com sucesso ou nenhum resultado será refletido na base de dados.

Consistência: a execução de uma transação deve manter a integridade dos dados.

Isolamento: transações paralelas não devem interferir na execução umas das outras. Existem diferentes tipos de isolamentos, algo que veremos a seguir.

Durabilidade: ao executar com sucesso, os efeitos da transação (os dados alterados, inseridos e excluídos) devem estar disponíveis em definitivo.

acid

Leia mais »

Entity Framework 6 – Crie uma instância de DbContext por meio de uma instância de um DbConnection

Um dos novos recursos disponíveis no Entity Framework 6 é a possibilidade de criar novas instâncias de contexto utilizando uma instância de DbConnection ativa. Operações que mesclam comandos em ADO.Net e com o Entity Framework podem fazer uso deste recurso.

No Entity Framework 6, a classe DbContext ganhou novas assinaturas para seus construtores, permitindo o uso de uma instância ativa de DbConnection para criação de um novo contexto. Para ver todos os construtores disponíveis na classe DbContext acesse este link: http://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.103).aspx

Desenho1

Leia mais »

Controle de instâncias entre requisições de serviços WCF

O WCF provê três modelos diferente de controle de instâncias, sendo estes modelos:

Per call instance mode – Uma nova instância do serviço WCF é criada para cada chamada de método invocada por um cliente e destruida após a resposta ser enviada.

Per session instance mode – Apenas uma instância de um serviço é criada para um conjunto de integrações com o cliente. A instância do serviço só é destruída quando o cliente termina suas requisições.

Single instance mode – Uma instância global do serviço é criada, e desta forma fica responsável por receber e processar todas as requisições de todos os clientes.

Leia mais »

Windows Azure Storage – Table

Azure Tables é o recurso do Windows Azure storage mais próximo dos bancos de dados NoSql.

O Windows Azure Tables fornece recursos para o armazenamento e manipulação de dados estruturados.

Uma Azure Table pode ser vista como um container que provê recursos para o armazenamento de dados. Uma grande diferença entre as Azure Tables e as tabelas de bancos de dados relacionais é que, podemos armazenar diferentes estruturas dentro de uma mesma Azure Table, algo impossível de ser feito com tabelas de bancos relacionais. Desta maneira, as Tables acabam se tornando um grande conjunto de entidades. Isso torna o Azure Table ideal para o armazenamento de grandes coleções de objetos.

Azure Tables são otimizadas para trabalhar com grandes quantidades de dados. Um detalhe importante é que Tables podem ser automaticamente escaladas para acomodarem até 100 terabytes de dados, a fim de garantir a melhor performance possível.

Leia mais »

Utilizando PowerShell para o acesso a bases de dados SQL

O Windows PowerShell é um prompt de comando muito poderoso. Com ele podemos criar scripts para automatização de tarefas, consumir componentes Microsoft .Net, objetos COM e outras APIs de aplicações Microsoft (como por exemplo Sharepoint, Exchange, Active Diretory, etc).

Devido ao seu uso bastante genérico, sempre surgem diferentes situações para o seu emprego. Gostaria de demonstrar nesse post como é feita a leitura e inclusão de dados em bases de dados SQL via Windows PowerShell.

Leia mais »

Sistematizar a informação visualmente para mapear e conhecer

O modelo de sala de aula tradicional é totalmente padronizado, isto é, as aulas são sempre dadas da mesma maneira. Este modelo não se enquadra mais a atualidade, onde estamos inseridos na sociedade do conhecimento, ao dinamismo das ações e ao acesso em tempo real de informações. Este modelo de sala de aula é o modelo utilizado na era industrial, não se enquadra mais a necessidade de orquestração do ensino que vivemos hoje. Os paradigmas mudaram, a capacidade de disseminar informação explodiu, mas as salas de aula e os métodos de ensino continuam os mesmos.

Leia mais »