Desenvolvimento - ASP. NET
Desenvolvimento de Framework Para Aplicações.Net
Este artigo aborda a implementação de três tipos de application blocks, que são Data Access Application Block, Exception Management Application Block e Caching Application Block que formam o Framework.
por Flavio Goncalves AraujoÉ fato que atualmente o desenvolvimento de software, está passando por uma fase de estruturação, tendo como principal objetivo atingir de uma forma produtiva, eficaz e com qualidade o produto final. Foram criadas novas metodologias voltadas para desenvolvimento de sistemas, com foco de gerar produtividade, confiabilidade de uma aplicação. A Microsoft com esta visão de mercado, lançou em 2002 a tecnologia .Net para o desenvolvimento de aplicações sejam elas empresariais, como também voltada para telefonia. Após o lançamento, a tecnologia tanto aqui no Brasil como no exterior foi conquistando o mercado a cada dia. A partir da identificação de problemas que foram se tornando recorrentes em projetos de aplicações multicamadas, usando a tecnologia .Net, a área de arquitetura da Microsoft passou a disponibilizar elementos para agilizar o projeto e o desenvolvimento de aplicações com maior qualidade e previsibilidade.
2. Definição e Aplicabilidade de um Framework
Framework é uma arquitetura desenvolvida com o objetivo de se obter a máxima reutilização de código, agregando produtividade e padronização no desenvolvimento de sistemas [1].
Figura 01 - Diagrama de Desenvolvimento de Aplicações
Conforme a figura 01 o desenvolvimento de aplicações baseado em framework, pode-se reutilizar o código em diversas aplicações, garantindo uma padronização e produtividade.
3. Procedimentos Adotados para Implementação e Implantação do Framework O objetivo para implementação e implantação de um framework, baseia-se na capacidade de padronizar o desenvolvimento de aplicações utilizando a tecnologia .Net, garantindo uma produtividade e um desempenho . A partir do Diagrama de Atividades conforme figura 02, foi definido as fases das atividades a serem desenvolvidas do projeto.
Figura 02 - Diagrama de Atividades do Projeto
4. Atividades adotadas para implementação
Projeto Framework aborda uma padronização no desenvolvimento de aplicativos, garantindo uma produtividade e reutilização de código nos projetos. Desta forma garante uma maior confiabilidade nas aplicações desenvolvidas utilizando a tecnologia .Net. A seguir está o artigo com as descrições das atividades que foram adotadas para implementação.
- Levantamento das Necessidades: Processo no qual foi levantado às necessidades reais para implementação e uma posterior implementação.
- Definição dos Applications Blocks: São Blocos de Códigos estruturados que implementamos para garantir uma padronização, gerando uma qualidade no produto final.
- Implementação: Baseia-se na codificação dos Applications Blocks
- DAAB: Trata-se da codificação do application Block de Acesso a Dados, sendo implementado para o SGBD Sybase e Oracle.
- EMAB: Trata-se da codificação do application block para tratamento de exceções na aplicação.
- CAC: Trata-se da codificação do application block para Cache nas aplicações.
- Testes: Baseia-se em uma massa de dados que foram aplicados testes
- DAAB: Baseia-se em testes feitos para application block de acesso a dados.
- EMAB: Baseia-se em testes que foram feitos para application block de tratamento de exception.
- CAC: Baseia-se em testes que foram feitos para aplicações utilizando o cache.
O framework foi implantado, após o estudo da tecnologia, sendo codificado os applications blocks de acesso a dados e Exception. Ao final da codificação é gerado uma DLL para cada application block que permite a sua utilização entre as aplicações .Net . Desta forma sempre que houver uma nova implementação de uma nova aplicação, esse código é reutilizado.
4.2. Atividades adotadas para Documentação
Na documentação do Projeto foi realizado o controle das fases de desenvolvimento do projeto conforme figura 01, gerando a documentação das atividades de cada item relacionado, especificando a utilização de cada application block de acordo com suas especificações.
- Documentação Funcional Framework: A documentação funcional engloba como funciona cada application block que forma o framework.
- DAAB: Segue abaixo um exemplo de codificação executando um procedure na base dados, utilizando o SGBD Sybase.
Figura 03 - Application Block Acesso a Dados
A figura 03 - Application Block representa a padronização para acessar o banco de dados e executar uma stored procedure. Na figura 03 temos alguns métodos são eles :
- Método de Acesso a Dados: Nesse método temos um exemplo de codificação para conectar no banco de dados.
- Método para Execução: Nesse método tem o exemplo de codificação de como executar a stored procedure no banco de dados.
- Método Parâmetros: Nesse método tem o exemplo de como executar a stored procedure passando os parâmetros para o banco de dados.
Com essa codificação, é possível garantir a padronização no desenvolvimento de aplicações .Net utilizando este modelo, garantindo uma maior produtividade e uma maior facilidade para manutenção do aplicativo.
- EMAB : Codificação de como fazer o tratamento de erros utilizando o application block de tratamento de exception.
Figura 04 - Application Block Acesso a Dados
A figura 04 - Application Exception representa a padronização para tratamento de erros na aplicação. A partir desta codificação é possível garantir a padronização no desenvolvimento de aplicações .net utilizando este modelo.
6. Estrutura Elementos Applications Blocks
A disponibilização de elementos estruturais podem ser obtidas pelo site da MSDN http:\\www.MSDN.com. O objetivo desses elementos estruturais que é disponibilizado pela Microsoft, é reduzir os insucessos de projetos, possibilitando que esses elementos sejam implementados de acordo com as necessidades do cliente, resultando assim em um framework de desenvolvimento padronizado para aplicações .Net.
Os blocos atualmente disponíveis respondem a algumas das necessidades comuns encontradas em projetos multicamadas, levando em consideração, os critérios de seleção utilizados para os applications blocks, a seguir, foram desempenho em acesso a dados, controle da aplicação no tratamento de erros, e na disponibilidade de um sistema, caso possa ocorrer um problema em servidores, conseguimos então manter o funcionamento da aplicação utilizando o sistema de cachê.
- Bloco para acesso a dados - Data Access Application Block
- Bloco para Gerenciamento de Exceções - Exception Management Application Block
- Bloco para Armazenamento Intermediário - Caching Application Block
Cada bloco é composto do código de implementação do mesmo em VB.NET e C#, código exemplo de utilização e documentação. A partir desse código exemplo que é disponibilizado, implementamos de acordo com a necessidade do negocio e a tecnologia que temos disponível.
7. Implementação do Bloco Acesso a Dados (Data Access Application Block - DAAB)
Aplicações em geral, e principalmente distribuídas, necessitam executar comandos para interagir com um banco de dados relacional. Comandos SQL ou Stored Procedure são usados para atualizar, deletar e recuperar dados por toda aplicação. O DAAB é um componente único desenvolvido em tecnologia .Net, que contém toda funcionalidade necessária para realização das funções comuns de acesso a dados em um banco de dados. A partir do código que é disponibilizado pela Microsoft, foi feita a implementação para os SGBD, que é utilizado de acordo com cliente. A seguir segue apresentação da implementação para alguns SGBDs. O objetivo dessa implementação foi garantir uma maior desempenho no acesso ao banco dados Sybase e oracle, utilizando seus próprios provider nativos, gerando uma padronização e qualidade no desenvolvimento de aplicações .Net.
7.1. Análise e Resultados da Implementação do Bloco Acesso a Dados (Data Access Application Block - DAAB)
Implementação Data Access Application Block - DAAB para SGBD Sybase e Oracle - A implementação deste DAAB para o SGBD Sybase, garante um acesso ao banco de dados mais performático, utilizando seus próprios providers de conexão de uma forma nativa, gerando uma padronização no desenvolvimento das aplicações .Net. Com essa implementação geramos uma DLL que contém todos os métodos necessários à conexão de banco, a execução de SQL, a passagem de parâmetros e fazemos referencia desta DLL em nossos aplicações. Desta forma quando formos desenvolver uma aplicação que vai utilizar o SGBD Sybase ou oracle, bastamos referenciar essa dll no nosso projeto.
8. Implementação do Bloco para Gerenciamento de Exceções (Exception Management Application Block - EMAB)
O EMAB fornece uma base simples e ao mesmo tempo extensível para o log de informações sobre erros, também conhecidos como exceções, no repositório padrão do Windows para este tipo de informação: Application Event Log. Podemos também criar nossos próprios componentes que façam o log de exceções em outras bases de dados ou que notifiquem operadores em casos pré-determinados. Com a utilização deste bloco, reduzimos significativamente a quantidade de código para a manipulação de erros que é normalmente incluído nos projetos, reduzindo por conseqüência o impacto nos testes e manutenção.
O EMAB é um componente desenvolvido em .NET, que contém toda funcionalidade necessária para realização das funções de gerenciamento de Exception de uma aplicação .Net, com ele podemos tratar as Exception para gerar as informações dos erros no Event Log, em arquivos XML.
O Objetivo dessa implementação foi garantir um maior gerenciamento dos erros que podem ocorrer em aplicações .Net, gerando uma consistência, flexibilidade e capacidade de absorção dos erros.
8.1. Análise e Resultados da Implementação do Bloco para Gerenciamento de Exceções (Exception Management Application Block - EMAB)
Implementação Exception Management Application Block - EMAB - Garante a redução significativa à quantidade de código para manipulação de erros que é normalmente incluída nos projetos, gerenciando as exceções da aplicação de uma maneira eficiente e consistente, fazendo um isolamento do código de gerenciamento das exceções da lógica de negócio.
9. Implementação do Bloco para Armazenamento Intermediário (Caching Application Block - CAB)
São poucas as aplicações que não possam se beneficiar de um mecanismo eficiente de armazenamento intermediário de dados - cache. Na verdade, a grande maioria das aplicações que usam a arquitetura multicamadas são freqüentemente requeridas a oferecer um desempenho percebido acima daquele que pode ser obtido com armazenamento de dados em meio físicos. A solução para esta demanda, muitas vezes, pode ser atendida por um mecanismo de cache.
9.1. Análise e Resultados da Implementação do para Armazenamento Intermediário (Caching Application Block - CAB)
A utilização do cache nas aplicações traz , entre outros benefícios:
- Performance - Técnicas de cache são usadas para melhorar a performance de uma aplicação através do armazenamento dos dados relevantes e de uso freqüente o mais próximo possível do consumidor destes dados, evitando desta maneira o custoso e repetitivo ciclo de busca, processamento e transporte dos dados. Por exemplo, o armazenamento de dados que não mudam com freqüência, como uma lista de países, em um cache, pode melhorar o desempenho de uma aplicação por minimizar ou eliminar as operações de acesso a dados para cada requisição [4].
- Escabilidade - O mesmo dado utilizado por regras de negócio, e elementos de interface com o usuário, são freqüentemente requeridos por inúmeros usuários e processos em uma aplicação. Se a requisição a estes dados é processada para cada interação do usuário, recursos valiosos são gastos recriando o mesmo processo. Podemos armazenar os resultados de uma solicitação de dados em uma área intermediaria e reutilizar quando necessário. Isto aumenta de forma significativa a escabilidade da aplicação uma vez que, na medida em que o número de usuários aumenta, a demanda no servidor pela tarefa que realiza uma determinada operação de recuperação de dados se mantém constante. Por exemplo, em uma aplicação Web tradicional o servidor é acionado sempre que o usuário interage com a interface da aplicação. Podemos armazenar as páginas visitadas pelo usuário no cache do ASP.NET de que forma futuras requisições a estas páginas serão atendidas de forma mais eficiente diretamente desta área de armazenamento intermediário.
O Cache de dados também pode ajudar a expandir os recursos do servidor de bancos dados. Com o armazenamento de dados freqüentemente utilizados no cache, o número de requisições feitas ao banco de dados é reduzido, o que significa que uma maior número de usuários poderá ser atendido pela aplicação [4]
- Disponibilidade - Eventualmente , os serviços que disponibilizam informações para aplicação podem estar indisponíveis. Com o armazenamento dos dados em um local distinto, a aplicação pode ter a capacidade de continuar a funcionar mesmo em situações de congestionamento de rede , ou até falhas de hardware. Por exemplo , a cada requisição feita pelo usuário na aplicação , podemos retornar a informação solicitada e adicionalmente guardar os dados em cache. Caso o banco de dados fique indisponível, a aplicação ainda poderá atender as solicitações com o uso dos dados armazenados em cache, até que o banco de dados esteja novamente disponível[4]
O CAB é uma extensão ao .NET que tem como objetivo tornar acessível um serviço genérico de cache para aplicações.
10. Conclusão
A implantação de um framework na plataforma .Net utilizando os applications blocks padroniza o desenvolvimento das aplicações, reduz a quantidade de codificação que o desenvolvedor necessita escrever. Isto gera uma produtividade e a confiabilidade das aplicações, garantindo uma padronização nos projetos a serem desenvolvidos. As vantagem de implementar um framework é possível ter um maior controle sobre a codificação da aplicação diretamente ou indiretamente através da subcontratação de uma empresa terceirizada para o desenvolvimento. A partir da implementação é possível reutilizar a codificação da aplicação para novas aplicações , tendo como beneficio a produtividade e a confiabilidade do funcionamento da aplicação e futuras aplicações.Net a serem desenvolvidas. Desta forma garante-se um desenvolvimento com segurança e um produto final padronizado e confiável .
11. Referências Bibliográficas
[1] - http://msdn.microsoft.com/libray/default.asp?=url=/libray/em-us/dnba/html/daag-rm.asp
[2] - http://msdn.microsoft.com/libray/default.asp?url=/libray/em-us/dnba/html/cachingBlock.asp
[3] - [Alexander79] Alexander, Christopher. The Timeless Way of Building. Oxford University Press 1979
[4] - [PnPO3] patterns & practices, Microsoft Corporation. "Enterprise Solution Patterns Using Microsoft.NET" MSDN Libray