• Olá Visitante, se gosta do forum e pretende contribuir com um donativo para auxiliar nos encargos financeiros inerentes ao alojamento desta plataforma, pode encontrar mais informações sobre os várias formas disponíveis para o fazer no seguinte tópico: leia mais... O seu contributo é importante! Obrigado.

Tutorial de ASP.NET

Serr@no™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
1,690
Gostos Recebidos
0
Aplicações Web


Introdução

Este tutorial pretende apresentar as ASP .NET como uma mais valia no campo de desenvolvimento de aplicações Web. As ASP .NET são uma tecnologia criada pela Microsoft que veio substituir as suas ASP. Também se vai falar um pouco de ASP, principalmente para que se tenha noção de onde nasceram as ASP .NET.
Este tutorial é largamente inspirado nas aulas que estou a ter de ASP .NET, e nos acetatos que o engenheiro disponibiliza. Podem aceder à página da cadeira na secção de Tecnologias de Informação do ISEL, para obter mais recursos. Também me inspirei em alguns tutoriais on-line estrangeiros.
Quanto a outros recursos na net, encontrei um site de ASP .NET português com muitos exemplos e artigos: aspnet.pt4free.net. Fórum ainda não encontrei nenhum de jeito.



O que se deve deve saber à partida

As ASP .NET são uma tecnologia madura, que envolve muitas coisas. Eu não vou estar aqui a falar de todas essas coisas que são precisas. Saber programar numa linguagem qualquer é fundamental. Tal como saber HTML. As ASP .NET usam uma linguagem do .NET para processarem as suas páginas: C#, VB .NET ou J Script. Eu nos meus exemplos vou usar marioritariamente C#. Conhecimentos que devem estar presentes:
  • WWW,HTML. No fundo saber como se constroem páginas em HTML.
  • C#: O conhecimento de linguagens orientadas a objectos como o C++ e principalmente o Java devem chegar.
  • Funcionamento elementar do protocolo HTTP.
  • Princípios básicos do XML e do DOM.
  • Base de dados e tecnologias de acesso à mesma.
Alguns destes tópicos, como XML e Bases de Dados só vão ser falados lá mais para a frente, e não vão ser muito aprofundados. Por outro lado vou tentar sempre que falar de assuntos que se deveria saber e que eu não explico, colocar links para recursos na web que falem dos mesmos.
Também a certas alturas vou comparar as ASP .NET com PHP e com CGI. Isto para apresentar vantagens e diferenças.

The big Picture

Quando estamos a desenvolver páginas dinâmicas, temos sempre código a nível do servidor (ASP .NET, PHP, CGI...), que é independente do código a nível cliente(Javascript, HTML...). Ao receber um pedido, o servidor vê em que tecnologia está a página (através da extensão) e faz o parse devido, chamando por exemplo o módulo encarregue de tratar ASP .NET. O que resulta desse módulo não é nada mais nada menos do que uma página HTML, gerada tendo em conta certas variáveis e factores. É essa página que posteriormente é enviada para o servidor.
Por exemplo, o meu site de Mensagens para Telemóvel é completamente dinâmico, e praticamente só usa uma página: listar.php. Esta página recebe a categoria a listar, vai à base de dados fazendo o select, retiro de lá uns quantos registos e depois é criada a página já com isto tudo e enviada para o cliente. Se virem o código da página só vêm HTML. Outro exemplo é esta página, também é construida dinamicamente. É constituída por um cabeçalho(lá em cima com os links), o corpo e o rodapé. Desta forma se alterar o cabeçalho a alteração afecta logo todas as páginas do meu site.
Para rematar, é importante que esteja apreendido que todas estas tecnologias a nível servidor são completamente independentes do browser (máquina cliente), E são sempre executadas a nível do servidor.
 

Serr@no™

GF Ouro
Membro Inactivo
Entrou
Set 23, 2006
Mensagens
1,690
Gostos Recebidos
0
O que são as ASP?

As Active Server Pages são uma tecnologia da Microsoft para o desenvolvimento da camada UI (de User interface) de aplicações Web - identificada pelas extensões .asp e .asa. Uma ASP é composta por um template de apresentação (definido em HTML) e pelo script que será interpretado pelo servidor.
Exemplo de uma simples página em ASP:
Código:
 <%@ Language="javascript" %>
 <script language="javascript" runat="server">
        function Add(x, y)
        {
                return x+y;
        }
 </script>


 <html>
        <head><title> Sample ASP </title></head>
        <body>
                <h2> Sample ASP </h2>
                <h3> 2+2=<%=Add(2,2)%> </h3>
                <h3> Ciclo </h3>
                <%
                        for(var i=0; i<10; ++i)
                                Response.Write("i="+i+"; ");
                %>
        </body>
 </html>
Como se pode ver, esta ASP está a usar Java Script (na verdade é J Script, uma vertente de Javascript da Microsoft), mas também poderia estar a usar VB Script. tudo o que está entre <% e %> é código que será executado no servidor. E como se pode ver também, a função Add(x,y) está dentro de uma tag script que tem um atributo runat, que indica que aquele troço de código é para ser corrido a nível do servidor.



O que é o PHP?

O PHP é uma linguagem de scripting a nível servidor vastamente utilizada no desenvolvimento de aplicações Web e que pode ser embebida em HTML. Esta linguagem é muito utilizada tanto pela comunidade de Software Livre como por vários outras pessoas, devido à sua simplicidade. O PHP é o principal adversário das ASP, contudo, na minha humilde opinião, fica muito atrás das ASP .NET. Eu tenho já alguma experiência com PHP, pois realizei vários sites com esta tecnologia.
Mesmo compreendendo a simplicidade de uso do PHP, que serve para fazer coisas rápidas e simples, sempre foi da minha opinião que não seria uma linguagem apropriada para coisas mais a sério. Mas esta opinião pode ser discutível, por pessoas mais experientes em PHP.
Agora aquele exemplo de código, mas em PHP:
Código:
 <?php
 function add( $x , $y)
 {
        return $x + $y;
 }
 ?>
 <html>
        <head><title> Sample PHP </title></head>
        <body>
                <h2> Sample PHP </h2>
                <h3> 2+2=<?php echo Add(2,2); ?> </h3>
                <h3> Ciclo </h3>
                <?php
                        for($i=0; $i<10; ++$i)
                                echo "i = $i";
                ?>
        </body>
 </html>
Como podem ver, também é muito simples. Aqui há a pequena diferença de todas as variáveis terem de ter um '$' prefixo.Uma coisa que aprecio muito no PHP é a facilidade de construir strings, simplesmente embebendo as variáveis no meio delas.

E o CGI, o que é?

Common Gateway Interface. Podemos criar um programa em qualquer linguagem (por exemplo C++), e pedir ao servidor Web para redereccionar um pedido de uma página para ele. Contudo o CGI trás alguns problemas. Para começar o debug, já viram o que é para alterar uma coisa, ter de recompilar, enviar para o servidor... e depois falhou alguma coisa e toca a fazer tudo outra vês. E sem se dizer mais nada, para cada pedido a um CGI é criado um novo processo, redereccionados as suas handles de input/output, etc... coisas que são pesadas.
É claro que esta última parte se pode optimizar, por exemplo no IIS(servidor da Microsoft), há umas coisas chamadas ISAPI, que são umas DLL's que podem ser mapeadas inproc aumentando assim a eficiência. Mas atenção, ISAPI não é para qualquer um, ter de andar a mexer em DLL's e essas coisas é só para pessoas crescidas. Nos CGI também há outro pormenor: temos de ser nós a escrever o cabeçalho HTTP da resposta, com o tamanho de toda a página, essas coisas.
Há muito mais do que isto, mas já se está a ver tanta complicação para fazer algo que no PHP e nas ASP/ASP .NET se faz tão facilmente...
Aqui vai o exemplo num CGI em C++:
Código:
 #include <iostream>
 #include <sstream>


 using namespace std;


 template<typename T>
 T add( T x, T y )
 {
        return x + y;
 }


 int main( int argc, char* argv[] )
 {
        stringstream stream;


        stream << "<html>" << endl
                << "<head><title> Sample C++ CGI </title></head>" << endl
                << "<body>" << endl
                << "<h2> Sample C++ CGI </h2>" << endl
                << "<h3> 2 + 2 = " << add(2,2) << "</h3>" << endl
                << "<h3> Ciclo </h3>" << endl;


        for( int i = 0; i < 10; ++i )
                stream << "i=" << i << " ";


        stream << "</body></html>" << endl;


        // o Servidor Web vai receber a resposta pelo standard output
        // e temos de enviar os Headers do http!
        string html = stream.str();


        cout    << "HTTP/1.1 200 OK" << endl    // protocolo
                << "Content-Type: text/html" << endl
                << "Content-Length: " << html.size() << endl
                << "Connection: keep-alive" << endl
                << "Cache-Control: no-cache" << endl
                << endl         // o header HTTP acaba com uma linha em branco
                << html;        // enviar a página


        return 0;
 }

E mais, e mais e mais...

Há ainda várias outras tecnologias server side para desenvolvimento de aplicações Web. Neste momento só me vem à cabeça o Perl e as JSP. Pelo muito pouco que sei sobre elas, o Perl fica mais ou menos entre o CGI e o PHP, enquanto que as JSP (Java Server Pages) são uma tecnologia da Sun que pelo que vi está dentro da mesmo filosofia das ASP .NET. Contudo não conheço o suficiente para fazer uma comparação razoável, e não encontrei nada na net que me esclarecesse.
Se houver alguém ambientado com Perl ou JSP's ou outra tecnologia que me tenha passado ao lado, por favor contribua com um comentário convertendo o exemplo que tenho usado para essa tecnologia. Comentários gerais sobre tudo o que escrevo, informação útil ou exemplos extra são sempre bem vindos.
No próximo capítulo vou introduzir as ASP .NET, falar de como se pode testar e correr páginas em ASP .NET um pouco da filosofia de um servidor Web e também falar um pouco da Plataforma .NET.
 
Topo