segunda-feira, 28 de junho de 2010

EnterpriseLibrary5DataAccessBlock-parte1

Pessoal como havia prometido começo hoje uma série de artigos falando das principais novidades da Enterprise Library 5.

Para quem não conhece a Enterprise Library, também conhecida como EntLib, é uma biblioteca de blocos de código com fins bem específicos e comuns a maioria das aplicações.

Enter eles podemos citar o Data Access e seus recursosde conectividade e abstração no acesso a bancos de dados encapsulando diversos recursos do ADO.NET, o Exception |Handling e seus diversos tratamentos para as exceções, Logging e seus diversos listeners que determinam como e onde o logo é armazenado, e varios outros como SEgurança, Criptografia, Validação de Dados, Injeção de Dependencia, Orientação a Aspecto, entre outros.

Como trabalho muito com aplicações de banco de dados, e acho um dos blocos mais simples de se trabalhar, decidi começar falando do Data Access. Para quem ainda não oconhece recomendo realizar os Hands On Labs.

O que vou falar aqui são das novidades da versão 5 apenas. E são elas:

Data Accessors;

Chamadas Assincronas ao Banco de Dados;

Os Data Accessors nos dão a possibilidade de transformar um ResultSet diretamente em uma lista genérica de objetos.

O que ele faz é mapear os campos do ResultSet diretamente para as propriedades do objeto.

Isto é muito útil quando temos aplicações legadas e ainda não estamos preparados para migra-las para um ORM, mas precisamos de produtividade na criação das consultas.

Mas se é legado, normalmente os nomes das colunas não tem nada haver com o nome da propriedade ceto? A resposta normalmente será sim. Ai não vai funcionar né? Ai é que você se engana.

Junto com os Data Acessors existem classes sensacionais utilizadas para dar suporte ao mapeamento dinamico de propriedades, até mesmo de tipos complexos como classes, para colunas do resultset.

É possível se especificar uma coluna ou uma função que via lambda expression permite se construir mapeamentos altamente sofisticados e versáteis.

Alias elesforam idealizadosexatamente para que você traga os dados odo banco, mas faça querys mais complexas em sua aplicação, ja que os dados ja estarão em memória e suas consultas serão absursamente mais rápidas.

Já as chamadas assincronas, também usadas pelos Accessors, são um recurso interessante para aumentar a escalabilidade de suas aplicações, porincipalmente aplicações data centricas que trabalham com milhares de registros.

O que le faz, caso suportado pelo banco de dados, e fazer a transferência dos registros de forma assincrona, de acordo com a necessidade da aplicações, permitindo assim uma maior otimização dos recursos, principalmente quando por exemplo, existe muita concorrência, processamentos massissos sobre os dados ou mesmo para que o usuário tenha um feedback mais rápido na User Interface.

Duas novas propriedades foram adicionadas aos objetos Database:

SupportAsynchronousExecute;

SupportDynamicPArameterDiscovery;

Ambas definem se a conexão aceita os devidos recursos.

No próximo post colocarei exemplos práticos de cada recurso.

quinta-feira, 24 de junho de 2010

Services.Restart()

Depoisdeumalongatemporadaforaretomoaquiminahsatividadesnestblog.

Durante os últimos meses venho estudando muito as novidades do Visual Studio 2010, .NET Framework 4, e atualmente a Enterprise Library 5.

Tentarei nas próximas semanas mante uma certa regularidade nas postagens para que não percamos o fio da miada ok?

Aproveitando este post quero falar de um recurso muito interessante do novo Data Access Block da EntLib 5, os Data Accessors.

Apesar de termos diversos Frameworks ORM, como o próprio Entity e o NHibernate, a Microsoft nos proveu uma ferramenta muito interessante para adiconarmos este recurso em aplicações mais simples, legados e casos emque o modelo relacional é tão complexo que nem Jesus nos ajudaria.

O que ele faz é praticamente mapear um resultset, IDataReader ou IDataSet, para uma lista de objetos.

Por default ele faz o mapeamento pelo nome das colunas, mas é possível se criar mecanismos custom de mapeamento e com isso preencher estruturas complexas de maneira relativamente simples.

Tenho utilizado este recurso em meu último projeto e o ganho de produtividade é absurda.

No próximo post coloco um passo-a-passo de por onde começar e algumas dicas de boas práticas quando trabalhamos com este bichinho.

Pra quem está curioso, recomendo a leitura do arquivo .CHM disponível no site da Enterprise Library, os Hands On e é lógico os blogs dos desenvolvedores.

Abraço!

terça-feira, 21 de julho de 2009

Geração de Código com Visual Studio 208 e T4

Estas férias estão sendo super produtivas. Estou aproveitando pra colocar um monte de coisa em ordem e me atualizar com bastante tecnologias, coisas que a tempos não fazia com tanta frequencia.
Acabei de assistir um screemcast muito legal sobre T4 a tecnologia de templates e geração de código com o Visual Studio, utilizado pelos Softwares Factories e base do DSL (Domain Specific Language) que no fim das contas irá parar no OSLO que está sendo apresentado agora pela Microsoft.

Acessem http://www.pnpguidance.net/Post/T4TemplatesVisualStudioCodeGenerationScreencast.aspx e vejam por si próprios o que estou falando.

segunda-feira, 20 de julho de 2009

Microsoft Entity FRamework

nEstava dando uma olhada no blog do time do ADO.NET e do Microsoft Entity Framework, o framework de ORM (Object-Relational Modeling) tecnologia paa mapeamento de objetos para banco de dados relacionais.
Parece que eles já atenderam no último CTP (Commynity Technology Preview( do Entity Framework a possibilidade de se trabalhar apenas com código, sem a necessidade de utilização do Designer já conhecido desde o Linq to SQL.
Agora além de poder utilizar suas próprias entidades, foi criado um template T4 (recurso de template incluído no Visual Studio) para criação de classes POCO (Plain Old CLR Object), ou seja nossas classes de negócio que contem apenas a definilão de dados e .
O blog contém uma série de exemplos passo-a-passo. Para faze-los você precisará do .NET Framework 4.0 Beta 1 e do Visual Studio 2010 também em versão Beta 1.
Recomendo uma olhada! Pretendo estudar isto um pouco mais de perto, e logo em seguida colocar minhas próprias demonstrações e opiniões aqui.

domingo, 19 de julho de 2009

Duas dicas legais

Deixa eucompartilhar duas dicas legais que aprendi esta semana e que são de valor incalculável.
Uma o meu amigo Fábio Margarito comentou e fazendo uma busca ´rapida no Google w E OUTRA O Igor instrutor do curso de WCF (Windows Communication Foundation) passou ontem durante a aula.
A primeira refere-se a arquivos XML que você precise editar e que você tenha acesso a um XSD. Se você colocar o arquivo XSD dentro da pasta Xml\Schemas do Visual Studio você ganha o recurso de intellisense dentro do Visual Studio para este arquivo XML. Este recurso existe desde o Visual Studio 2005 e está disponível em todas as versões desde então.
A segunda refere-se a o processo de debug de Windows Services. Você já teve esta difícil tarefa e utilizou inúmeros recuros “porcos” para conseguir atingir o objetivo. Beleza. Dentro do Framework existuma classe Debugger. Sua função é única e ~exclusivamente trabalhar com o Debugger do .NET. Chamando o método Break ou Lanch você tem a opção de inciiar o debugger e com isso debugar o seu projeto desde o início. Chega de Sleep e outras funções toscas. Valeu pela dica Igor.

Silverlight 3 lançado

Saiu o Silverlight 3, última versão do framework da Microsoft para desenvolvimento de aplicações ricas para Web.
O Silverlight é um port para Web do WPF (Windows Presentation Foundation) integrante do Framework 3.5 do .NET com o objeitov de oferecer uma nova maneira d criação de interfaces ricas i utilizando ao máximo os recuros gráficos, animações e efeitos visuais, inclusive em 3D, de forma simples e acessível aqualquer um.
Além da linguagem declarativa XAML que além de poderosa da total liberdade para o trabalho dos designers de interface trabalharem independentes dos desenvovledores, novas funcionalidades e recursos de programação foram adicionados ao Framework e são capaz de deioxar qualquer um com água na bica em vê-las funcionando. O roteamento de eventos, o conceito de Commands, Recursos entre outros permitem uma rápida criação de interfaces que dão um novo nível de experiência ao usuário.
Rcomendo estudar estes assuntos, poiseles tem toda a pinta de ditarem as novas rergas para criaçõ de aplicações nos príximos anos.

Windows 7 - Primeiras impressões

Depois de algum tempo afastado retorno ao blog falando do novo sistema operacional da minha máquina. O Windows 7.
Minhas primeiras impressões são:
· A instalção é a mais simples de todas. O processo todo, apesar de um pouco demorado, não fez nenhuma pergunta que não pudesse ser respondida por qualquer pessoa. Até mesmo a configuração da rede sem fio ao final foi super simples.
· Não há o que se dizer quanto ao visual. Foram só elogios. A parte de design de interface da Microsoft ta cada vez se superando. Existem muiotos recursos visuais novos, mas que infelizmente não utilizo tanto por utilizar o esquema de Alto Contraste. Alias ponto positivo na configuração dos recursos de acessibilidade, que estão bem mais práticos. Ponto negativo é que não estão disponíveis na instalação.
· Sistema estável e rápdo. Todas as aplicações que utilizava no Vista estão rodando perfeitamente, e com um desempenho bem superior. Estou utilizando a versão 64 bits, então fiz uma dupla migração, tanto de S.O. quanto de arquitetura. A diferença é brutal.
· Apesar de ter encontrado tôo o hardware da minha máquina, ele não identificou a placa de vídeo. Uma nVidia série 8. Ponto para a nVidia que j tinha os driver atualizados no site. Alias o Windows Update me surpreendeu. Mesmo nas atualizações mais pesadas, ele não precisa reiniciar o sistema. Ele faz um soft reset, apenas recarregando o S.O. muito rapidaente.
Ainda não tive muito tempo para fuçar em todas as novidades, mas sem sombra de duvidas este Windows esta bem completo. Parece que no mês que vem já teremos a versão final para empresas, e só em outubro teremos a verso para o mercado do público em geral. Vale a pena dar uma olhada neste que tem a promessa deser o melho Windows de todas.