Arquitetura Importa
Sem a arquitetura própria, um aplicativo desiste de sua manutenção, flexibilidade e
escalabilidade e se torna muito rígido para sobreviver. Até os desenvolvedores originais do aplicativo
tem dificuldade em diagnosticar problemas ou manutenção de código. A ausência de uma estrutura própria
promove códigos monolíticos e força o sistema a ser desenhado baseado em forumlários.
Quando a lógica de negócios atual e o acesso a dados atual são limitados ao formulário, práticas de
orientação a objetos não podem ser forçadas e o código é duplicado. Se regras de negócios forem trocadas
ou o acesso a dados for alterado, cada repetição de código tem que ser modificados e retestados.
Uma aplicação tem que conter fronteiras para separar acesso a dados, lógica de negócios e
interface ao usuário em camadas separadas. Uma vez separada, cada camada pode ser facilmente centralizada
e reusada ao invés de repetida. O uso do StrataFrame habilita qualquer desenvolvedor a facilmente e eficientemente
criar uma aplicação que é dividida em camadas de acesso a dados, lógica de dados e interface de usuários.
Camadas vs Níveis (Layers vs. Tiers)Uma camada é definida como um módulo separado do aplicativo por um processo e/ou
fronteira de rede enquanto uma camada é definida como uma separação lógica em um camada única.
O modelo de uma camada, como o Microsoft Access, tem todas as camadas rodando em um único processo no
em um único computador. O modelo de duas camadas, como Cliente/Servidor, tem duas camadas separadas
rodando em dois computadores separados. Um aplicativo com mais de duas camadas
pode involver muitos processos em múltiplos computadores. Adicionando camadas a uma aplicação
incrementa a complexibilidade, diminui a manutenção e causa problemas de performance devido a
latência ocorrida quando cruzamos a fronteira da rede/processo. Alguns aplicativos,
de qualquer forma, requerem camadas adicionais, além destas de cliente e servidor, devido a alta escalabilidade
(>500 clientes) e requerimentos de segurança. Desconsiderando o número de camadas usadas, uma arquitetura propriamente de camadas é algo necessário
para qualquer aplicativo. Uma arquitetura que divide uma aplicação em camadas múltiplas
promovem simplcidade, escalabilidade, manutenciabilidade e reuso de código.
StrataFrame é um framework de Aplicações de 3-camadas, e o usando, as vantagens de
uma arquitetura em camadas podem ser alcançadas com pouca a quase nenhum desenho pelo desenvolvedor.
Figura 1
representação da arquitetura do aplicativo que pode ser alcançado usando o StrataFrame.
Outras Arquiteturas de AplicativosFat-Client -- Uma aplicação Fat-Client é aquela em qual todo acesso a dados é lógica de negócios é
incluída nos formulários da aplicação. Sem centralização, as regras de negócios
e acesso a dados se tornan rígidos e não podem ser modificados rapidamente ou facilmente pelo desenvolvedor.
Desde que elas são inseridas nos formulários, mundaças irão geralmente quebrar a aplicação.
Veja figura 2 para um exemplo de aplicação Fat-Client.
Fat-Server -- A arquitetura Fat-Server foi criada como uma possível solução para os
problemas herdados da arquitetura Fat-Client. Em uma aplicação Fat-Server, a lógica de negócios
foi removida da interface do usuário e colocada dentro do servidor do banco de dados. Usando
procedures T-SQL armazenadas e triggers, toda a lógica da aplicação é manipulada
pelo camada do servidor ao invés da camada do usuário, centralizando a lógica de negócios e a tornado
mais legivel e fácil manutenção (Veja figura 3).
Enquanto a arquitetura Fat-Server resolve alguns problemas da arquitetura Fat-Client, ela também introduz
novos problemas. O servidor de banco de dados se torna um gargalo para o aplicativo desde que o servidor está
computando toda a lógica de negócios assim como hospedando o processo do banco de dados.
Adicionalmente, T-SQL não é uma linguagem de forte-tipagem, linguagem de programação de alto nível e impõe
muitas limitações ao desenvolvedor.
Lado-Cliente / Lado-Servidor -- Arquitetura Lado-Cliente / Lado-Servidor (CSSS) é uma combinação de ambas arquiteturas Fat-Client e
Fat-Server (Veja figura 4). Geralmente, uma aplicação CSSS é o resultado
de muitos anos extendendo e mantendo a aplicação. A aplicação não foi desenvolvida com a arquitetura
correta inicialmente e mantendo o código requer que as regras de negócios possam ser colocadas
em ambas as camadas do servidor e do cliente. A arquitetura CSSS não resolve quaisquer das limitações
do Fat-Client ou Fat-Server, mas apenas combina as limitações em um pacote.
Aplicativos StrataFrame em Camadas
A camada do cliente do aplicativo StrataFrame é dividida em 3 camadas distintas:
- Camada de Acesso a Dados
- Camada de Negócios
- Camada de Apresentação
A aplicação é facilmente mantida e extendida sendo as camadas livres das camadas vizinhas
e mudanças changes em uma camada não afetarão as outras. Se a regra de negócios
for mudada, o desenvolvedor deve somente modificar o código em um local no lugar ao invés
de visitar cada formulário na aplicação para mudanças. (See figura 5)
No aplicativo Strataframe, uma série de objetos de negócios armazena a regra de negócios da aplicação.
Instancias destes objetos de negócios são criadas para trabalharem com os formulários da aplicação.
Um único objeto de negócios pode trabalhar com ilimitados formulários, e um único formulário pode trabalhar com
ilimitados objetos de negócios. (Veja figura 6)
O trabalho foi feito pra você
Um framework de aplicativos é, por definição,
uma biblioteca de classes que pode ser reusada por qualquer numero de aplicações, economizando tempo dos desenvolvedores,
uma vez que não é requerido que eles reescrevam grandes blocos de código para cada aplicação.
StrataFrame é um Framework de Aplicativos de 3 camadas para ser usado com qualquer SQL, Oracle ou banco de dados OLE.
Todos acessos a dados, validação de dados não personalizada, e conexões com a interface do usuário é manipulada pelas
classes do framework.
Além de alcançar a correta arquitetura de uam apliação n-camadas e suas vantagens associadas,
usando StrataFrame da ao desenvolvedor os seguintes benefícios:
- GRANDE redução do tempo de desenvolvimento
- A biblioteca de classes do StrataFrame manipula todo o acesso a dados e conexão de dados para o desenvolvedor.
A única coisa que o desenvolvedor deve codificar é o layout da interface do usuário, e
a lógica de negócios personalizada.
- StrataFrame is firmemente integrado ao Visual Studio para prover métodos
para performance de tarefas rápidas como campos requeridos, alterando propriedades de objetos de negócios,
e manipulando e mantendo mapeamentos de objetos de negócios.
- Performance da aplicação
- O acesso a dados no StrataFrame é streamlined e eficiente devido as melhorias
no ADO.NET 2.0 e acesso a dados enfileirado (processamento assíncrono).
- Curva de aprendizado nominal
- StrataFrame é escrito inteiramente em .NET e não necessita que o programador aprenda
nenhum linguagem de script híbrida. Todo código pode ser escrito usando linguagens .NET
ex: VB.NET, C#, etc.
- Localização Total
- StrataFrame provê funcionalidade total para desenvolvedores localizarem labels,
títulos de formulários, etc. através de textos armazenados no banco de dados SQL ou em um arquivo XML.
- Mensagens na interface do usuário e mensagens de erro também podem ser localizadas usando
a mesma funcionalidade.
- Extensibilidade
- Enquanto o StrataFrame faz muitas tarefas comuns tpara o desenvolvedor, a maioria,
se não todas, as tarefas podem ser modificadas pelo desenvolvedor para extender o escopo do
StrataFrame.
- Um complemento completo de hooks é provisinado, permitindo a desenvolvedores a interagir
com sequencias de eventos e fluxo de dados.
- Fácil de usar
- Desenvolvedores não tem que “criar subterfúgios” no StrataFrame e são mais capacitados
que impedidos. Diferentemente de outros frameworks, StrataFrame não
passa do seu limite e tenta fazer "tudo" para os desenvolvedores.
Comparação: Aplicativos StrataFrame vs. Típico Aplicativo .NET
Em uma aplicação .NET típica, um DbDataAdapter é “colocado” em um formulário usando o form designer
do Visual Studio. O DbDataAdapter tem que ser manualmente configurado antes do desenvolvedor poder codificar
uma declaração DbCommand ou SELECT para reaver um DataSet do banco de dados. O DataSet
deve ser manualmente conectado a interface do usuário e qualquer validação de dados e regra de negócios
deve ser codificada com o formulário. Para criar um formulário adicional, os mesmos passos são repetidos.
Desenvolvendo formulários neste método segue-se um arquitetura monolítca e as limitações associadas
com uma aplicação sem camadas. (Veja figura 7)
Em uma aplicação StrataFrame, para criar um formulário, um ou mais objeto de negócios são “colocados” no
formulário usando o form designer do Visual Studio. O desenvolvedor pode conectar os controles dos formulários
aos objetos de negócios e o formulário está completo. Os objetos de negócios não precisam
estar configurados e o acesso a dados é permitido através dos objetos de negócios se unindo a Camada de Dados.
Toda a validação de dados e regras de negócios é armazenada nos objetos de negócios
(mapeado a uma tabela de banco de dados). O formulário demonstra um aplicação de camadas que reusa objetos de negócios
ao invés de forçar cada objeto a ser reprogramado ou modificado.
(See figura 8)
Tipos de Aplicativos StrataFrame- Aplicações WinForms em Camadas
- Aplicações WebForms em Camadas
- Aplicações n-Tiered usando camadas de Dados, Camadas de Negócios do StrataFrame para prover
acesso a dados e regras de negócios para web services ou SOAP middle tier.
Uma biblioteca de classes de regras de negócios criada no StrataFrame pode ser usada para um ou mais tipos de
aplicação (ex: os mesmos objetos de negócios podem ser usados para todos os tipos de aplicações)
Resumo- Versão Curta -- Desenvolva código de qualidade mais rápido do que antes
enquanto reduz custo de desenvolvimento!
Versão Longa –- Muitos livros e artigos foram escritos
sobre a teoria de frameworks em camadas mas poucos desenvolvedores atualmente produzem
um modelo funcional. Se você está interessado em criar aplicações com o melhor framework
que a ciência da computação pode atualmente oferecer: StrataFrame é a sua resposta. É fácil de usar
e não ficará no seu caminho. Adicionalmente, código fonte é disponibilizado se você quiser dar uma olhada
ou adicionar um evento, método ou hook. A decisão não é decidir comprar o StrataFrame – mas decidir se você tirará vantagem
deste realmente inovador, excitante e bem desenvolvido produto. Lembre-se da definição de insanidade de Einstein que é quando você continua a repetir, repetir e repetir
a mesma prática, esperando ter resultados diferentes.
|
|