- Polis Educacional
Transcrição
- Polis Educacional
Daniel Reenlsober 0305327 ANÁLISE COMPARATIVA ENTRE AS LINGUAGENS DE SCRIPTING SERVER-SIDE PHP E ASP .NET Jaguariúna 2006 1 Daniel Reenlsober 0305327 ANÁLISE COMPARATIVA ENTRE AS LINGUAGENS DE SCRIPTING SERVER-SIDE PHP E ASP .NET Monografia apresentada à disciplina Trabalho de Conclusão de Curso, do curso de Ciência da Computação da Faculdade de Jaguariúna, sob orientação do Prof. Ademário Araújo Jr., como exigência parcial para conclusão do curso de graduação. Jaguariúna 2006 2 REENLSOBER, Daniel. Análise Comparativa entre as Linguagens de Scripting ServerSide PHP e ASP .NET. Monografia defendida e aprovada na FAJ em 13 de dezembro de 2006 pela banca examinadora constituída pelos professores: __________________________________________________________ Prof. Ademário Araújo Jr FAJ – Orientador __________________________________________________________ Prof. João Hermes FAJ __________________________________________________________ Profª Gisele Consoline FAJ 3 REENLSOBER, Daniel. Análise Comparativa entre as Linguagens de Scripting ServerSide PHP e ASP .NET. 2006. Monografia (Bacharelado em Ciência da Computação) – Curso de Ciência da Computação da Faculdade de Jaguariúna, Jaguariúna. RESUMO Com o aumento do uso da Internet, tanto em domicílios como em empresas, o desenvolvimento para Web tornou-se algo importante nos dias atuais. Através de linguagens de scripting server-side é possível transformar páginas estáticas HTML em páginas com conteúdo dinâmico e de fácil atualização, tornando o ambiente Web, além de uma grande fonte de informações, um ambiente de trabalho. Entre as linguagens de scripting server-side, destaca-se PHP e o ASP .NET, ambas ferramentas muito utilizadas em projetos para a Internet. Ao pesquisar sobre as duas linguagens, pude perceber que cada linguagem apresenta diversas particularidades. Para verificar suas diferenças, foram desenvolvidos exemplos utilizando PHP e ASP .NET. Diante destes exemplos e pesquisas, o presente trabalho apresenta os resultados da comparação, indicando para quais projetos cada linguagem é mais indicada. Palavras-chave: PHP, ASP .NET, DESENVOLVIMENTO 4 ABSTRACT Development for Web became something very important in current days with the growth of Internet using by homes and companies. Using server-side scripting languages is possible to transform static HTML pages in page with dynamic content easy to use becoming Web environment in a work environment and a huge source of information. Between server-side scripting languages, stand out PHP and ASP .NET, both tools very useful in projects to the Internet. During languages researching I can notice that each language presents several own properties(particularidades). In order to verify languages differences, PHP and ASP .NET examples were developed. In front these examples and researches' results, this paper presents comparing results indicating each language to right projects. Key-words: PHP, ASP .NET, DEVELOPMENT 5 SUMÁRIO LISTA DE FIGURAS ............................................................................................................6 1. INTRODUÇÃO..................................................................................................................7 2. OBJETIVOS.....................................................................................................................12 3. METODOLOGIA.............................................................................................................13 4. RESULTADOS ................................................................................................................14 4.1 Configuração mínima e configuração recomendada ......................................................14 4.2 Custo de aquisição ..........................................................................................................15 4.3 Custo de hospedagem dos sites ......................................................................................16 4.4 Custo de treinamento e suporte ......................................................................................16 4.5 Custo com salários para desenvolvedores ......................................................................17 4.6 Ambiente de desenvolvimento .......................................................................................18 4.7 Segurança........................................................................................................................20 4.8 Reuso da linguagem .......................................................................................................30 4.9 Implementação da aplicação junto ao design do projeto................................................32 5. CONCLUSÃO..................................................................................................................34 6. REFERÊNCIAS BIBLIOGRÁFICAS .............................................................................36 7. ASSINATURAS...............................................................................................................38 6 LISTA DE FIGURAS Figura 1 – Gráfico demonstrativo do uso do PHP entre 01/2000 a 09/2006..........................7 Figura 2 – Ambiente de desenvolvimento............................................................................12 Figura 3 – Ambiente para hospedagem ................................................................................12 Figura 4 – Custo de aquisição...............................................................................................13 Figura 5 – Média de salário para programador ASP .NET ..................................................15 Figura 6 – Média de salário para programador PHP ............................................................15 Figura 7 – Ambiente de desenvolvimento ASP .NET: Visual Web Developer ...................16 Figura 8 – Ambiente de desenvolvimento Dreamweaver ....................................................18 Figura 9 – Resultado da execução do arquivo login.php......................................................21 Figura 10 – Adicionando o componente Login no projeto...................................................23 Figura 11 – Ferramenta Web Site Administration................................................................24 Figura 12 – Selecionando o tipo de acesso...........................................................................24 Figura 13 – Configuração de regras de acesso .....................................................................25 Figura 14 – Exemplo de uso do template. ............................................................................32 Figura 15 – Master Page no Visual Web Develop ...............................................................33 7 1. INTRODUÇÃO No início da World Wide Web, todas as informações enviadas ao navegador do cliente eram estáticas, ou seja, o conteúdo de uma página que servia ao cliente 1 era exatamente o mesmo que seria enviado para o cliente 2. O servidor da Web não gerava dinamicamente nenhuma parte do conteúdo do site, simplesmente atendia as solicitações de páginas HTML, que eram carregadas a partir do sistema de arquivo do servidor Web e enviadas ao cliente solicitante. Não havia nenhuma interatividade entre o usuário e o servidor. Dessa forma, apesar da Internet se desenvolver rapidamente para incluir imagens gráficas e sons, a Web continuava estática, sem possibilidades de customização para o usuário e pouca funcionalidade, além daquela fornecida pelos hiperlinks simples. A partir deste cenário nasce uma nova área, o Desenvolvimento para Web, com o qual os programadores e webdesigners trabalham lado a lado em busca de um site dinâmico, customizado, seguro e de fácil navegação. De acordo com Vivas (2000, p.10) Programar para a Web pode ser considerado como um jogo que consiste em receber os dados do usuário, processá-los e enviar a resposta dinâmica. Uma vez enviada a resposta, é encerrado o contato entre o servidor e o cliente. Para fazer esta troca de dados entre cliente/servidor utilizamos as linguagens de scripting server-side, como PHP e ASP .NET. Tanto o PHP como o ASP .NET oferecem interfaces para o acesso desses dados, a partir dos quais o usuário passa a selecionar que conteúdo deseja visualizar ou pode editar o conteúdo das páginas de uma forma mais rápida e simples. Neste sentido, as linguagens de scripting server-side tornaram-se muito importantes nos dias atuais, possibilitando que os sites sejam dinâmicos e mais atualizáveis.. O PHP foi criado por Rasmus Lerdorf em 1994, inicialmente como simples scripts Perl para que o próprio Lerdorf obtivesse estatísticas de acesso para seu currículo online. Como mais funcionalidades foram requeridas, Rasmus escreveu uma implementação em C mais abrangente e capaz de comunicar-se com base de dados, permitindo aos profissionais da área desenvolver simples aplicativos dinâmicos para Web. Rasmus chama essa versão de PHP/FI E disponibilizou o código fonte para que todos pudessem ver, e também usá-lo, bem como 8 localizar erros e melhorar o código. A versão que mais se assemelha ao PHP utilizado nos dias atuais é o PHP 3.0, criado por Andi Gutmans e Zeev Suraski, lançado em 1997. A versão 3.0 do PHP oferece um infra-estrutura sólida para o acesso a diversos banco de dados, protocolos e APIs, além da introdução ao suporte para orientação a objetos. A nova engine, a Zend Engine (palavra formada pelos primeiros nomes dos desenvolvedores, Zeev e Andi), fez com que o PHP melhora-se sua performance em aplicações mais complexas. O PHP 4.0, baseado nesta engine e acompanhado com uma série de novas características, foi oficialmente lançada em 22 de maio de 2000. Além do melhoramento do desempenho, o PHP 4.0 incluiu outras características como o suporte para muitos servidores Web, sessões HTTP, buffer de saída, maneiras mais seguras de manipular a entrada de usuários e novas construções na linguagem. O PHP em sua versão 4 tornou-se mais rápido pois passou a compilar o código inteiro, transformando-o em byte code para somente depois ser executado pelo Zend Engine. Outra qualidade é a sua independência do servidor Web, criando versões de PHP nativas para mais plataformas. A essa altura o PHP já possuía funcionalidades que facilitavam o desenvolvimento de scripts e permitiam que usuários iniciantes escrevessem códigos ainda não muitos seguros. Uma dessas funcionalidades é a diretiva register_globals, que quando ligada torna qualquer variável disponível automaticamente no escopo do script. Devido a essa facilidade, que permitia o desenvolvimento de aplicações com falhas de segurança, na versão 4.1.0 foi introduzido na linguagem as superglobais $_GET, $_POST e $_COOKIE para que a desativação da diretiva register_globals fosse possível. No lançamento da versão 4.2.0, que aconteceu em 22 de abril de 2002, a register_globals já estava desligada por padrão. Depois da versão 4.3.0 a demanda por funcionalidades orientadas a objetos cresceu. Por esse motivo Andi decidiu reescrever a parte orientada a objetos da linguagem e iniciou o trabalho escrevendo, junto com Zeev, o documento "Zend Engine II: Feature Overview and Design" (Zend Engine II: Visão Geral e Elaboração de Funcionalidades). A partir desse momento, muitas funcionalidades foram adicionadas, retiradas e modificadas, até que em 13 de julho de 2004, o PHP 5 foi lançado trazendo como principal novidade a orientação a objetos totalmente reescrita. Além da orientação a objetos, a versão 5 também trouxe funcionalidades, muito importantes para a evolução da linguagem, como 9 SimpleXML, SOAP, MySQLi e mais outras diversas extensões de importância significativa. Mesmo sem todos os recursos da POO (Programação Orientada a Objetos), muitas bibliotecas de código e grandes aplicações são escritas somente neste tipo de código. Atualmente a edição 5 do PHP está em sua versão 5.1.6 e a edição 4 está na versão 4.4.4. O PHP continua crescendo e a cada versão traz novas funcionalidades e facilidades para os profissionais que utilizam a linguagem. O gráfico abaixo mostra como foi o crescimento do uso do PHP nos sites da Internet, entre os anos de 2000 a 2006. Atualmente existem cerca de 19.491.000 de domínios e 1.313.000 de endereços IP que utilizam o PHP. Figura 1 – Gráfico demonstrativo do uso do PHP entre 01/2000 a 09/2006. (http://www.php.net/usage.php, Set. 2006) ASP é uma tecnologia desenvolvida pela Microsoft que permite ao desenvolvedor web criar suas páginas de uma forma mais rápida e de fácil compreensão. O ASP utiliza estrutura de programação em script como VBScript, JScript, PerlScript ou Python processadas pelo servidores Windows, através do serviço chamado de IIS (Internet Information Service, o servidor web da Microsoft) ou do PWS (Personal Web Server), em ambientes com Windows 98. Com o aumento da necessidade dos usuários e a complexidade das aplicações Web, o ASP mostrou-se fraco em diversos pontos como: reaproveitamento de código, ferramentas de depuração e desenvolvimento limitadas, problemas de desempenho, código fracamente 10 tipado, suporte a diferentes navegadores e difícil colaboração entre grupos de desenvolvimento, entre outros. Com base em todos estes problemas, foi inevitável uma evolução na linguagem. Em 2000, a Microsoft lançou o ASP.NET, trazendo uma mudança radical para o desenvolvedor. Anteriormente os profissionais tinham poucas opções ao auxiliar o desenvolvimento para Web. Com a chegada do ASP.NET, os desenvolvedores não receberão apenas uma nova versão do ASP, mas sim um novo modelo de programação ASP, além de um ambiente completo para o desenvolvimento, o Visual Web Developer. O ASP.NET segue um modelo de programação orientado a objetos, no qual, são adicionados controles aos formulários e escrito códigos para manipular os eventos. As aplicações serão escritas numa das linguagens suportadas pelo Framework .NET (C#, Visual Basic .NET), todas orientadas a objetos. Os aplicativos construídos com ASP.NET são hospedados no Microsoft IIS e usa protocolos da internet como HTTP e SOAP. Toda a configuração da aplicação ASP.NET é feita através de arquivo XML. Sendo assim, não é preciso recompilar a aplicação após alguma mudança, pois o próprio framework detecta a mudança e reinicia a aplicação. Após a página ter sido requisitada, o framework verifica se essa página já foi compilada e, caso não tenha sido, compila só a primeira vez. Dessa forma, nas próximas requisições a página não será compilada e a execução será mais rápida. Essa mudança no modelo de programação trouxe muitos benefícios, não apenas ao ASP.NET, mas também ao Framework .NET. O Framework .NET é uma iniciativa da Microsoft que visa uma plataforma única para desenvolvimento e execução de sistemas e aplicações. Todo e qualquer código gerado para .NET pode ser executado em qualquer dispositivo ou plataforma que possua esse framework (plataforma). Com idéia semelhante à plataforma Java, o programador deixa de escrever código, para um sistema ou dispositivo específico, e passa a escrever para a plataforma .Net. Em julho de 2004, a Microsoft disponibilizou o primeiro beta do ASP.NET 2.0 em conjunto com o Visual Web Developer 2005, facilitando e otimizando diversas tarefas comuns no desenvolvimento para Web, além da redução do trabalho e a quantidade de linhas de código para a execução. Umas das grandes novidades, é que o servidor web IIS não precisa 11 estar instalado na máquina do desenvolvedor para realizar os testes de aplicação, uma vez que, o próprio Visual Web Developer possui o servidor embutido ao programa. Assim, pode-se perceber o porquê PHP e o ASP.NET são uma das principais linguagens para a troca de informações via Internet entre cliente/servidor no desenvolvimento para Web. 12 2. OBJETIVOS O objetivo deste trabalho é demonstrar as diferenças no desenvolvimento, utilizando as linguagens PHP e ASP.NET quanto: Aprendizado; Ao projeto de páginas para web; Desempenho no servidor; Segurança; Complexidade das rotinas; Custo do projeto; Implementação da aplicação junto ao design do projeto; Ao final do trabalho será indicado qual destas linguagens de scripting server-side é mais apropriada para diferentes tipos de projetos para web. 13 3. METODOLOGIA O trabalho foi iniciado por meio de uma pesquisa visando um levantamento teórico para iniciar o desenvolvimento em PHP. A partir desta pesquisa foi iniciado a criação de pequenos exemplos e de alguns projetos utilizando o PHP. Logo após foi iniciado uma nova pesquisa para o levantamento teórico do ASP e posteriormente do ASP.NET, com o intuito de desenvolver novos exemplos utilizando o ASP.NET. Ao concluir os projetos em PHP e ASP.NET foi feito a comparação entre as linguagens de programação quanto: a sua facilidade de aprender a linguagem, a complexidade do código, o desempenho no servidor, segurança, implementação da aplicação junto ao design de um website e tamanho do código gerado. Através de pesquisas foi feito um cruzamento entre diversas informações para verificar o custo do desenvolvimento dessas linguagens. Os itens analisados foram: custo para hospedagem das páginas, salário médio dos profissionais, configuração mínima e recomendada para o desenvolvimento e hospedagem. 14 4. RESULTADOS 4.1 Configuração mínima e configuração recomendada Acompanhe abaixo a configuração necessária para o funcionamento do PHP (referente a instalação do PHP, MySQL e Apache) e do ASP.NET (referente à instalação do Visual Web Developer Expres Beta 2, .NET Framework 2.0 e o Microsoft SQL Server 2005 Express Edition): Processador PHP ASP.NET Mínimo: Pentium de 500 MHz Mínimo: Processador Pentium de 600 Recomendado: Pentium de 750 MHz MHZ Recomendado: Pentium de 1 gigahertz Sistema Linux, Unix e qualquer versão do Funciona em computados com Windows operacional Windows a partir da versão 98. 2000 Professional Service Pack 4 ou posterior. Memória Mínimo: 64 megabytes Mínimo: 192 megabytes RAM Recomendado: 128 megabytes Recomendado: 256 megabytes Disco rígido 40 megabytes para instalação dos 1,3 gigabytes para a instalação dos softwares softwares Figura 2 – Ambiente de desenvolvimento PHP ASP.NET Processador Mínimo: Pentium de 500 MHz Mínimo: Processador Pentium de 733 MHz Sistema Funciona em Linux, Windows Funciona em computador com Windows operacional 2003/XP/2000/NT/9x, Netware 5.x ou 2000 Professional Service Pack 4 ou superior, OS/2 e Unix posterior. Memória Mínimo: 128 megabytes Mínimo: 256 megabytes RAM Recomendado: 256 megabytes Recomendado: 512 megabytes Disco rígido 800 megabytes 1,5 gigabytes Figura 3 – Ambiente para hospedagem 15 4.2 Custo de aquisição Iniciar o desenvolvimento tanto no PHP, quanto no ASP.NET envolve além de pesquisa e estudos sobre a linguagem, a aquisição de hardware e software. Inicialmente é necessário um computador com um sistema operacional instalado. O PHP (mais o MySQL e Apache) funciona mesmo em computadores com hardware fracos, como um micro com processador de 500 MHz e 64 de RAM. Além de funcionar no Windows (a partir da versão 98 até as mais recentes), é possível desenvolver códigos PHP em ambiente Linux (sistema operacional livre e gratuito). Para editar o código PHP pode-se usar qualquer editor de texto disponível. Apesar dos profissionais poderem desenvolver códigos em ASP.NET utilizando apenas editores de texto, isso não é recomendado. Por se tratar de uma linguagem orientada a objetos, o ideal é utilizar um ambiente de desenvolvimento, como o Visual Web Developer Express (software disponível atualmente para download gratuito). Acontece que este software é apenas compatível com o sistema operacional Windows (Windows 2000 ou superior). Atualmente o valor para adquirir um sistema operacional Windows varia entre R$ 450,00 a R$ 500,00 (versão Professional). Não é possível instalar o Visual Web Developer Express em Windows XP Edição Home. Além disso, é necessário que esteja instalado o Internet Explorer 5.1 ou superior. Abaixo segue uma tabela que demonstra a comparação de preços no custo de aquisição entre diferentes linguagens: Item ASP Cold Fusion JSP PHP Desenvolvimento US$ 0-480 US$ 395 US$ 0 Servidor US$ 1.295 US$ 0 – 595 US$ 0 US$ 620 US$ 0 Figura 4 – Custo de aquisição Pode-se constatar no gráfico acima que PHP é o único que não tem nenhum custo de aquisição tanto para desenvolvimento quanto para o servidor, pois o material necessário é totalmente gratuito, bastando apenas que seja feito o download pela Internet. 16 4.3 Custo de hospedagem dos sites Para que seu projeto seja utilizado ou visitado por outras pessoas é necessário hospedar os arquivos, ou seja, armazenar todo o conteúdo do projeto em um servidor. Mas para utilizar um servidor é necessário pagar uma taxa, valor este que pode variar de acordo com a linguagem de scripting server-side utilizado. Apesar de alguns serviços de hospedagem ter o mesmo valor de assinatura para PHP E ASP.NET, é comum encontrar empresas que trabalham com serviços de hospedagem especifica para uma linguagem. Em todos estes serviços, a hospedagem com tecnologia ASP é mais cara cerca de 6% a 29% sobre o preço da hospedagem PHP. Essa diferença de preços é causada pelo custo de aquisição para um servidor ASP. Servidores ASP devem usar sistema operacional Windows (sistema operacional pago), contra os servidores PHP que usam Linux (sistema operacional gratuito). Além disso, o Windows é um sistema operacional que possui muitos problemas com segurança, tornando muito mais vulnerável a ataques que o Linux. Para aumentar os níveis de segurança nestes servidores Windows, é comum a instalação de firewalls (utilizado para evitar que o tráfego não autorizado possa fluir de um domínio de rede para o outro), software este com opções gratuitas e pagas. 4.4 Custo de treinamento e suporte Um ponto que a tecnologia ASP/ASP.NET tem de destaque é quanto ao treinamento e suporte para os profissionais. Enquanto que os desenvolvedores PHP dependem muito de fóruns de discussões na Internet e livros, a Microsoft possui uma grande estrutura para auxiliar os profissionais ASP. Além de newsgroups, FAQs e fóruns de discussão, a Microsoft distribui tutoriais, organiza regularmente eventos destinado exclusivamente para desenvolvedores ASP, além de contar com um suporte técnico via e-mail ou telefone. Os profissionais ASP ainda contam com uma publicação mensal especializada para desenvolvedores Microsoft: a MSDN Magazine com dicas e informações sobre componentes do ASP.NET. 17 4.5 Custo com salários para desenvolvedores Através do site Curriculum (www.curriculum.com.br) é possível obter estatísticas salariais sobre diversas vagas. A pesquisa abaixo, feita no dia 1 de novembro, mostra que o programador da linguagem ASP.NET possui um salário maior comparado com um programador PHP, ou seja, a empresa terá maiores gastos com salários. Figura 5 – Média de salário para programador ASP.NET (http://www.curriculum.com.br, Nov. 2006) Figura 6 – Média de salário para programador PHP (http://www.curriculum.com.br, Nov. 2006) A diferença de salários deve-se ao aumento do uso da linguagem ASP.NET, fazendo as empresas procurarem profissionais que conheça profundamente o ASP.NET. Os desenvolvedores ASP.NET também podem comprovar seus conhecimentos através das Certificações ASP.NET emitidas pela própria Microsoft. Certificações PHP ainda não existem no Brasil. 18 4.6 Ambiente de desenvolvimento Enquanto que o ASP.NET pode ser desenvolvido apenas em computadores que tenham o sistema operacional Windows, o PHP pode ser desenvolvido em ambientes Linux, Mac OS X, e Unix. Para desenvolver aplicativos em qualquer uma destas linguagens pode-se utilizar um simples editor texto para escrever os códigos e um navegador para testar. Figura 7 – Ambiente de desenvolvimento ASP.NET: Visual Web Developer Mas com o lançamento do ASP.NET, o desenvolvedor ASP ganhou um complexo ambiente de desenvolvimento chamado Visual Web Developer 2005. Este ambiente facilita muito as tarefas do desenvolvedor. Tudo se tornou componente, ou seja, um objeto que implementa uma interface e é autônomo em relação a outros componentes do sistema. Exemplos de componentes no ASP.NET: Web controls, Html Controls, User controls, Calendar, DataGrid, DataList, Repeater, entre outros. Tarefas comuns ao desenvolvedor web como desenvolver uma pagina de registro de usuários ou um local para login do visitante, pode ser feito automaticamente criados pelo Visual Web Developer, sem que o desenvolvedor digite nenhuma linha de código. (GUIMARÃES, Renato, http://www.imasters.com.br/artigo/1624/dotnet/aspnet_uma_mudanca_radical, jun.de 2006.) 19 Mesmo numa tarefa como uma ligação da página com o banco de dados, o Visual Web Developer possui um componente chamado DataSource onde o desenvolvedor deve apenas arrasta-lo sobre o projeto e usar o assistente para a configuração. Foi implementado também o componente Grid View, uma evolução do Data Grid. Através dele é possível paginar, ordenar, editar dados em forma de tabela, tudo sem escrever nenhuma linha de código. Este controle ainda permite ordenar as informações das páginas sem que o navegador execute um post no servidor. O Visual Web Developer ainda traz novidades como o componente Wizard, com qual o desenvolvedor poderá criar telas para cadastro em forma de janelas com controles de continuar, avançar e concluir. O Wizard é muito parecido com a estrutura de qualquer programa de instalação de software. Quanto a customização das páginas pelo usuário, o ASP.NET também traz alguns componentes que ajudam o desenvolvedor como as Web Parts. Através de sua utilização será possível habilitar ao usuário modos onde ele altere a aparência do site, além de diversas customizações como ocultar certas informações do site. Adicione também o suporte a skins (temas) no qual é possível desenvolver a aplicação com base a um tema, de forma que apenas trocando o skin você mude completamente a aparência do site. Ao iniciar o desenvolvimento de códigos através do Visual Web Developer pode-se observar as capacidades do IDE de identificar erros além de propor soluções para resolver tais problemas. Usando o Insert Snippet é possível incluir um conjunto de códigos prontos usando apenas o botão direito do mouse. Assim como no Visual Basic, é possível marcar trechos de código através dos breakpoints para visualizar a execução do programa e assim, identificar possíveis erros. Erros esses que podem ser localizados pela depuração no momento da execução do projeto. Uma das ferramentas mais utilizadas pelos webdesigners, o Dreamweaver, possui alguns recursos que ajudam o desenvolvedor PHP. Através de sua barra de ferramentas “PHP” é possível abrir blocos de códigos, criar estruturas de condição e laço, configurar variáveis de sessão e cookie. Ao utilizar a barra de ferramentas “Apllication” será possível configurar o acesso a banco de dados, criar tabelas dinamicamente, inserir controles de navegação e gerar 20 formulários automaticamente. Mesmo com essas ferramentas o Dreamweaver não se compara com toda a estrutura que o Visual Web Developer proporciona para o ASP.NET. Figura 8 – Ambiente de desenvolvimento Dreamweaver Como pode ser observado, utilizar um ambiente de desenvolvimento próprio para a linguagem facilita e aumenta a produtividade do desenvolvedor. No caso do Visual Web Developer, o software já está preparado para que funções comuns sejam resolvidas apenas incluindo um componente. 4.7 Segurança A informação representa um dos bens mais valiosos de um projeto Web, garantindo a continuidade dos negócios, minimizando os riscos de perdas financeiras e a imagem da empresa no mercado. Pelo grau de importância que representa, a informação precisa ser adequadamente protegida. Seja qual for a forma apresentada ou o meio através do qual a informação é compartilhada ou armazenada, deve-se sempre protegê-la adequadamente. 21 A segurança da informação é baseada em três pilares: confidencialidade (garantia de que a informação é acessível somente por pessoas autorizadas), integridade (exatidão da informação) e disponibilidade (garantia de acesso à informação sempre que preciso). O compartilhamento de recursos de informação aumenta a dificuldade de se controlar o acesso e os riscos envolvidos, permitindo a ocorrência cada vez mais freqüente de fraudes eletrônicas, espionagem, sabotagem, vandalismo, problemas causados por vírus, hackers e ataques denial of service (indisponibilidade dos serviços), entre outros. (Guia de Segurança em Ambientes Web, http://www.cqgp.sp.gov.br/manuais/seguranca/seguranca.htm, set. 2006) Sendo assim, a proteção da informação é o ponto mais importante no desenvolvimento de sistemas para Internet. Quando é feito uma comparação entre os servidores IIS (Microsoft) e Apache, encontra-se dois servidores de alta qualidade, mas ambos sujeitos a falhas. Apesar da possibilidade de ser usado em ambiente Windows, quase todos os servidores que usam Apache estão sendo instalados em ambiente Linux. Não que o Linux não seja sujeito à falhas e invasões, mas a maioria dos ataques visam sistemas Windows por serem mais utilizados e com mais brechas de segurança. O servidor IIS para Windows possui elevados níveis de segurança, no entanto sua configuração tem um papel crucial para a segurança dos dados. Um servidor mal configurado poderá trazer problemas de acesso não autorizado, execução de código arbitrária, determinação de perfil, negação de serviço, elevação de privilégios, vírus, worms, cavalos de Tróia, entre outros. Não basta apenas que um servidor tenha ótimos níveis de segurança. É necessário que o desenvolvedor do sistema para Web pense na segurança de seu projeto desde o início do desenvolvimento. Ele deve seguir todas as regras da linguagem e tratar todas as informações que são manipuladas nos formulários de entrada/saída, ou seja, o modo como o desenvolvedor escreve seus códigos é fundamental para um funcionamento seguro de seu projeto. Quanto à segurança em aplicações Web, dois procedimentos devem ser considerados: autenticação e autorização, normalmente verificando o login e senha a partir de um banco de dados. Após o login, de acordo com o tipo de usuário, podemos limitar o acesso a determinadas páginas e recursos do site. Isso se chama autorização. 22 Existem três formas de autenticar o usuário com ASP.NET: Windows (padrão), Forms e Passport. O primeiro método é normalmente utilizado em domínios de rede (intranets), onde o usuário já está logado. Quando ele acessar a aplicação ASP.NET, estará autenticado. O Passport permite integrar a autenticação do seu site como um serviço da Microsoft. Porém a mais utilizada é sem dúvida a Forms, onde é construido um formulário e são validadas as credenciais em qualquer mecanismo de armazenamento de dados, como um banco de dados SQL Server ou mesmo um arquivo XML. Como foi dito anteriormente, tanto os códigos PHP como os códigos ASP.NET podem ser escritos utilizando qualquer editor de texto. Mas é através do Visual Web Developer 2005 que o ASP.NET mostra suas facilidades de desenvolvimento, principalmente quando se trata de segurança. O Visual Web Developer oferece ao desenvolvedor componentes que criam automaticamente toda uma complexa estrutura para o criação de projetos que envolvem login/senha. Automaticamente regras de segurança são adicionadas ao projeto, tornando o trabalho do desenvolvedor mais rápido e com grande nível de segurança. O desenvolvedor é capaz ainda de incrementar este código com novas diretivas de segurança. O Visual Web Developer oferece uma interface para administração onde é feita a configuração da aplicação e salva diretamente no arquivo web.config. Através da interface de administração é possível configurar o tipo da autenticação, definir onde serão salvos as informações dos usuários, logs sobre a utilização da aplicação ou ainda um sistema de estatística. Também é possível utilizar a opção Role Manager onde pode-se definir grupos de usuários. Por exemplo: usuários do grupo "Funcionários" não acessem páginas de usuários do grupo "Gerentes". Caso tenha alguma tentativa de acesso indevido o usuário é redirecionado automaticamente para tela de login. As informações do usuário (que antes eram salvas em cookies ou em variáveis de sessão) podem ser salvas em um banco de dados Access ou SQLServer. Pode-se ainda realizar uma consulta a um banco de dados e salvar o retorno no cachê. Dessa maneira não é mais necessário fazer repetitivamente consultas ao banco de dados. Já o desenvolvedor PHP deve escrever toda a estrutura de autenticação e autorização. Isso se torna um problema, principalmente quando o projeto for extenso. É necessário que o desenvolvedor trate todas as informações digitadas pelo usuário do sistema, verificar a qual grupo pertence (ex: anônimo, colaborador, administrador) e a saída destes dados. Qualquer 23 esquecimento ou brecha deixada para trás pode trazer enormes problemas na segurança da aplicação no futuro. Existe a possibilidade de adicionar scripts PHP desenvolvidos por terceiros. Fazer o uso de tais scripts agilizam o desenvolvimento dos projetos PHP, pois a tarefa de autenticação e autorização já esta pronta, porem essa solução não é integrada diretamente ao PHP. Usar scripts prontos pode elevar o custo de desenvolvimento, além de correr o risco do código não ser tão seguro quanto deveria ser. Veja abaixo uma comparação entre códigos de login entre PHP e ASP.NET. A seguir a página de login que será autenticada através de um código PHP: login.php <form name="login" method="post" action="confirmar_login.php"> <table width="400" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="150"><font size="2" face="Verdana"> Login: </font></td> <td width="250"><font size="2" face="Verdana"> <input name="login" type="text" id="login"></font></td> </tr> <tr> <td><font size="2" face="Verdana"> Senha: </font></td> <td> <input name="senha" type="password" id="senha"></td> </tr> <tr> <td><font size="2" face="Verdana"> </font></td> <td><font size="2" face="Verdana"> </font></td> </tr> <tr> <td><font size="2" face="Verdana"><center> <input name="entrar" type="submit" id="entrar" value="Entrar"> </center></font></td> <td><font size="2" face="Verdana"> <a href="senha.php">Esqueceu a senha?</a> <a href="cadastrar.php">Cadastre-se</a></font></td> </tr> </table> </form> Este é o resultado durante a execução pelo navegador: Figura 9 – Resultado da execução do arquivo login.php 24 Após o visitante entrar com login e senha e clicar “Entrar”, a página confirmar_login.php vai ser requisitada. Esta página que irá fazer a autenticação do usuário. Veja o código fonte: confirmar_login.php <? session_start(); include "config.php"; $login = $_POST['login']; $senha = $_POST['senha']; $db = mysql_connect($host, $login_db, $senha_db); //conecta ao mysql $basedados = mysql_select_db($database); //conecta a base de dados $confirmacao = mysql_query("SELECT * FROM $tabela WHERE login='$login' AND senha='$senha'", $db); //verifica se login e senha conferem $contagem = mysql_num_rows($confirmacao); //traz o resultado da pesquisa acima if($contagem != 1){ echo "Login ou senha inválidos.<a href=javascript:history.go(-1)>Clique aqui para voltar.</a>"; exit();//se a senha for incorreta, aparece essa mensagem } $_SESSION[logado] = $login; $_SESSION[senhalog] = $senha; echo "<html><head><title>Confirmação de Login</title></head><body>"; echo "Usuário logado<br><hr>"; //se a senha digitada for correta, aparece essa mensagem $consulta = mysql_query("SELECT tipo FROM $tabela WHERE login='$login'"); while ($linha = mysql_fetch_array($consulta)){ $tipo = $linha["tipo"]; } if ($tipo==1){ echo "Administrador do sistema"; else{ echo "Usuário do sistema"; } echo " - <a href='logout.php'>Logout</a>"; ?> </body></html> O código abaixo é do arquivo requisitado pela página confirmar_login.php para conseguir os dados de acesso ao banco de dados: config.php <? $host="localhost"; $database="bancodedados"; $tabela="tbl_usuarios"; $login_db="root"; $senha_db=""; ?> Acima foi apresentando um sistema básico de login utilizando PHP, cujo qual faz a verificação do usuário e define a que grupo faz parte (administrador ou visitante). Segue 25 abaixo veremos o mesmo exemplo desenvolvido em ASP.NET através dos componente do Visual Web Developer: Figura 10 – Adicionando o componente Login no projeto Para adicionar um formulário de login, basta arrastar o componente “Login” localizado na barra de ferramentas Login para a página em branco. O Visual Web Developer automaticamente adiciona uma tabela contendo duas caixas de textos, uma checkbox e um botão. Ao utilizar o Login Taks é possível configurar uma formatação da tabela. Através da opção Administer Website (ou do botão ASP.NET Configuration) é aberto no navegador a “Web Site Administration Tool”. Os assistentes dessa página permitem ao desenvolvedor configurar toda a segurança no acesso a seu projeto. Por meio do link Security o desenvolvedor escolherá o tipo de acesso (Internet ou Local), adicionará usuários, definirá grupos de usuários e criará regras de acesso. 26 Figura 11 – Ferramenta Web Site Administration Figura 12 – Selecionando o tipo de acesso 27 Figura 13 – Configuração de regras de acesso O Apache oferece algo parecido com ambiente Web Site Administration. Com o uso do arquivo especial .htaccess, é possível adicionar alguns métodos de segurança para proteger diretórios Web e criar meios de login controlado. Quando o usuário estiver navegando por alguma página do servidor Apache, todo diretório que ele tentar acessar, o Apache verificará o arquivo .htaccess para restringir ou liberar o acesso. Com isso é possível fazer duas coisas básicas em relação à segurança: restringir o acesso aos arquivos e diretórios do servidor Web através de um usuário e senha, ou então pelo IP/Hostname de quem está acessando. Mas diferente do ambiente gráfico proporcionado pelo Web Site Administration, para configurar o .htaccess é necessário editar arquivos de configuração do Apache, tornando a tarefa não tão simples como no ASP.NET. Abaixo segue o código gerado pelo componente Login: <%@ Page Language="C#" %> <script runat="server"> </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> <asp:Login ID="Login1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4" 28 BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" FontSize="0.8em" ForeColor="#333333"> <LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" /> <TextBoxStyle Font-Size="0.8em" /> <TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" /> <InstructionTextStyle Font-Italic="True" ForeColor="Black" /> </asp:Login> </div> </form> </body> </html> Mesmo sem ter criado nenhum tratamento para a entrada de dados, o próprio componente ao ser executado pelo servidor adiciona regras. Veja o código abaixo após a página ASP ser executada pelo servidor: <html xmlns="http://www.w3.org/1999/xhtml" > <head><title> Untitled Page </title></head> <body> <form method="post" action="Default2.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="form1"> <div> <input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> <input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTgwMTkwMjE3OWQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgIFEUxv Z2luMSRSZW1lbWJlck1lBRdMb2dpbjEkTG9naW5JbWFnZUJ1dHRvbl7j+eD7qpF2mFbgR7ONu0qTd6DZ" /> </div> <script type="text/javascript"> <!-var theForm = document.forms['form1']; if (!theForm) { theForm = document.form1; } function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } } // --> </script> <script src="/Login/WebResource.axd?d=dRdwNf_EtWnKBsUL8Cpqp8qdbDG5jDeIR1aF1t5rWk1&t=632951258960156250" type="text/javascript"></script> <script type="text/javascript"> <!-function WebForm_OnSubmit() { if (ValidatorOnSubmit() == false) return false; return true; } // --> </script> 29 <div> <table cellpadding="4" border="0" id="Login1" style="backgroundcolor:#F7F6F3;border-color:#E6E2D8;border-width:1px;border-style:Solid;"> <tr> td><table cellpadding="0" border="0" style="color:#333333;fontfamily:Verdana;font-size:0.8em;"> <tr> <td align="center" colspan="2" style="color:White;backgroundcolor:#5D7B9D;font-size:0.9em;font-weight:bold;">Log In</td> </tr><tr> <td align="right"><label for="Login1_UserName">User Name:</label></td><td><input name="Login1$UserName" type="text" id="Login1_UserName" style="font-size:0.8em;" /><span id="Login1_UserNameRequired" title="User Name is required." style="color:Red;visibility:hidden;">*</span></td> </tr><tr> <td align="right"><label for="Login1_Password">Password:</label></td><td><input name="Login1$Password" type="password" id="Login1_Password" style="font-size:0.8em;" /><span id="Login1_PasswordRequired" title="Password is required." style="color:Red;visibility:hidden;">*</span></td> </tr><tr> <td colspan="2"><input id="Login1_RememberMe" type="checkbox" name="Login1$RememberMe" /><label for="Login1_RememberMe">Remember me next time.</label></td> </tr><tr> <td align="right" colspan="2"><input type="submit" name="Login1$LoginButton" value="Log In" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("Login1$LoginButton", "", true, "Login1", "", false, false))" id="Login1_LoginButton" style="color:#284775;background-color:#FFFBFF;border-color:#CCCCCC;borderwidth:1px;border-style:Solid;font-family:Verdana;font-size:0.8em;" /></td> </tr> /table></td></tr> </table> </div> <script type="text/javascript"> <!-var Page_Validators = new Array(document.getElementById("Login1_UserNameRequired"), document.getElementById("Login1_PasswordRequired")); // --> </script> <script type="text/javascript"> <!-var Login1_UserNameRequired = document.all ? document.all["Login1_UserNameRequired"] : document.getElementById("Login1_UserNameRequired"); Login1_UserNameRequired.controltovalidate = "Login1_UserName"; Login1_UserNameRequired.errormessage = "User Name is required."; Login1_UserNameRequired.validationGroup = "Login1"; Login1_UserNameRequired.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid"; Login1_UserNameRequired.initialvalue = ""; var Login1_PasswordRequired = document.all ? document.all["Login1_PasswordRequired"] : document.getElementById("Login1_PasswordRequired"); Login1_PasswordRequired.controltovalidate = "Login1_Password"; Login1_PasswordRequired.errormessage = "Password is required."; Login1_PasswordRequired.validationGroup = "Login1"; Login1_PasswordRequired.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid"; Login1_PasswordRequired.initialvalue = ""; // --> </script> <script src="/Login/WebResource.axd?d=ip31Uw_rLQyMbsyYd1lrHQ2&t=632951258960156250" type="text/javascript"></script> <script type="text/javascript"> 30 <!-var Page_ValidationActive = false; if (typeof(ValidatorOnLoad) == "function") { ValidatorOnLoad(); } function ValidatorOnSubmit() { if (Page_ValidationActive) { return ValidatorCommonOnSubmit(); } else { return true; } } // --> </script> </form> </body> </html> Como demonstrado, o próprio componente adiciona diversas diretivas de segurança na entrada de dados do formulário de login como a obrigatoriedade na entrada de dados nos dois campos e a proibição de login caso o usuário entre com caracteres especiais. Todas essas regras são verificadas através de funções JavaScript (que nada tem a ver com a linguagem Java). Ao utilizar scripts JavaScript não é necessário fazer um post para que o servidor faça os testes. Pode-se adicionar códigos JavaScripts em aplicação PHP, contudo para isso o desenvolvedor deverá implementar tais códigos. Já em aplicações ASP.NET utilizando o Visual Web Developer basta arrastar um simples componente para que toda a estrutura seja criada. 4.8 Reuso da linguagem As aplicações desenvolvidas para Web utilizam o paradigma cliente-servidor. Seja num projeto PHP ou um projeto ASP.NET, o que o usuário verá na tela de seu navegador será uma página com códigos HTML. Todas as páginas são lidas pelo servidor e antes de serem enviadas ao cliente, são interpretadas. O resultado final é entregue ao cliente. Escrever uma página PHP é muito simples. Para iniciar um script PHP numa página HTML, basta abrir a tag <? e finalizar com ?>. Com isso é possível adicionar diversos trechos de script PHP no decorrer da página, algo muito simples para profissionais que tenham uma boa noção de HTML e lógica de programação estruturada. 31 Mas, por conta dessa junção entre a construção da página e scripts, surge um grande problema: o reuso da linguagem. Quanto maior a complexidade da página, mais difícil será o reaproveitamento de código PHP. Para um bom reaproveitamento do código a melhor forma é através da orientação de objetos. Umas das soluções para o reuso no PHP é o uso do Smarty. O Smarty é uma classe de templates que separa a interface e a lógica de programação. Seu objetivo é facilitar e melhorar o desenvolvimento das aplicações PHP. O Smarty também melhora o desempenho das aplicações, pois acaba com o overhead (processamento ou armazenamento em excesso) compilando tudo de uma só vez. Exemplo: index.php include (‘Smarty.class.php’) $smarty = new Smarty; //passer algum conteúdo ao template, geralmente valores provenientes //de banco de dados ou outra origem. Exemplo estático: $smarty->assign(‘nome’, ‘TeHospedo’); $smarty->assign(‘endereco’, ‘Rua dos Andradas, 1234’); //exibe template $smarty->display (‘index.tpl’); index.tpl <html> <head> <title>Informações do usuário</title> </head> <body>Informações do usuário:<p> Nome: ($nome)<br> Endereço: ($endereco)<br> </body> </html> Saída no navegador <html> <head> <title>Informações do usuário</title> </head> <body>Informações do usuário:<p> Nome: TeHospedo<br> Endereço: Rua dos Andradas, 1234<br> </body> </html> O ASP.NET adota um modelo de programação orientado a objetos, no qual os desenvolvedores adicionam controles aos formulários e escrevem os códigos para manipular os eventos. Todo o design da página é salva em uma página com extensão .aspx. Ao adicionar códigos C ou Visual Basic sobre o projeto, é acrescentado um outro arquivo apenas para os 32 códigos (.aspx.cs ou .aspx.vb, respectivamente). Isso facilita muito o reuso dos códigos, pois eles são desenvolvidos totalmente independentes da página que os utiliza. 4.9 Implementação da aplicação junto ao design do projeto Como foi dito anteriormente, o editor de textos é usado para escrever aplicações PHP. No entanto existem outros softwares que auxiliam nesta tarefa. No caso de criar design para um projeto o mais utilizado é o Dreamweaver. Uma das ferramentas que auxilia muito o desenvolvimento de um design padrão para todo o projeto é o template. O template é um modo em que o desenvolvedor cria toda a estrutura comum do site uma única vez, deixando espaços designados para serem mutáveis. Essa ferramenta ajuda muito, tanto para websites grandes ou pequenos, pois se for necessário alterar parte ou todo o visual do projeto, o desenvolvedor não precisará modificar página por página. Uma vez modificado o template, ele atualiza todas as demais páginas. Figura 14 – Exemplo de uso do template. No caso acima, apenas o quadro central é capaz de ser editado. 33 O Visual Web Developer oferece uma ferramenta muito parecida com o template encontrado no Dreamweaver: as Master Pages: O processo de desenvolvimento é praticamente o mesmo: cria-se um arquivo de Master Page e automaticamente o Visual Web Developer gera um arquivo com um quadro central. O que for editado fora deste quadro será comum em todas as páginas. A área do quadro central é a parte onde poderá ser editada as páginas do projeto. Figura 15 – Master Page no Visual Web Develop. 34 5. CONCLUSÃO Apesar do PHP possuir recursos para orientação a objetos, não é possível comparar PHP diretamente com o ASP.NET, pois o modo de programação entre as duas linguagens é totalmente diferente. O PHP é comparável com o ASP antigo, pois são duas linguagens com a mesma funcionalidade e a mesma forma de programação (estruturado), enquanto o ASP.NET pode ser comparado a tecnologia Java, pois trabalham em ambientes orientado a objetos. Profissionais que possuem conhecimento em programação estruturada terão mais facilidade a aprender PHP, enquanto que profissionais que possuem conhecimento em ambiente orientado a objeto terão mais facilidades em programar ASP.NET através do ambiente Visual Web Developer. Desenvolver em PHP é mais barato quando comparamos com o ASP.NET. Apesar de ambas as linguagens serem gratuitas, com o PHP é possível utilizar computadores de hardware fraco para o desenvolvimento do código. Ao desenvolver com ASP.NET, o recomendado é utilizar o ambiente de desenvolvimento Visual Web Developer, um software que funciona em computadores com baixo processamento e memória, mas que necessita de poder de processamento para incluir componentes e executar os projetos. Ambas as linguagens oferecem muitos recursos quanto a segurança do projeto, com destaque ao ASP.NET. Através dos componentes do Visual Web Developer e do ambiente de configuração de segurança Web Site Administration, toda uma gama de verificações são adicionadas ao projeto Web. Mesmo assim, a segurança do projeto depende que seu desenvolvedor utilize todas as diretivas de segurança proporcionadas pela linguagem e servidor, além de ficar atento a possíveis ataques e atualizações de hardware, software e código. Tanto PHP quanto ASP.NET são ótimas opções para desenvolver projetos Web. Apesar da evolução do PHP quanto a seu desempenho em aplicações mais complexas, ele ainda deixa a desejar em projetos maiores. O ASP.NET é mais indicado para grandes projetos pois seu ambiente de desenvolvimento proporciona facilidades a tarefas repetitivas (através de seus 35 componente), agilizando o desenvolvimento , além de uma melhor separação quanto a código e layout. 36 6. REFERÊNCIAS BIBLIOGRÁFICAS ARAUJO, Herbet. A História do PHP. Disponível http://php.locaweb.com.br/post.php?id=86. Acesso em 20 de agosto de 2006. via URL: CISNEIROS, Hugo. Uso e Segurança com o.htaccess no Apache. Disponível via URL: http://www.devin.com.br/eitch/htaccess/. Acesso em 13 de outubro de 2006. DURÃES, Ramon. ASP.NET 2.0 - Visual Studio 2005 - Pré Beta2. Disponível via URL: http://www.microsoft.com/brasil/msdn/Tecnologias/aspnet/WhidbeyBeta2Preview.mspx. Acesso em 20 de agosto de 2006. DURÃES, Ramon. ASP.Net 2.0 - Visual Studio 2005 (Whidbey). Disponível via URL: http://www.imasters.com.br/artigo/2681/visual_studio/aspnet_20__visual_studio_2005_whidbey/. Acesso em 10 de julho de 2006. FEITOSA, Ciro. Como desenvolver melhor na Web. Disponível via URL: http://cirofeitosa.com.br/post/como-desenvolver-melhor-na-web. Acesso em 12 de outubro de 2006. GUIMARÃES, Renato. ASP.Net - Uma mudança radical no desenvolvimento web. Disponível via URL: http://www.imasters.com.br/artigo/1624/dotnet/aspnet___uma_mudanca_radical_no_desenvolvimento_websua_vida_vai_m. Acesso em 12 de junho de 2006. MELGAR, Robinson. “Programe em ASP.NET”. Revista W, Edição 71. Ed. Europa, Maio/2006. MICROSOFT. Proteja seu servidor. Apresenta diversas dicas de segurança. Disponível via URL: http://www.microsoft.com/brasil/security/guidance/topics/devsec/secmod89.mspx. Acesso em 25 de setembro de 2006. MICROSOFT. Readme: Microsoft Visual Studio 2005 Setup Issues. Documentação do software Visual Studio 2005. Disponível via URL: http://msdn.microsoft.com/vstudio/support/readme/default.aspx. Acesso em 15 de setembro de 2006. MICROSOFT. Requisitos do sistema Windows Server 2003. Disponível via URL: http://www.microsoft.com/brasil/windowsserver2003/requisitos_sistema.mspx. Acesso em 15 de setembro de 2006. MORAZ, Eduardo. “Treinamento Prático em PHP”. Ed. Novatec, 2005. NIEDERAUER, Juliano. “Desenvolvendo Websites com PHP”. Ed. Digerati Books, 2004. PAULI, Guinther. “Editorial”. Revista MSDN Magazine, Edição 30. Ed. DevMedia, Agosto/2006. 37 PHP. A História do PHP e projetos relacionados. Documentação do PHP. Disponível via URL: http://br.php.net/history. Acesso em 20 de agosto de 2006 SEGURANÇA. Guia de Segurança em Ambientes Web. Dicas reunidas pelo Governo do Estado de São Paulo. Disponível via URL: http://www.cqgp.sp.gov.br/manuais/seguranca/seguranca.htm. Acesso em 25 de setembro de 2006. VIVAS, Mauricio. “Curso de Aplicações WEB em PHP”. Disponível via URL: http://www.inf.ufsc.br/~vitor/get/AplicacoesWebemPHP.pdf. Acesso em 25 de maio de 2006. WIKIPEDIA. ASP.NET. Disponível via URL: http://pt.wikipedia.org/wiki/ASP.NET. Acesso em 12 de junho de 2006. 38 7. ASSINATURAS ________________________________ ________________________________ Daniel Reenlsober Prof. Ademário Araújo Jr. FAJ - Orientador
Documentos relacionados
Felippe Velasques Giriboni
linguagem de marcação utilizada para produção de páginas na web, que permite a criação de documentos que podem ser lidos em praticamente qualquer tipo de computador e transmitidos pela internet. Pa...
Leia mais