SlideShare uma empresa Scribd logo
SEMINÁRIO 2011/2012
FRAMEWORKS
Arlindo Santos (acsantos@ipb.pt)
Seminário   frameworks
2011/2012
            O que é?

• “Framework é um conjunto de classes que
  colaboram para realizar uma
  responsabilidade para um domínio de um
  subsistema da aplicação.”
                       • Frameworks

•    (Fayad e Schmidt)




                            Arlindo Santos   09-05-2012   2
Seminário   frameworks
2011/2012
            O que é?

• Um framework, em desenvolvimento de
  software, é uma abstração que une
  códigos comuns entre vários projetos de
  software fornecendo uma funcionalidade
  genérica.




                             Arlindo Santos   09-05-2012   3
Seminário   frameworks
2011/2012
            O que é?

• Ao contrário das bibliotecas, é o
  framework quem dita o fluxo de controle
  da aplicação, chamado de Inversão de
  Controle.




                             Arlindo Santos   09-05-2012   4
Seminário   frameworks
2011/2012
            Frameworks

• Framework de software compreende de
  um conjunto de classes implementadas
  em uma linguagem de programação
  específica, usadas para auxiliar o
  desenvolvimento de software.




                           Arlindo Santos   09-05-2012   5
Seminário   frameworks
2011/2012
            O que é?
Framework é uma
arquitectura, um conjunto
de ficheiros organizados,
com uma série de
funções, rotinas e
variáveis, que servem
para nos poupar o tempo
de “REIVENTAR A
RODA” diversas e
diversas vezes, para cada
novo projeto

                            Arlindo Santos   09-05-2012   6
Seminário   frameworks
2011/2012
            Problema vs Solução

• Qual é o problema?
  – Programar é difícil.
• Onde está a maior dificuldade?
  – “O Design de Interface e a sua construção de
    maneira funcional é a chave da propriedade
    intelectual de um software e é bem mais difícil
    de ser criada ou recriada do que o código
    fonte.” - Peter Deutsch.


                                  Arlindo Santos   09-05-2012   7
Seminário   frameworks
2011/2012
            Problema vs Solução

• Ou seja:
  – os requisitos funcionais de um software são
    facilmente copiados por outro, uma boa
    solução de interface não.




                               Arlindo Santos   09-05-2012   8
Seminário   frameworks
2011/2012
            Problema vs Solução

• Solução:
  – Temos que fornecer formas de re-uso que
    vão além de código: re-uso de análise,
    design, código.
  – Framework orientado a objeto.




                               Arlindo Santos   09-05-2012   9
Seminário   frameworks
2011/2012
            Problema vs Solução

• Onde o framework entra…
  – Um framework captura a funcionalidade
    comum a várias aplicações.
  – As aplicações devem ter algo razoavelmente
    grande em comum: pertencer a um mesmo
    domínio de problema.




                               Arlindo Santos   09-05-2012   10
Seminário   frameworks
2011/2012
            Problema vs Solução
• Um framework é uma
  aplicação quase
  completa, mas com
  pedaços que faltam!
• Ao usar um
  framework, o trabalho
  consiste em criar os
  pedaços que são
  específicos para sua
  aplicação.

                            Arlindo Santos   09-05-2012   11
Seminário   frameworks
2011/2012
            Padrões vs frameworks
• Padrões de projeto de software não são
  frameworks, pois padrões possuem um nível
  maior de abstração.
• Um framework inclui código, diferentemente
  de um padrão de projeto.
• Um framework pode ser modelado com
  vários padrões de projeto, e sempre
  possuem um domínio de uma aplicação
  particular, algo que não ocorre nos padrões e
  projeto de software.

                                Arlindo Santos   09-05-2012   12
Seminário   frameworks
2011/2012
            Vantagens

• Redução de custos
• Redução de time-to-market
• Deteção de erros – cada funcionalidade
  está separada por blocos
• Segurança
• Extensibilidade
• Ajuda fácil - comunidade


                           Arlindo Santos   09-05-2012   13
Seminário   frameworks
2011/2012
            Vantagens
• A longo prazo - Despois do período de
  familiarização, as vantagens aparecem
• Produtividade - Como toda a equipa usa um
  determinado framework, então usam as
  mesmas convenções, classes e bibliotecas, a
  manutenção de um programa fica muito mais
  ágil (produtividade);
• Eliminação das tarefas repetitivas
• Facilidade na geração de testes
• Geração de documentação

                              Arlindo Santos   09-05-2012   14
Seminário   frameworks
2011/2012
            Vantagens
• Maximização de re-uso (análise, design, código,
  testes).
• Programadores concentram-se em adicionar valor
  ao invés de reinventar a roda.
• Menos manutenção.
• A herança permite alterar ou adicionar
  funcionalidades.
• Estabilização melhor do código (menos defeitos)
  devido ao seu uso em várias aplicações.
• Uso de tecnologias embutidas

                                 Arlindo Santos   09-05-2012   15
Seminário   frameworks
2011/2012
            Vantagens
• Melhor consistência e compatibilidade entre
  aplicações.
• Framework oferece uma forma de empacotar
  o conhecimento de especialistas sobre
  domínios de problemas.
• Não se perde o conhecimento com a saída
  de especialistas e o conhecimento pode ser
  usado/estudado sem a presença do
  especialista.
• Resultado: criação de patrimônio estratégico
  da empresa (Strategic Asset Building).

                               Arlindo Santos   09-05-2012   16
Seminário   frameworks
2011/2012
            Desvantagens

• Dificuldade de aprendizagem
• Construir um framework é complexo
- Necessita de planeamento
• Quem pode pensar em longo prazo quando
  se está competindo "On Internet time"?
- Necessário modificar o processo de
  desenvolvimento e criar novos incentivos
- Benefícios são realizados em longo prazo

                             Arlindo Santos   09-05-2012   17
Seminário   frameworks
2011/2012
            Características Básicas
•Um framework deve ser reusável:
   – É o propósito final!
•Para ser reusável, deve primeiro ser usável:
   – Bem documentado
   – Fácil de usar
• Deve ser extensível:
   – O framework contém funcionalidade abstrata             (sem
     implementação) que deve ser completada
• Deve ser eficiente:
   – Devido a seu uso em muitas situações, algumas das quais
     poderão necessitar de eficiência
• Deve ser completo:
   – Para endereçar o domínio do problema pretendido

                                        Arlindo Santos   09-05-2012   18
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• MVC
• ActiveRecord
• AJAX (Asynchronous Javascript and XML)
• Internacionalização: É o processo de
  possibilitar que seja facilmente alterada a
  linguagem da interface e de mensagens de
  uma determinada aplicação.
• ORM
• …

                                Arlindo Santos   09-05-2012   19
Seminário   frameworks
2011/2012
            Tecnologias embutidas

• MVC




                             Arlindo Santos   09-05-2012   20
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• MVC
  – View
      • É a interface do utilizador, é a transformação dos
        dados do Model para que o utilizador possa interagir
        com o sistema.
  – Model
      • Model é a camada de lógica do MVC que é usada pela
        camada de apresentação e de acesso ao espaço de
        armazenamento (ex: base de dados).
  – Controler
      • O controller processa e responde a eventos dos
        utilizadores (GET, POST e entre outros), podendo
        alterar o estado do Model.


                                          Arlindo Santos   09-05-2012   21
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• MVC
  – Vantagens
      • Como o modelo MVC gere múltiplas formas de
        visualização usando o mesmo modelo, e é fácil manter,
        testar e atualizar sistemas múltiplos;
      • É muito simples incluir novos clientes. Inclui-se apenas
        novos views e controles;
      • Torna a aplicação escalável;
      • É possível ter um desenvolvimento em paralelo para o
        modelo, visualizador e controle pois são
        independentes;
      • É mais fácil gerir a complexidade da aplicação
        dividindo-a em modelo, visualizador e controlador
        (MVC).

                                           Arlindo Santos   09-05-2012   22
Seminário   frameworks
2011/2012
            Tecnologias embutidas

• MVC
  – Desvantagens
      • Requer uma quantidade maior de tempo para
        analisar e modelar o sistema;
      • Requer pessoal com conhecimento especializado;
      • Não é aconselhável para pequenas aplicações.




                                     Arlindo Santos   09-05-2012   23
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• ORM (Object-relational mapping)
   – O ORM é uma técnica de desenvolvimento utilizada para reduzir
     a impedância da programação orientada a objetos utilizando
     base de dados relacionais. As tabelas do base de dados são
     representadas através de classes e os registos de cada tabela
     são representados como instâncias das classes
     correspondentes.
   – Com esta técnica, o programador não precisa de se preocupar
     com os comandos em linguagem SQL; irá usar uma interface de
     programação simples que faz todo o trabalho de persistência.
   – Não é necessária uma correspondência direta entre as tabelas
     de dados e as classes do programa. A relação entre as tabelas
     onde originam os dados e o objeto que os disponibiliza é
     configurada pelo programador, isolando o código do programa
     das alterações à organização dos dados nas tabelas do banco
     de dados.


                                            Arlindo Santos   09-05-2012   24
Seminário     frameworks
 2011/2012
               Tecnologias embutidas
• Validation
   – Indica se o framework tem alguma estrutura de validação embutida em
     sua estrutura.
• Auth module
   – Indica se a estrutura tem um módulo embutido para assegurar a
     autenticação do utilizador.
• Modules
   – Indica se a estrutura do framework é modularizada por exemplo, possui
     um parser da alimentação de RSS, o módulo de separação de pdf´s ou
     etc;
• Tableless
   – O nome Tableless é um nome mais “publicitário” para se referir a sites
     que seguem os Padrões. Os sites Tableless não são construídos
     usando as tables. Elas usam XHTML para apresentar a informação e
     as Folhas de Estilo (CSS) para formatar essa informação.
     Pelo motivo de as tables não serem usadas para a
     estruturação, essa metodologia se chama Tableless.


                                                   Arlindo Santos   09-05-2012   25
Seminário   frameworks
2011/2012
            Tecnologias embutidas
• ActiveRecord
  – Abstrai o programador de conhecer a fundo uma
    linguagem de manipulação de dados, como a SQL,
    além de manter toda a aplicação desenvolvida no
    paradigma orientado a objetos.
• Db objects
  – Indica se a estrutura inclui outros objetos da base de
    dados, como classes de linguagem de programação
    orientada a objetos
• Templates
  – Os templates, ou modelos, têm por finalidade
    separar o design, a parte HTML, da programação,
    no nosso caso, o PHP.

                                       Arlindo Santos   09-05-2012   26
Seminário        frameworks
    2011/2012
                     Tecnologias embutidas
•    AJAX (Asynchronous Javascript and XML)
      – Toda página AJAX está em um objeto chamado XMLHTTPRequest, o qual permite
        que sejam feitas requisições assíncronas ao servidor web, não precisando de
        atualizações na página ou espera por parte do utilizador.
•    Caching
      – Caching é o melhor recurso para a redução de processamento do servidor
        envolvendo a renderização e lógica da camada de acesso a dados.
      – Podemos dividir o caching em três tipos básicos:
           •   Cache de Respostas (OutputCache)
                 –   O cache de respostas é a forma mais simples de se tirar proveito do sistema de cache, sem
                     necessidade de redesenho ou alterações de código - o conteúdo a ser enviado ao cliente (resposta) é
                     armazenado em memória e disponibilizado para as próximas requisições. De fato, todo o conteúdo
                     dinâmico pode ser armazenado em mecanismos que suportem o HTTP 1.1 (servidor web, navegadores
                     e proxies) de forma que requisições subsequentes sejam servidas diretamente a partir do cache sem
                     execução de código.
           •   Cache de Fragmento
                 –   Existem situações onde o cache de toda uma página de resposta não é adequado. Um caso
                     óbvio, seria àquele no qual o desenho da aplicação requerer que algumas partes/seções de uma
                     página específica tenham versões específicas para um determinado grupo de utilizadores (e.g. menu
                     baseado no perfil do utilizador) e que outras partes sejam comuns à todos (e.g. conteúdo
                     genérico c/ notícias gerais). Este é o cenário ideal para o uso do fragment caching.
           •   Cache de Objetos
                 –   O objeto de Cache é recriado a cada reinício da aplicação, o que nos lembra uma certa similaridade
                     com o objeto Application. A principal diferença entre os dois reside no fato de que o objeto de Cache
                     proporciona funcionalidade específicas, tais como dependências e políticas de expiração.




                                                                                   Arlindo Santos              09-05-2012    27
Seminário    frameworks
 2011/2012
              Tecnologias embutidas
• Integração PEAR
   – Pear é um sistema de repositório e de distribuição para
     componentes reutilizáveis de PHP.
   – Pear é composto por:
       • Repositório organizado e padronizado de código aberto para programadores de
         PHP Sistema para a distribuição e manutenção de pacotes.
       • PFC (PHP Foundation Classes).
       • Estilo padronizado de código.
       • Sites e listas de discussão para a comunidade de colaboradores.
   – O código PEAR é dividido em “pacotes”. Cada pacote é um projeto
     separado com sua própria equipe de desenvolvimento, número de
     versão, ciclo da publicação, documentação e uma relação definida
     a outros pacotes.
• Internacionalização
   – É o processo de possibilitar que seja facilmente alterada a linguagem
     da interface e de mensagens de uma determinada aplicação.




                                                         Arlindo Santos     09-05-2012   28
Seminário   frameworks
2011/2012
            Documentação detalhada
• Uma boa documentação não é somente uma
  descrição do que é a ferramenta e para que
  ela serve.
  – é toda a descrição histórica,
  – todo um apoio para os programadores como
    exemplos práticos de sua aplicação,
  – detalhes da sua criação e implementação,
  – descrição do comportamento e funcionamento da
    mesma,
  – fóruns de discussão,
  – e demais conceitos abordados acima


                                 Arlindo Santos   09-05-2012   29
Seminário   frameworks
2011/2012
            Comparação das Frameworks




                           Arlindo Santos   09-05-2012   30
Seminário   frameworks
2011/2012
            Comparação das Frameworks




                           Arlindo Santos   09-05-2012   31
Seminário   frameworks
2011/2012
            Bibliografia

• Fayad, M. E. and Schmidt, D. C. (1997).
  Object-oriented application frameworks.
  Commun. ACM, 40(10):32–38.




                             Arlindo Santos   09-05-2012   32

Mais conteúdo relacionado

Mais procurados

Introdução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebIntrodução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento Web
Anderson Luís Furlan
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
Igor Takenami
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
Daniel Brandão
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
Daniel Fernandes Costa
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
thaisedd
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasGustavo Gonzalez
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
Elaine Cecília Gatto
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
Leonardo Soares
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
vini_campos
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
Andrei Bastos
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
Clayton de Almeida Souza
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
Nathalia Sautchuk Patricio
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
Jéssica Nathany Carvalho Freitas
 
Programação Web com HTML e CSS
Programação Web com HTML e CSSProgramação Web com HTML e CSS
Programação Web com HTML e CSS
Victor Adriel Oliveira
 

Mais procurados (20)

Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Introdução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento WebIntrodução ao Front-end no Desenvolvimento Web
Introdução ao Front-end no Desenvolvimento Web
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Uml
UmlUml
Uml
 
Estrutura de dados
Estrutura de dadosEstrutura de dados
Estrutura de dados
 
Linguagem PHP
Linguagem PHPLinguagem PHP
Linguagem PHP
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Aula 6 banco de dados
Aula 6   banco de dadosAula 6   banco de dados
Aula 6 banco de dados
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Introdução a programação para a Internet
Introdução a programação para a InternetIntrodução a programação para a Internet
Introdução a programação para a Internet
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Programação Orientado a Objetos
Programação Orientado a ObjetosProgramação Orientado a Objetos
Programação Orientado a Objetos
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Programação Web com HTML e CSS
Programação Web com HTML e CSSProgramação Web com HTML e CSS
Programação Web com HTML e CSS
 

Semelhante a Frameworks de desenvolvimento web

Reutilização
ReutilizaçãoReutilização
Reutilização
emjorge
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
Jhordam Siqueira
 
DDD
DDDDDD
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKRyan Padilha
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
ssuser648be2
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Rodrigo Kono
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
Mário Meyrelles
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
Edjalma Queiroz da Silva
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
Luis Fernando Marques
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
Daniel Brandão
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
Fernando Henrique
 
Desenvolvimento baseado em componentes
Desenvolvimento baseado em componentesDesenvolvimento baseado em componentes
Desenvolvimento baseado em componentes
Dávisson Húdson Chaves Bernadete
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
Ítalo Bandeira
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
Alexandre Andrade
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
Eric Gallardo
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
Jaydson Gomes
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídiaFábio Costa
 

Semelhante a Frameworks de desenvolvimento web (20)

Reutilização
ReutilizaçãoReutilização
Reutilização
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvc
 
DDD
DDDDDD
DDD
 
Plataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDKPlataforma Android: Produtividade Além do SDK
Plataforma Android: Produtividade Além do SDK
 
Aula05 frameworks
Aula05 frameworksAula05 frameworks
Aula05 frameworks
 
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net coreConhecimentos para tomar atitude e migrar sua aplicação para asp.net core
Conhecimentos para tomar atitude e migrar sua aplicação para asp.net core
 
Introdução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NETIntrodução a arquitetura de sistemas com .NET
Introdução a arquitetura de sistemas com .NET
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Introdução C#
Introdução C#Introdução C#
Introdução C#
 
RAD
RADRAD
RAD
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: Desenvolvedor
 
Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0Principais novidades do Entity Framework 5.0
Principais novidades do Entity Framework 5.0
 
Desenvolvimento baseado em componentes
Desenvolvimento baseado em componentesDesenvolvimento baseado em componentes
Desenvolvimento baseado em componentes
 
DDD – Domain Driven Design
DDD – Domain Driven DesignDDD – Domain Driven Design
DDD – Domain Driven Design
 
Usando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimentoUsando MVC para agilizar o desenvolvimento
Usando MVC para agilizar o desenvolvimento
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014
 
Criando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMindCriando Aplicações .NET com o TheWebMind
Criando Aplicações .NET com o TheWebMind
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 

Mais de Arlindo Santos

Marketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégiasMarketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégias
Arlindo Santos
 
Mobile marketing
Mobile marketingMobile marketing
Mobile marketing
Arlindo Santos
 
Temas dos trabalhos práticos
Temas dos trabalhos práticosTemas dos trabalhos práticos
Temas dos trabalhos práticos
Arlindo Santos
 
Documento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação DigitalDocumento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação Digital
Arlindo Santos
 
Conhecer os clientes e influenciadores
Conhecer os clientes e influenciadoresConhecer os clientes e influenciadores
Conhecer os clientes e influenciadores
Arlindo Santos
 
Workshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de ValpaçosWorkshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de Valpaços
Arlindo Santos
 
Dtd
DtdDtd
Gestão web sites - visão para além das questões técnicas
Gestão web sites  - visão para além das questões técnicasGestão web sites  - visão para além das questões técnicas
Gestão web sites - visão para além das questões técnicasArlindo Santos
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Arlindo Santos
 
Motivação para a multimédia
Motivação para a multimédiaMotivação para a multimédia
Motivação para a multimédiaArlindo Santos
 
Arduino
ArduinoArduino
Guia da Gestão de Projectos Web
Guia da Gestão de Projectos WebGuia da Gestão de Projectos Web
Guia da Gestão de Projectos WebArlindo Santos
 

Mais de Arlindo Santos (12)

Marketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégiasMarketing Digital: tendências e estratégias
Marketing Digital: tendências e estratégias
 
Mobile marketing
Mobile marketingMobile marketing
Mobile marketing
 
Temas dos trabalhos práticos
Temas dos trabalhos práticosTemas dos trabalhos práticos
Temas dos trabalhos práticos
 
Documento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação DigitalDocumento sobre o curso técnico superior profissional de Comunicação Digital
Documento sobre o curso técnico superior profissional de Comunicação Digital
 
Conhecer os clientes e influenciadores
Conhecer os clientes e influenciadoresConhecer os clientes e influenciadores
Conhecer os clientes e influenciadores
 
Workshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de ValpaçosWorkshop sobre o Prezi na Escola Secundária de Valpaços
Workshop sobre o Prezi na Escola Secundária de Valpaços
 
Dtd
DtdDtd
Dtd
 
Gestão web sites - visão para além das questões técnicas
Gestão web sites  - visão para além das questões técnicasGestão web sites  - visão para além das questões técnicas
Gestão web sites - visão para além das questões técnicas
 
Cakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHPCakephp - framework de desenvolvimento de aplicações Web em PHP
Cakephp - framework de desenvolvimento de aplicações Web em PHP
 
Motivação para a multimédia
Motivação para a multimédiaMotivação para a multimédia
Motivação para a multimédia
 
Arduino
ArduinoArduino
Arduino
 
Guia da Gestão de Projectos Web
Guia da Gestão de Projectos WebGuia da Gestão de Projectos Web
Guia da Gestão de Projectos Web
 

Último

Memorial do convento slides- português 2023
Memorial do convento slides- português 2023Memorial do convento slides- português 2023
Memorial do convento slides- português 2023
MatildeBrites
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
Letícia Butterfield
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
Escola Municipal Jesus Cristo
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
WelidaFreitas1
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
LeandroTelesRocha2
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
Manuais Formação
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Ligia Galvão
 
Anatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e CardiovascularAnatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e Cardiovascular
PatrickMuniz8
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
Centro Jacques Delors
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
Mary Alvarenga
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
CarlaInsStaub
 
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
CrislaineSouzaSantos
 
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
BarbaraBeatriz15
 
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdfEJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
Escola Municipal Jesus Cristo
 
Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
Mary Alvarenga
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
jbellas2
 
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
PROPOSTA CURRICULAR  EDUCACAO FISICA.docxPROPOSTA CURRICULAR  EDUCACAO FISICA.docx
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
Escola Municipal Jesus Cristo
 

Último (20)

Memorial do convento slides- português 2023
Memorial do convento slides- português 2023Memorial do convento slides- português 2023
Memorial do convento slides- português 2023
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
 
UFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manualUFCD_8298_Cozinha criativa_índice do manual
UFCD_8298_Cozinha criativa_índice do manual
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
 
Anatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e CardiovascularAnatomia I - Aparelho Locomotor e Cardiovascular
Anatomia I - Aparelho Locomotor e Cardiovascular
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
 
Caça-palavras - ortografia S, SS, X, C e Z
Caça-palavras - ortografia  S, SS, X, C e ZCaça-palavras - ortografia  S, SS, X, C e Z
Caça-palavras - ortografia S, SS, X, C e Z
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
 
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
 
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
 
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdfEJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
EJA -livro para professor -dos anos iniciais letramento e alfabetização.pdf
 
Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
 
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
PROPOSTA CURRICULAR  EDUCACAO FISICA.docxPROPOSTA CURRICULAR  EDUCACAO FISICA.docx
PROPOSTA CURRICULAR EDUCACAO FISICA.docx
 

Frameworks de desenvolvimento web

  • 2. Seminário frameworks 2011/2012 O que é? • “Framework é um conjunto de classes que colaboram para realizar uma responsabilidade para um domínio de um subsistema da aplicação.” • Frameworks • (Fayad e Schmidt) Arlindo Santos 09-05-2012 2
  • 3. Seminário frameworks 2011/2012 O que é? • Um framework, em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software fornecendo uma funcionalidade genérica. Arlindo Santos 09-05-2012 3
  • 4. Seminário frameworks 2011/2012 O que é? • Ao contrário das bibliotecas, é o framework quem dita o fluxo de controle da aplicação, chamado de Inversão de Controle. Arlindo Santos 09-05-2012 4
  • 5. Seminário frameworks 2011/2012 Frameworks • Framework de software compreende de um conjunto de classes implementadas em uma linguagem de programação específica, usadas para auxiliar o desenvolvimento de software. Arlindo Santos 09-05-2012 5
  • 6. Seminário frameworks 2011/2012 O que é? Framework é uma arquitectura, um conjunto de ficheiros organizados, com uma série de funções, rotinas e variáveis, que servem para nos poupar o tempo de “REIVENTAR A RODA” diversas e diversas vezes, para cada novo projeto Arlindo Santos 09-05-2012 6
  • 7. Seminário frameworks 2011/2012 Problema vs Solução • Qual é o problema? – Programar é difícil. • Onde está a maior dificuldade? – “O Design de Interface e a sua construção de maneira funcional é a chave da propriedade intelectual de um software e é bem mais difícil de ser criada ou recriada do que o código fonte.” - Peter Deutsch. Arlindo Santos 09-05-2012 7
  • 8. Seminário frameworks 2011/2012 Problema vs Solução • Ou seja: – os requisitos funcionais de um software são facilmente copiados por outro, uma boa solução de interface não. Arlindo Santos 09-05-2012 8
  • 9. Seminário frameworks 2011/2012 Problema vs Solução • Solução: – Temos que fornecer formas de re-uso que vão além de código: re-uso de análise, design, código. – Framework orientado a objeto. Arlindo Santos 09-05-2012 9
  • 10. Seminário frameworks 2011/2012 Problema vs Solução • Onde o framework entra… – Um framework captura a funcionalidade comum a várias aplicações. – As aplicações devem ter algo razoavelmente grande em comum: pertencer a um mesmo domínio de problema. Arlindo Santos 09-05-2012 10
  • 11. Seminário frameworks 2011/2012 Problema vs Solução • Um framework é uma aplicação quase completa, mas com pedaços que faltam! • Ao usar um framework, o trabalho consiste em criar os pedaços que são específicos para sua aplicação. Arlindo Santos 09-05-2012 11
  • 12. Seminário frameworks 2011/2012 Padrões vs frameworks • Padrões de projeto de software não são frameworks, pois padrões possuem um nível maior de abstração. • Um framework inclui código, diferentemente de um padrão de projeto. • Um framework pode ser modelado com vários padrões de projeto, e sempre possuem um domínio de uma aplicação particular, algo que não ocorre nos padrões e projeto de software. Arlindo Santos 09-05-2012 12
  • 13. Seminário frameworks 2011/2012 Vantagens • Redução de custos • Redução de time-to-market • Deteção de erros – cada funcionalidade está separada por blocos • Segurança • Extensibilidade • Ajuda fácil - comunidade Arlindo Santos 09-05-2012 13
  • 14. Seminário frameworks 2011/2012 Vantagens • A longo prazo - Despois do período de familiarização, as vantagens aparecem • Produtividade - Como toda a equipa usa um determinado framework, então usam as mesmas convenções, classes e bibliotecas, a manutenção de um programa fica muito mais ágil (produtividade); • Eliminação das tarefas repetitivas • Facilidade na geração de testes • Geração de documentação Arlindo Santos 09-05-2012 14
  • 15. Seminário frameworks 2011/2012 Vantagens • Maximização de re-uso (análise, design, código, testes). • Programadores concentram-se em adicionar valor ao invés de reinventar a roda. • Menos manutenção. • A herança permite alterar ou adicionar funcionalidades. • Estabilização melhor do código (menos defeitos) devido ao seu uso em várias aplicações. • Uso de tecnologias embutidas Arlindo Santos 09-05-2012 15
  • 16. Seminário frameworks 2011/2012 Vantagens • Melhor consistência e compatibilidade entre aplicações. • Framework oferece uma forma de empacotar o conhecimento de especialistas sobre domínios de problemas. • Não se perde o conhecimento com a saída de especialistas e o conhecimento pode ser usado/estudado sem a presença do especialista. • Resultado: criação de patrimônio estratégico da empresa (Strategic Asset Building). Arlindo Santos 09-05-2012 16
  • 17. Seminário frameworks 2011/2012 Desvantagens • Dificuldade de aprendizagem • Construir um framework é complexo - Necessita de planeamento • Quem pode pensar em longo prazo quando se está competindo "On Internet time"? - Necessário modificar o processo de desenvolvimento e criar novos incentivos - Benefícios são realizados em longo prazo Arlindo Santos 09-05-2012 17
  • 18. Seminário frameworks 2011/2012 Características Básicas •Um framework deve ser reusável: – É o propósito final! •Para ser reusável, deve primeiro ser usável: – Bem documentado – Fácil de usar • Deve ser extensível: – O framework contém funcionalidade abstrata (sem implementação) que deve ser completada • Deve ser eficiente: – Devido a seu uso em muitas situações, algumas das quais poderão necessitar de eficiência • Deve ser completo: – Para endereçar o domínio do problema pretendido Arlindo Santos 09-05-2012 18
  • 19. Seminário frameworks 2011/2012 Tecnologias embutidas • MVC • ActiveRecord • AJAX (Asynchronous Javascript and XML) • Internacionalização: É o processo de possibilitar que seja facilmente alterada a linguagem da interface e de mensagens de uma determinada aplicação. • ORM • … Arlindo Santos 09-05-2012 19
  • 20. Seminário frameworks 2011/2012 Tecnologias embutidas • MVC Arlindo Santos 09-05-2012 20
  • 21. Seminário frameworks 2011/2012 Tecnologias embutidas • MVC – View • É a interface do utilizador, é a transformação dos dados do Model para que o utilizador possa interagir com o sistema. – Model • Model é a camada de lógica do MVC que é usada pela camada de apresentação e de acesso ao espaço de armazenamento (ex: base de dados). – Controler • O controller processa e responde a eventos dos utilizadores (GET, POST e entre outros), podendo alterar o estado do Model. Arlindo Santos 09-05-2012 21
  • 22. Seminário frameworks 2011/2012 Tecnologias embutidas • MVC – Vantagens • Como o modelo MVC gere múltiplas formas de visualização usando o mesmo modelo, e é fácil manter, testar e atualizar sistemas múltiplos; • É muito simples incluir novos clientes. Inclui-se apenas novos views e controles; • Torna a aplicação escalável; • É possível ter um desenvolvimento em paralelo para o modelo, visualizador e controle pois são independentes; • É mais fácil gerir a complexidade da aplicação dividindo-a em modelo, visualizador e controlador (MVC). Arlindo Santos 09-05-2012 22
  • 23. Seminário frameworks 2011/2012 Tecnologias embutidas • MVC – Desvantagens • Requer uma quantidade maior de tempo para analisar e modelar o sistema; • Requer pessoal com conhecimento especializado; • Não é aconselhável para pequenas aplicações. Arlindo Santos 09-05-2012 23
  • 24. Seminário frameworks 2011/2012 Tecnologias embutidas • ORM (Object-relational mapping) – O ORM é uma técnica de desenvolvimento utilizada para reduzir a impedância da programação orientada a objetos utilizando base de dados relacionais. As tabelas do base de dados são representadas através de classes e os registos de cada tabela são representados como instâncias das classes correspondentes. – Com esta técnica, o programador não precisa de se preocupar com os comandos em linguagem SQL; irá usar uma interface de programação simples que faz todo o trabalho de persistência. – Não é necessária uma correspondência direta entre as tabelas de dados e as classes do programa. A relação entre as tabelas onde originam os dados e o objeto que os disponibiliza é configurada pelo programador, isolando o código do programa das alterações à organização dos dados nas tabelas do banco de dados. Arlindo Santos 09-05-2012 24
  • 25. Seminário frameworks 2011/2012 Tecnologias embutidas • Validation – Indica se o framework tem alguma estrutura de validação embutida em sua estrutura. • Auth module – Indica se a estrutura tem um módulo embutido para assegurar a autenticação do utilizador. • Modules – Indica se a estrutura do framework é modularizada por exemplo, possui um parser da alimentação de RSS, o módulo de separação de pdf´s ou etc; • Tableless – O nome Tableless é um nome mais “publicitário” para se referir a sites que seguem os Padrões. Os sites Tableless não são construídos usando as tables. Elas usam XHTML para apresentar a informação e as Folhas de Estilo (CSS) para formatar essa informação. Pelo motivo de as tables não serem usadas para a estruturação, essa metodologia se chama Tableless. Arlindo Santos 09-05-2012 25
  • 26. Seminário frameworks 2011/2012 Tecnologias embutidas • ActiveRecord – Abstrai o programador de conhecer a fundo uma linguagem de manipulação de dados, como a SQL, além de manter toda a aplicação desenvolvida no paradigma orientado a objetos. • Db objects – Indica se a estrutura inclui outros objetos da base de dados, como classes de linguagem de programação orientada a objetos • Templates – Os templates, ou modelos, têm por finalidade separar o design, a parte HTML, da programação, no nosso caso, o PHP. Arlindo Santos 09-05-2012 26
  • 27. Seminário frameworks 2011/2012 Tecnologias embutidas • AJAX (Asynchronous Javascript and XML) – Toda página AJAX está em um objeto chamado XMLHTTPRequest, o qual permite que sejam feitas requisições assíncronas ao servidor web, não precisando de atualizações na página ou espera por parte do utilizador. • Caching – Caching é o melhor recurso para a redução de processamento do servidor envolvendo a renderização e lógica da camada de acesso a dados. – Podemos dividir o caching em três tipos básicos: • Cache de Respostas (OutputCache) – O cache de respostas é a forma mais simples de se tirar proveito do sistema de cache, sem necessidade de redesenho ou alterações de código - o conteúdo a ser enviado ao cliente (resposta) é armazenado em memória e disponibilizado para as próximas requisições. De fato, todo o conteúdo dinâmico pode ser armazenado em mecanismos que suportem o HTTP 1.1 (servidor web, navegadores e proxies) de forma que requisições subsequentes sejam servidas diretamente a partir do cache sem execução de código. • Cache de Fragmento – Existem situações onde o cache de toda uma página de resposta não é adequado. Um caso óbvio, seria àquele no qual o desenho da aplicação requerer que algumas partes/seções de uma página específica tenham versões específicas para um determinado grupo de utilizadores (e.g. menu baseado no perfil do utilizador) e que outras partes sejam comuns à todos (e.g. conteúdo genérico c/ notícias gerais). Este é o cenário ideal para o uso do fragment caching. • Cache de Objetos – O objeto de Cache é recriado a cada reinício da aplicação, o que nos lembra uma certa similaridade com o objeto Application. A principal diferença entre os dois reside no fato de que o objeto de Cache proporciona funcionalidade específicas, tais como dependências e políticas de expiração. Arlindo Santos 09-05-2012 27
  • 28. Seminário frameworks 2011/2012 Tecnologias embutidas • Integração PEAR – Pear é um sistema de repositório e de distribuição para componentes reutilizáveis de PHP. – Pear é composto por: • Repositório organizado e padronizado de código aberto para programadores de PHP Sistema para a distribuição e manutenção de pacotes. • PFC (PHP Foundation Classes). • Estilo padronizado de código. • Sites e listas de discussão para a comunidade de colaboradores. – O código PEAR é dividido em “pacotes”. Cada pacote é um projeto separado com sua própria equipe de desenvolvimento, número de versão, ciclo da publicação, documentação e uma relação definida a outros pacotes. • Internacionalização – É o processo de possibilitar que seja facilmente alterada a linguagem da interface e de mensagens de uma determinada aplicação. Arlindo Santos 09-05-2012 28
  • 29. Seminário frameworks 2011/2012 Documentação detalhada • Uma boa documentação não é somente uma descrição do que é a ferramenta e para que ela serve. – é toda a descrição histórica, – todo um apoio para os programadores como exemplos práticos de sua aplicação, – detalhes da sua criação e implementação, – descrição do comportamento e funcionamento da mesma, – fóruns de discussão, – e demais conceitos abordados acima Arlindo Santos 09-05-2012 29
  • 30. Seminário frameworks 2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 30
  • 31. Seminário frameworks 2011/2012 Comparação das Frameworks Arlindo Santos 09-05-2012 31
  • 32. Seminário frameworks 2011/2012 Bibliografia • Fayad, M. E. and Schmidt, D. C. (1997). Object-oriented application frameworks. Commun. ACM, 40(10):32–38. Arlindo Santos 09-05-2012 32

Notas do Editor

  1. Model-view-controller (MVC) é um padrão de arquitetura de software. Com o aumento da complexidade das aplicações desenvolvidas torna-se fundamental a separação entre os dados (Model) e o layout (View). Desta forma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.