Desenvolvimento Web Prof. Guilherme Keller 1.1. APRESENTAÇÃO Professor Guilherme Keller Formação: Técnico em Processamento de Dados – Liceu Noroeste Tecnólogo em Informática – FASP Pós-graduação em Gestão de projetos e Desenvolvimento de sistemas - FASP Contatos: www.guilhermekeller.com.br [email protected] Metodologia de ensino e avaliação: - Aulas: Expositivas em sala Práticas no laboratório Listas de exercícios Desenvolvimento de um site - Lista de chamada: Cada aluno deve assinar a lista, não sendo permitido assinar pelos colegas. - Horários: Os alunos devem respeitar os horários de início e término das aulas. - Celular: Não é permitido o uso de celular em sala de aula. Durante a aula o aluno deve manter o celular desligado ou em modo silencioso. - Avaliação: A nota será composta por duas provas unificadas. O aluno terá direito a fazer prova de recuperação. O professor não poderá dar trabalhos, exercícios ou qualquer tipo de atividade para compor ou ajudar na média dos alunos. A disciplina no curso e integração com outras disciplinas. Tecnologias que iremos aprender em 2010: - PHP (Hypetext Preprocessor) - JSP (Java Server Pages) DW é uma disciplina que tem como pré-requisito o aluno ter os conhecimentos de ITW, se integrando com LP horizontalmente, principalmente no segundo semestre quando veremos JSP. Bibliografia: Básica WELLING, Luke. PHP e MySQL : Desenvolvimento Web. Campus: Rio de Janeiro, 2005. NIEDERAUER, Juliano. Desenvolvendo Websites com PHP. 2Ed. Novatec: São Paulo, 2004. KOLB, Mark A. Desenvolvendo na Web com Java Server Pages. Ciência Moderna: Rio de Janeiro, 2000. Gonçalves, Edson. Desenvolvendo Aplicações Web com JSP, SERVLETS, JAVASERVER FACES, HIBERNATE, EJB 3 PERSISTENCE E AJAX. Ciência Moderna: 2007. Desenvolvimento Web Prof. Guilherme Keller Complementar SOARES, Walace. PHP 5.0 : conceitos, programação e integração com Banco de Dados. 5Ed. Érica: São Paulo, 2004. ROCHA, Cerli Antonio. Desenvolvendo websites dinâmicos : PHP, ASP, JSP. Campus: Rio de Janeiro, 2003. TODD, Nick. JavaServer Pages : o guia do desenvolvedor. Campus: Rio de Janeiro, 2003. ANSELMO, Fernando. Tudo sobre a JSP : com o NetBeans em aplicações distribuídas. Visual Books: Florianópolis, 2005. Sugestão de leitura on-line W3C. Word Wide Web Consortium. Disponível online em: [http://www.w3.org/] PHP. Site Oficial PHP Hypertext Preprocessor. Disponível online em: [http://www.php.net/] MySQL. MySql: Developer Zone. Disponível online em: [http://dev.mysql.com/] Objetivos Gerais: Entender o funcionamento de um Web Site composto por páginas dinâmicas e componentes; Selecionar a melhor solução técnica para o desenvolvimento de um WEB Site composto de páginas dinâmicas e otimizar recursos de segurança através de um projeto específico; Analisar, Projetar e desenvolver (programar) um sistema para Internet composto por páginas dinâmicas. Específicos: - Adotar boas práticas de nível mundial no desenvolvimento Web (Web Standards). - Compreender a parte conceitual e prática de linguagens e padrões para internet de forma a elaborar páginas e projetos utilizando recursos disponíveis. - Aplicar o conteúdo aprendido na implementação e desenvolvimento de projetos profissionais para internet. - Aprender a empregar os recursos das linguagens de marcação e de programação de scripts no desenvolvimento de projetos para internet. Ementa... 2.1. CONCEITOS: Conceituando páginas dinâmicas em ambiente Web. Conceituando Páginas Dinâmicas A linguagem HTML não é uma linguagem de programação, e sim, uma linguagem descritiva que tem como objetivo dar formato ao conteúdo de sites como, por exemplo, textos e imagens. O HTML não permite realizar cálculos matemáticos, tomadas de decisão ou criar páginas a partir de uma base de dados. A partir desta deficiência do HTML, se fez necessário o emprego de outras linguagens, capazes de responder de maneira inteligente às demandas do navegador permitindo a automatização de determinadas tarefas, além de interagir com o usuário. Páginas criadas dentro deste contexto são chamadas de páginas dinâmicas. Aplicações do lado do cliente e do lado do servidor O navegador é uma espécie de aplicação capaz de interpretar as ordens recebidas na forma de código HTML fundamentalmente e convertê-las nas páginas que são o resultado de tal Desenvolvimento Web Prof. Guilherme Keller ordem. Quando clicamos sobre um link hipertexto, na verdade o que acontece é que estabelecemos uma petição de um arquivo HTML residente no servidor o qual é enviado e interpretado pelo navegador, ou seja, do lado do cliente. Entretanto, se a página que pedimos não é um arquivo HTML, o navegador é incapaz de interpretá-la. É por isso que, se quisermos empregar linguagens acessórias para realizar um site web, é absolutamente necessário que seja o próprio servidor que os execute e interprete para logo enviá-los ao cliente (navegador) na forma de arquivo HTML totalmente legível por ele, de forma que, quando clicamos sobre um link a uma página que contém um script em uma linguagem compreensível unicamente pelo servidor, o que ocorre na verdade é que tal script é executado pelo servidor e o resultado dessa execução dá lugar à geração de um arquivo HTML que é enviado ao cliente. Sendo assim, podemos falar de linguagens de lado de servidor que são aquelas linguagens que são reconhecidas, executadas e interpretadas pelo próprio servidor e que se enviam ao cliente em um formato compreensível para ele. Por outro lado, as linguagens de lado cliente, como por exemplo HTML e JavaScript, são aquelas que podem ser diretamente interpretadas pelo navegador e não necessitam de um pré-tratamento. Cada um destes tipos tem é claro, suas vantagens e seus inconvenientes. Assim, por exemplo, uma linguagem de lado cliente é totalmente independente do servidor, sendo executada mais rapidamente. Já uma linguagem do lado servidor é independente do cliente, o que é muito menos rígido em relação a mudança de um navegador a outro ou em relação às versões do mesmo. Por outro lado, os scripts são armazenados no servidor de quem os executa e traduz a HTML, o que permanecem ocultos para o cliente. Este fazer pode ser sem dúvida, uma forma legítima de proteger o trabalho intelectual realizado. Para escrever uma página dinâmica podemos fazer da mesma forma que se fizéssemos em HTML. Na verdade, o código está constituído exclusivamente de texto e o único que temos que fazer portanto é salvar o arquivo texto com uma extensão que possa ser reconhecida posteriormente pelo servidor. Assim, por exemplo, as páginas de ASP são reconhecidas por sua extensão "asp" do mesmo modo que as de PHP. Visto que se trata unicamente de arquivos texto, é possível criar páginas dinâmicas a partir do Bloco de Notas ou qualquer outro processador de texto. Também podemos utilizar os editores clássicos empregados para o HTML a pesar de que neste caso, estamos obrigados a trabalhar em modo editar e não em modo gráfico. Uma vez o programa realizado, o passo imediato é o de executá-lo. As linguagens do lado servidor executam os scripts no próprio e enviam o resultado em forma de código HTML ao cliente (navegador). Então, é óbvio que para provar o programa é necessário subir por FTP os arquivos que o compõem no servidor e fazer a petição desde o navegador ou ter um servidor, como Apache, por exemplo, instalado na máquina. 2.2. EVOLUÇÃO DAS TECNOLOGIAS DE CONTEÚDO DINÂMICO: Common Gateway Interface O servidores de HTTP mais antigos não incluíam qualquer mecanismo embutido para gerar respostas dinamicamente. Ao invés disso, forneciam interfaces para chamar outros programas para traduzir as solicitações no conteúdo em tempo de execução. O primeiro padrão para conteúdo dinâmico na web se baseava na Common Gateway Interface (CGI) que especificava um mecanismo para os servidores passarem as solicitações para programas externos, escritos em linguagens como Perl por exemplo. ColdFusion Desenvolvimento Web Prof. Guilherme Keller O ColdFusion, da Allaire, é uma ferramenta de desenvolvimento de aplicações web que permite criar páginas web dinâmicas, através da integração entre elementos como: banco de dados, ambiente web e aplicações de e-mail, além de permitir aplicações Java. O Cold Fusion utiliza-se de uma linguagem denominada CFML (Cold Fusion Markup Language). Baseada em tags, como o HTML, tornando-se uma linguagem de fácil aprendizado. Active Server Pages O ASP é uma tecnologia que se utiliza de linguagens script como VBScript, JScript, PerlScript ou Python processadas no servidor para geração de conteúdo dinâmico na Web. Ele roda nativamente em servidores Windows, através do serviço chamado de IIS (Internet Information Service) - o servidor web da Microsoft. Server-Side JavaScript JavaScript é uma linguagem de programação baseada em scripts orientada a objetos, criada para ser usada embutida em outro produto/aplicação, tal como WEB Browsers e WEB Servers (ditos client-side e server-side, respectivamente). As aplicações server-side JavaScript, provêm capacidade para elaboração das regras e objetos do negócio (business object) através de acessos a possíveis bancos de dados do sistema. PHP PHP originalmente era o acrônimo de Personal Home Page, mas devido ao crescimento de seu escopo e funcionalidades, se nome mudou para Hypertext PreProcessor. O PHP é uma linguagem de conteúdo dinâmico que emprega uma sintaxe do tipo do C, está disponível para diversas plataformas e é Open Source, resultado de contribuições de programadores do mundo inteiro. Java Servlets Devido à importância da geração de conteúdo dinâmico para o desenvolvimento da web, foi natura que a Sun propusesse extensões para Java em seu domínio. Da mesma forma que a Sun introduziu applets como pequenas aplicações baseadas em Java para adicionar funcianalidade interativa aos navegadores, em 1996 a Sun introduziu servlets como pequenas aplicações baseadas em Java para adicionar funcionalidade dinâmica a servidores web. Java Server Pages A tecnologia JSP foi criada para contornar algumas limitações no desenvolvimento com Servlets. Em um Servlet a formatação da página HTML resultante do processamento de uma requisição se mistura com a lógica da aplicação em si, dificultando a alteração dessa formatação, em uma página JSP essa formatação se encontra separada da programação, podendo ser modificada sem afetar o restante da aplicação. Assim, um JSP consiste de uma página HTML com alguns elementos especiais, que conferem o caráter dinâmico da página. Esses elementos podem tanto realizar um processamento por si, como podem recuperar o resultado do processamento realizado em um Servlet, por exemplo, e apresentar esse conteúdo dinâmico junto a página JSP. Referências: KOLB, Mark A. Desenvolvimento na Web com Java Server Pages. Rio de Janeiro: Ciência Moderna, 2000. http://www.criarweb.com