SlideShare uma empresa Scribd logo
1 de 32
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

HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfCesar Braz
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoJessyka Lage
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIgor Takenami
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPDaniel Brandão
 
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 InternetLeonardo Soares
 
01 Introdução à programação web
01 Introdução à programação web01 Introdução à programação web
01 Introdução à programação webCentro Paula Souza
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks jsandreluizlc
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSSledsifes
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAndré Constantino da Silva
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 

Mais procurados (20)

HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdf
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Aula 01 - JavaScript: Introdução
Aula 01 - JavaScript: IntroduçãoAula 01 - JavaScript: Introdução
Aula 01 - JavaScript: Introdução
 
JAVA - Orientação a Objetos
JAVA - Orientação a ObjetosJAVA - Orientação a Objetos
JAVA - Orientação a Objetos
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
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
 
01 Introdução à programação web
01 Introdução à programação web01 Introdução à programação web
01 Introdução à programação web
 
Aula 2. frameworks js
Aula 2. frameworks jsAula 2. frameworks js
Aula 2. frameworks js
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Front End x Back End
Front End x Back EndFront End x Back End
Front End x Back End
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
 
Java script aula 06 - dom
Java script   aula 06 - domJava script   aula 06 - dom
Java script aula 06 - dom
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 

Semelhante a Seminário sobre frameworks

Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
Programação orientada à objetos & mvc
Programação orientada à objetos & mvcProgramação orientada à objetos & mvc
Programação orientada à objetos & mvcJhordam Siqueira
 
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
 
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 coreRodrigo 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 .NETMário Meyrelles
 
Palestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorPalestra - Profissão: Desenvolvedor
Palestra - Profissão: DesenvolvedorDaniel 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.0Fernando Henrique
 
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 desenvolvimentoAlexandre Andrade
 
Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Treinamento ASP.NET 2014
Treinamento ASP.NET 2014Eric 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 TheWebMindJaydson 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 Seminário sobre frameworks (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égiasArlindo Santos
 
Temas dos trabalhos práticos
Temas dos trabalhos práticosTemas dos trabalhos práticos
Temas dos trabalhos práticosArlindo 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 DigitalArlindo Santos
 
Conhecer os clientes e influenciadores
Conhecer os clientes e influenciadoresConhecer os clientes e influenciadores
Conhecer os clientes e influenciadoresArlindo 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çosArlindo Santos
 
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 PHPArlindo 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
 
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

Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfCamillaBrito19
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 

Último (20)

Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
o ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdfo ciclo do contato Jorge Ponciano Ribeiro.pdf
o ciclo do contato Jorge Ponciano Ribeiro.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 

Seminário sobre frameworks

  • 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.