sábado, 27 de agosto de 2011

ARQUITETURA DE DESENVOLVIMENTO (MVC)

Model-view-controller
O Model-view-controller (MVC) é um padrão de arquitetura no desenvolvimento de softwares que tem como objetivo separar a lógica de negócio da lógica de apresentação, permitindo o desenvolvimento, teste e manutenção isolado de ambos. Em outras palavras, esse padrão permite dividir um sistema em 3 (três) camadas:



Camada de Modelo (model): Representa os dados, as classes e os domínios da aplicação.  É o coração da aplicação.
  • Modela os dados e o comportamento por atrás do processo de negócios.
  • É um encapsulamento de dados e de comportamento independente da apresentação.
Camada de Visão (view): Apresenta as telas (layouts) da aplicação. Não esta preocupada em como a informação foi obtida ou onde ela foi obtida apenas exibe a informação.
  • Inclui os elementos de exibição no cliente : HTML, XML, ASP, Applets, PHP, Java.
  • É a camada de interface com o usuário.
  • É usada para receber a entrada de dados e apresentar o resultado.
Camada de Controle (controller): Trabalha na camada de entrada de dados, ele também é responsável por validar, filtrar e gravar esses dados no banco de dados. Determina o fluxo da apresentação servindo como uma camada intermediária entre a camada de modelo e a de visão.
  • Controla e mapeia as ações.

Vantagens do modelo MVC :

  1. Como o modelo MVC gerencia múltiplos visualizadores usando o mesmo modelo é fácil manter, testar e atualizar sistemas múltiplos.
  2. É muito simples incluir novos clientes apenas incluindo seus visualizadores e controles.
  3. Torna a aplicação escalável.
  4. É possível ter desenvolvimento em paralelo para o modelo, visualizador e controle, pois são independentes. 
Desvantagens do modelo MVC:
  1. Requer uma quantidade maior de tempo para analisar e modelar o sistema.
  2. Requer pessoal especializado.
  3. Não é aconselhável para pequenas aplicações.
Principais Plataformas/Linguagens de Desenvolvimento:
  • .NET;
  • ASP;
  • ASP.NET;
  • Java;
  • Perl;
  • PHP;
  • Python;
  • Ruby.

 Dividir para conquistar. (Anatolii Karatsuba)

Até o próximo post.

domingo, 21 de agosto de 2011

Introdução ao BPM

BPM (Business Process Management)
A partir de 2003 o BPM começou a ser utilizado em grande escala por organizações interessadas em novas soluções de controle de suas estratégias empresariais. O BPM (Business Process Management) conhecida como Gestão da Performance Corporativa ou Gestão do Desempenho Empresarial é uma categoria de sistemas focada em acompanhamento de perfomance dos negócios de uma organização.

O BPM surgiu com a implementação dos sistemas integrados de gestão (ERPs) nas grandes empresas. Os sistemas ERPs contêm uma infinidade de regras e tomada de decisões de longo prazo. Com o uso do BPM é possível administrar essas regras e possibilitar aos analistas de processos a fazerem alterações na regra de negócio sem alterar a programação.

O objetivo do BPM é acompanhar sistematicamente como os recursos (físicos, financeiros, humanos, tecnológicos etc) de uma organização são alocados e convertidos em ações operacionais na busca das metas organizacionais, a partir da definição de prioridades.

O BPM permite a análise, definição, execução, monitoramento e administração de processos, incluindo o suporte para a interação entre pessoas e aplicações informatizadas.

Como consequência de uma plataforma de BPM totalmente consolidada com o ERP, é possível tomar decisões de longo prazo baseadas em simulações de cenários, aplicação de premissas e identificação das variáveis do negócio. Sobre essas variáveis é possível aplicar variações a fim de se entender a reação do negócio e as instabilidades no contexto sócio-econômico, objetivando garantir a eficácia da estratégia.

As soluções de BPM visam padronizar os processos corporativos com o propósito de medir, analisar e otimizar a gestão do negócio e os processos de análise financeira da empresa.

QUEM VENCE A DISPUTA ENTRE BANCO DE DADOS? (PARTE 2)

Continuando o artigo sobre "Quem vence a disputa entre banco de dados?", veremos comparações entre os sistemas gerenciadores de banco de dados nos seguintes aspectos:
  • Capacidades;
  • Tipos de Dados;
  • Objetos;
  • Particionamento;
  • Controle de Acesso.

Capacidades de Banco de Dados

Informações sobre capacidades do banco de dados







Os Tipos de Dados
Informações os tipos de dados e suporte
Objetos

Informações sobre objetos

Nota: Ambos function e procedure referem-se a rotinas internas escritas em SQL.
 Particionando

Informações sobre particionamento

Controle de Acesso

Informações sobre controle de acesso


Observação: Como o mercado de banco de dados está em alta, as mantenedoras dos sistemas gerenciadores de banco de dados lançam vários pacotes de atualização dos seus produtos, desta forma, fique atento quanto as características e novas funcionalidades criadas.

Veja: QUEM VENCE A DISPUTA ENTRE BANCO DE DADOS 

Finalizamos essa matéria sobre as características e comparações entre sistemas gerenciadores de banco de dados. Até o próximo post. 

sábado, 13 de agosto de 2011

Doze Erros em SEO

Neste artigo vamos listar os doze principais erros em SEO*.

Otimização de Motores de Busca
*SEO (Search Engine Optimization) é o conjunto de técnicas e métodos com o objetivo de potencializar e melhorar o posicionamento de um site nas páginas de resultados orgânicos nos sites de busca.

1- Site pesado, geralmente com animações pesadas em flash. 
2- Título do site muito grande.
3- URLs infinitas com vários caracteres diferentes.
4- Manipulação de palavras-chaves, ou seja, colocação de palavras-chaves que não represente fielmente o seu site.
5 - Má divulgação de seu site em outros sites da internet.
6- Layout feito em frame e/ou tabelas.
7- Propaganda excessiva nas páginas do site.
8- Abrir uma infinidade de janelas pop-ups, com anúncios de tudo o que quiser.
9- Imagens muito carregadas. 
10- Não padronização de linguagens e programação.
11- Não enviar o sitemap do seu site com todos os links atualizados para o Google e outros buscadores.
12- Não revisar os links quebrados do seu site.

 No próximo post de SEO, vou dar algumas dicas para melhorar os resultados nos buscadores.

quarta-feira, 10 de agosto de 2011

Procedure de Backup e Restore no SQL Server

Backup e restauração de bases de dados é um procedimento muito repetitivo e importante em administração de banco de dados, pois utilizamos esse processo para replicar base de dados para testes de sistemas e entre outras finalidades.
Para agilizar esse processo, podemos criar uma Stored Procedure para realizar o backup de uma base de origem e efetuar a restauração para a base de destino. 

Nota: Stored Procedure é uma coleção de instruções implementadas com linguagem T-SQL, que, uma vez armazenada, ficam dentro do servidor de forma pré-compilada, aguardando uma requisição de um usuário do banco de dados. A utilização de Stored Procedures é uma técnica eficiente de executarmos operações repetitivas. Ao invés de digitar os comandos cada vez que determinada operação necessite ser executada, criamos um Stored Procedure e o chamamos.


 

1º Passo - Abrir uma conexão com o SQL Server.

2º Passo - Clicar em New Query para executar o comando.

3º Passo - Escolher a base de dados para salvar a Stored Procedure.

4º Passo - Digitar a procedure de alteração conforme abaixo.

ALTER PROCEDURE [dbo].[REPLICACAO]
    @DBORIGEM VARCHAR(500), /*Banco de dados de Origem*/
    @DBDESTINO VARCHAR(500) /*Banco de dados de destino*/
AS
BEGIN

DECLARE @DEVICE VARCHAR(500) /*RECEBE O NOME DO BACKUP*/
DECLARE @PATH VARCHAR(500) /*RECEBE O CAMINHO ONDE SERÁ SALVO O BACKUP*/

/*CONCATENA NOME DO BANCO DESTINO + DATA + EXTENSÃO DE BACKUP .BAK */
SET @DEVICE =    @DBDESTINO + '_' + CAST(DATEPART (mi,GETDATE())AS CHAR(2)) +
                CAST(DATEPART (ss,GETDATE())AS CHAR(2)) +
                '.bak'

SET @PATH = 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL\BACKUP\' + @DEVICE

/*ADICIONA UM DISPOSITIVO DE BACKUP*/
EXEC sp_addumpdevice 'disk', @DEVICE ,@PATH

/*CRIA BACKUP*/
BACKUP DATABASE @DBORIGEM TO DISK = @PATH

DECLARE @BASE VARCHAR(500) /*RECEBE CAMINHO DO BACKUP DE DADOS*/
DECLARE @LOG VARCHAR(500) /*RECEBE CAMINHO DO BACKUP DE LOG*/
DECLARE @DBORIGEMDATA VARCHAR(500) /*RETORNA BANCO DE ORIGEM + BACKUP DE DADOS*/
DECLARE @DBORIGEMLOG VARCHAR(500) /*RETORNA BANCO DE ORIGEM + BACKUP DE LOG*/

SET @BASE = 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL\data\' + @DBDESTINO + '.MDF'
SET @LOG = 'C:\Arquivos de programas\Microsoft SQL Server\MSSQL\data\' + @DBDESTINO + '_Log.LDF'

SET @DBORIGEMDATA = @DBORIGEM + '_Data'
SET @DBORIGEMLOG = @DBORIGEM + '_Log'

/*REALIZA A RESTAURAÇÃO DA BASE DE DADOS COM OS ARQUIVOS .BAK, .MDF E .LDF*/
RESTORE DATABASE @DBDESTINO
    FROM DISK = @PATH
    WITH
    MOVE @DBORIGEMDATA TO @BASE,
    MOVE @DBORIGEMLOG TO @LOG,
    NOUNLOAD, STATS = 10, REPLACE

/*PROCEDIMENTO PARA DELETAR BACKUP APÓS A RESTAURAÇÃO*/
EXEC SP_DROPDEVICE @DEVICE,'DELFILE'

BACKUP LOG @DBDESTINO WITH TRUNCATE_ONLY

DBCC SHRINKDATABASE (@DBDESTINO,0,TRUNCATEONLY) /*ZERA O ÍNDICE*/

END

5º Passo - Após a digitação dos comandos, clicar no botão Execute ou pressionar a tecla F5.

6º Passo - Chamar a Stored Procedure através do comando:

EXEC REPLICACAO 'DBORIGEM', 'DBDESTINO'

Até o próximo post.

domingo, 7 de agosto de 2011

QUEM VENCE A DISPUTA ENTRE BANCO DE DADOS?

Dados FGV-EAESP
Atualmente os SGBDs (sistemas gerenciadores de banco de dados) competem entre si para ver quem ganha a disputa no mercado corporativo. Hoje, o banco de dados Oracle possui 36% do mercado nacional seguido pelo SQL Server com 34%, segundo pesquisa da FGV-EAESP realizada em janeiro de 2011.

Neste artigo, vamos detalhar o uso dos principais sistemas gerenciadores de banco de dados nos seguintes cenários: informações gerais, suporte ao sistema operacional, características, limites, tabelas e exibições, índices.




Informações Gerais

Informações Gerais

Suporte a Sistema Operacional

Suporte pelos Sistemas Operacionais



Características

Características
* atomicidade, consistência, isolamento, durabilidade.
* Codificação de caracteres.
* Interface gráfica de usuário.

Limites

*dados aproximados.

Tabelas e Exibições


Índices


No próximo post sobre banco de dados, vamos ver capacidades, tipo de dados, objetos, particionamento e controle de acesso.


sexta-feira, 5 de agosto de 2011

Desenvolvimento ágil de software

O desenvolvimento ágil é um conjunto de metodologias de desenvolvimento de software. Cada método tenta minimizar o risco de desenvolvimento de software em curto período. Esse processo chamamos de Iteração.
Cada iteração é um mini-projeto do seu todo com as etapas de: planejamento, análise de requisitos, projeto, codificação, teste e documentação.

Métodos ágeis enfatizam comunicações em tempo real, com todas as pessoas necessárias para terminar o software, tais como: os programadores, seus clientes (clientes são as pessoas que definem o produto, eles podem ser os gerentes, analistas de negócio, ou realmente os clientes) e testadores.


Objetivos do desenvolvimento ágil:
  • Garantir a satisfação do consumidor entregando rapidamente e continuamente softwares funcionais;
  • Softwares funcionais são entregues frequentemente (semanas, ao invés de meses);
  • Softwares funcionais são a principal medida de progresso do projeto;
  • Até mesmo mudanças tardias de escopo no projecto são bem-vindas;
  • Cooperação constante entre pessoas que entendem do negócio e desenvolvedores;
  • Projetos surgem através de indivíduos motivados, entre os quais existe relação de confiança;
  • Design do software deve prezar pela excelência técnica;
  • Simplicidade;
  • Rápida adaptação às mudanças;
  • Indivíduos e interações mais do que processos e ferramentas;
  • Software funcional mais do que documentação extensa;
  • Colaboração com clientes mais do que negociação de contratos;
  • Responder a mudanças mais do que seguir um plano.
Principais metodologias de desenvolvimento:

  • XP Programação extrema;
  • Scrum;
  • Feature Driven Development;
  • DSDM;
  • Test Driven Development.
Benefícios do desenvolvimento ágil:
  • Código bem estruturado e limpo;
  • Desenvolvimento rápido;
  • Evita reprocesso (programação);
  • Evita planejamento excessivo e custo muito alto;
  • Dá mais resultados.
 Obs.: Nos próximos posts estudaremos cada um dos modelos agéis acima.

Twitter Delicious Facebook Digg Stumbleupon Favorites More