NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!
UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
WINDOWS 7 - CURSO COMPLETO - 2400 páginas Autor: Júlio Battisti |
|||||
---|---|---|---|---|---|
Lição 296 - Capítulo 13 - Uma "Rápida Introdução" ao ASP.NET | |||||
Neste tópico apresentarei uma rápida introdução à tecnologia ASP.NET. Para uma descrição completa do Framework .NET e da criação de páginas ASP.NET consulte o E-book “ASP.NET: Uma Nova Revolução na Criação de Sites e Aplicações Web”, a venda em formato de E-book, em https://juliobattisti.com.br/loja/detalheproduto.asp?CodigoLivro=CPRO000002 Mais uma versão de ASP? ASP, ASP 2.0, ASP 3.0 e agora ASP.NET. Menos de dois anos após o lançamento do ASP 3.0, o qual faz parte do IIS 5.0 que é instalado com o Windows 2000, a Microsoft lança mais uma versão da tecnologia ASP – Active Server Pages. Na verdade não é apenas o lançamento de mais uma versão. O ASP.NET está inserido em um contexto maior, que é a iniciativa .NET da Microsoft. Além de estar inserido no contexto do .NET, a tecnologia ASP.NET apresenta “enormes” diferenças em relação ao ASP 3.0, o que não permite que a caracterizemos simplesmente como um upgrade do ASP 3.0. A tecnologia ASP.NET segue os mesmos princípios do Framework .NET, cujo principal objetivo é facilitar o desenvolvimento de aplicações. No caso específico do ASP.NET, aplicações Web. Com o uso do ASP.NET as aplicações Web passam a usufruir de todos os recursos do Framework .NET. A tecnologia ASP teve uma enorme aceitação por parte da comunidade de desenvolvedores. Para comprovar tal afirmação basta conferir o número de sites que utilizam ASP. Esta aceitação não se deve somente à força de mercado da Microsoft, mas também à facilidade de desenvolvimento propiciada pela utilização de ASP. Novidades e Melhorias do ASP.NET: Neste item vamos apresentar as novidades e vantagens do ASP.NET. Mais do que uma simples justificativa para uma nova versão, procuro demonstrar os benefícios de utilizarmos ASP.NET para a criação de aplicações WEB. Novidade 01: Faz Parte do Framework .NET Pode parecer óbvio, mas nunca é demais salientar este aspecto. ASP.NET é parte integrante do Framework .NET, e desta maneira tem acesso a todos os benefícios da plataforma .NET da Microsoft. Em uma página ASP.NET temos acesso a todas as classes da .biblioteca de classes do Framework .NET - .NET Framework Class Library. Também temos acesso a um tipo comum de dados e a todos os benefícios do Framework .NET. Só estes benefícios já justificam uma migração do ASP 3.0 para o ASP.NET. Novidade 02: Suporte a Múltiplas Linguagens Com as versões anteriores do ASP estávamos limitados praticamente a duas linguagens de Script: VBScript e JScript. Além disso, por serem linguagens de Script estas eram interpretadas, ou seja, ao carregar uma página ASP, o IIS precisa ler linha por linha de código, interpretar e executar. Com ASP.NET podemos utilizar qualquer linguagem que esteja habilitada para o Framework .NET. Inicialmente são disponibilizadas as linguagens VB.NET, C# e Jscript.NET. Apesar do nome JScript, esta e as demais linguagens são compiladas, o que significa que toda página ASP.NET é compilada antes de ser executada. Na primeira vez que uma página ASP.NET é acessada, ela é compilada em uma classe do Framework .NET. A versão compilada é mantida em cache para melhorar o desempenho para os próximos acessos. Qualquer alteração na página é automaticamente detectada pelo Framework .NET; a página é recompilada e a versão em cache é atualizada, fazendo com que o cliente tenha sempre acesso à versão mais atualizada da página. Se não houver mudanças, continuará sendo utilizada a versão que está no cache, o que torna a carga da página muito mais rápida. Além disso diversas empresas de software já anunciaram que estão portando suas linguagens para que sejam compatíveis com o Framework .NET. Desta maneira você poderá utilizar, para a criação de páginas ASP.NET, a linguagem com a qual está mais familiarizado, desde que ela esteja habilitada ao .NET. Você prefere Delphi? Sem problemas. É fã do COBOL? Por que não? Novidade 03: Menos Código Para Mais Trabalho: Com o ASP.NET temos acesso a uma série de facilidades que diminuem a quantidade de código que o programador precisa escrever, principalmente no trato com funções básicas. Estas funções básicas, como a manutenção de estado entre chamadas de uma página, são responsabilidade do Framework .NET. Isso faz com que o programador tenha que desenvolver apenas a lógica da aplicação, sem ter que se preocupar com aspectos básicos da infra-estrutura necessário ao correto funcionamento da aplicação. Uma série de controles mais inteligentes e com melhores funcionalidades foi criada, os chamados Server Controls. Estes controles fornecem grande funcionalidade com um mínimo de programação. Alguns artigos fazem referência a “inteligência” dos Server Controls. Um dos aspectos considerados inteligentes é que, no momento da carga da página, o controle detecta, por exemplo, se o navegador do cliente é o Internet Explorer, Chrome ou Firefox, dentre outros e adapta o seu comportamento e exibição de acordo com o navegador do cliente. Com ASP tarefas simples, como por exemplo validar os dados digitados em formulários, exigem a criação de código específico. Com os controles “inteligentes” do ASP.NET, fazer a validação é simplesmente questão de configurar algumas propriedades do controle e pronto, a verificação será feita no momento em que a página for acessada. Novidade 03: Separação Entre o Código HTML e o Código ASP: Esta é uma das melhorias que eu mais aprecio. Com ASP 3.0 ou versões anteriores, nos tínhamos uma mistura (literalmente) entre o código ASP e o código HTML, o que torna o código de difícil leitura e documentação. Apenas para exemplificar, vamos apresentar uma página ASP que faz conexão com um banco de dados do Microsoft Access e exibe todos os registros de uma determinada tabela do banco de dados. Os registros são exibidos na forma de uma tabela. O código HTML para a criação da tabela, que será exibida para o usuário, é gerado a partir de uma mescla entre código ASP e código HTML. Na Listagem 1 temos um exemplo de página ASP que faz conexão com um banco de dados do Microsoft Access. Listagem 1 – Uma página ASP – código ASP e HTML “misturado”. <%@ Language=VBScript %> <HTML> <HEAD> <TITLE>Listagem de Clientes</TITLE> </HEAD> <BODY> <H1> <FONT color=navy>Clientes da Empresa ABC LTDA.</FONT> </H1> <% ‘O Primeiro passo é criar a conexão com o Banco de dados ‘Para isto crio um objeto do tipo Connection ‘Cria um Objeto do Tipo ADODB.Connection Set conn = Server.CreateObject(“ADODB.Connection”) ‘ Agora abro uma conexão utilizando OLE-DB ‘ O código a seguir aparece em duas linhas por questão de espaço, porém o mesmo ‘ deve ser digitado em uma única linha. conn.Open “PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE=c:\meus documentos\nwind.mdb” ‘ O próximo passo é criar uma instrução SQL ‘ a qual é utilizada para criar a listagem de Clientes. ‘ O código a seguir aparece em duas linhas por questão de espaço, porém o mesmo ‘ deve ser digitado em uma única linha. inst_sql=”SELECT Clientes.CodigoCliente, Clientes.Cargo, Clientes.Endereco,Clientes.Fone FROM Clientes” ‘Esta instrução SQL retorna os campos CodigoCliente, Cargo, ‘Endereco e Fone, da tabela Clientes. ‘Agora criamos um Objeto RecordSet. ‘Este Objeto irá executar a instrução SQL e ‘receber o resultado da Consulta. Set Clientes = Server.CreateObject(“ADODB.Recordset”) ‘Agora executamos a Instrução SQL ‘retornando os registros da tabela Clientes. Clientes.Open inst_sql, conn, 3, 3 ‘ Os dois últimos parâmetros serão discutidos ‘ no próximo Capítulo. ‘ Neste ponto já tenho todos os registros retornados ‘ pela instrução SQL. Estes registros estão armazenados ‘ no objeto Clientes, que é um objeto do tipo Recordset. ‘ Agora passo a montar a página que será retornada para o ‘ Navegador do Cliente. Vamos montar uma tabela com o ‘ resultado da consulta. %> <P> <HR> <TABLE bgColor=gray border=1 borderColor=navy cellPadding=1 cellSpacing=1 width=”100%”> <TR> <TD align=middle bgColor=gray>Código</TD> <TD align=middle bgColor=gray>Cargo</TD> <TD align=middle bgColor=gray>Endereço</TD> <TD align=middle bgColor=gray>Fone</TD> </TR> <% ‘ Inicio um Loop para percorrer todos os registros ‘ do RecordSet Clientes, exibindo um Registro em ‘ cada Linha da tabela. Do Until Clientes.eof %> <TR> <TD align=middle bgColor=gray><%=Clientes.Fields(“CodigoCliente”)%></TD> <TD align=middle bgColor=gray><%=Clientes.Fields(“Cargo”)%></TD> <TD align=middle bgColor=gray><%=Clientes.Fields(“Endereco”)%></TD> <TD align=middle bgColor=gray><%=Clientes.Fields(“Fone”)%></TD> </TR> <% Clientes.MoveNext loop %> </TABLE> </P> <HR> </BODY> </HTML> Na Figura 13.31 temos esta página carregada no IE – Internet Explorer.
Figura 13.31 – Página ASP de exemplo. Observe que, por mais organizados que sejamos, inserindo comentários e endentações no código ASP, não é nada fácil a leitura e interpretação de uma página ASP. Isso acontece devido, principalmente, à intercalação de código ASP e código HTML. Em uma mesma página ASP posso ter várias seções de código ASP. Cada seção inicia com <% e encerra com %>. Tudo o que não estiver entre estes dois marcadores é código HTML. Já com ASP.NET isto não acontece. A parte de apresentação da página é separada da parte de processamento, isto é, da parte onde está o código responsável pela lógica de processamento da página. Com isto separamos a lógica da apresentação, o que facilita a manutenção das páginas. Na Listagem 2 temos o exemplo de uma página ASP.NET que faz a separação entre o código responsável pela conexão com o banco de dados e retorno dos dados (lógica) e o código responsável por exibir os dados (apresentação). Listagem 2 – O segundo exemplo: conectando com o banco de dados pubs usando ASP.NET <%@ Import Namespace=”System.Data” %> <%@ Import Namespace=”System.Data.SqlClient” %> <html> <script language=”C#” runat=”server”> protected void Page_Load(Object Src, EventArgs E ) { // Crio uma conexão com o banco de dados pubs localizado no servidor local. // Vamos acessar a instância SERVIDOR\NETSDK. SqlConnection myConnection = new SqlConnection(“server=SERVIDOR\\NETSDK;” + “ uid=sa;pwd=;database=pubs”); // Conectamos com o banco de dados utilizando um comando SQL, // o qual retorna todos os dados da tabela “Authors”, do banco de // dados pubs. SqlDataAdapter myCommand = new SqlDataAdapter(“SELECT “ + “ * FROM Authors”, myConnection); // Criamos e preenchemos um objeto DataSet. // Observe que não temos mais o objeto Recordset, // como era de praxe com o ASP 3.0. DataSet ds = new DataSet(); myCommand.Fill(ds); // Conectamos um controle DataGrid com o DataSet criado anteriormente. // MyDataGrid é o id (nome) de um controle do tipo // DataGrid que está na seção de apresentação da página. DataView source = new DataView(ds.Tables[0]); MyDataGrid.DataSource = source ; MyDataGrid.DataBind(); } </script> <body> <%— Exibe as informações do DataGrid no corpo da página. —%> <h3><font face=”Verdana”>Registros da tabela Authors!</font></h3> <%— Os registros da tabela Authors são exibidos no DataGrid. —%> <ASP:DataGrid id=”MyDataGrid” runat=”server” Width=”700" BackColor=”#ccccff” BorderColor=”black” ShowFooter=”false” CellPadding=3 CellSpacing=”0" Font-Name=”Verdana” Font-Size=”8pt” HeaderStyle-BackColor=”#aaaadd” MaintainState=”false” /> </body> </html> Ao carregarmos esta página no Internet Explorer obtemos o resultado indicado na Figura 13.32:
Figura 13.32 – A página ASP.NET da Listagem 2 carregada no IE. Observe a separação entre a seção de código e a seção de apresentação, conforme detalharemos a seguir. Alguns comentários sobre o exemplo, sem entrar em maiores detalhes sobre o código do exemplo. Cadê o meu objeto Recordset usado no ASP? Nada de objetos do tipo Recordset. Com ASP.NET utilizamos ADO.NET para fazer a conexão com banco de dados. ADO.NET utiliza o objeto Dataset ao invés do objeto Recordset. Para a conexão com bancos de dados utilizamos uma série de classes do namespace System.Data, o qual faz parte do .NET Framework Class Library. Para ter acesso às classes de um determinado namespace, precisamos adicionar uma referência ao namespace, no início da página ASP.NET, utilizando a diretiva Import, conforme indicado no trecho de código a seguir: <%@ Import Namespace=”System.Data” %> <%@ Import Namespace=”System.Data.SqlClient” %> Observe que estamos fazendo referência a dois namespaces: System.Data e System.Data.SqlCliente. Conectando com o banco de dados: Na seção de código da página temos os comandos para conexão com o banco de dados pubs da instância SERVIDOR\NETSDK de um servidor com o SQL Server 2000. Um detalhe importante é a maneira como informamos o nome da instância, conforme indicado pelo trecho de código a seguir: SqlConnection myConnection = new SqlConnection(“server=SERVIDOR\\NETSDK;” + “ uid=sa;pwd=;database=pubs”); Observe que utilizamos duas barras invertidas ao invés de uma única barra. Isto é necessário porque a barra invertida é considerada um caractere de escape com significado especial para a linguagem C# utilizada no exemplo da Listagem 2. Quando ao invés do caractere de escape queremos que o C# entenda-o como um caractere normal, temos que precedê-lo de uma barra invertida. Na prática as duas barras invertidas são interpretadas, pelo C#, como uma única barra, o que produz o resultado desejado: SERVIDOR\NETSDK. Neste exemplo utilizamos as seguintes classes do namespace System.Data.SqlClient: SqlConnection SqlDataAdapter Também utilizamos as seguintes classes do namespace System.Data: DataSet DataView Um controle poderoso para exibir os dados: Na seção de apresentação utilizamos o controle DataGrid para fazer a exibição dos registros da tabela Authors. Observe o quão poderoso é este controle. Simplesmente através da configuração da sua propriedade DataSource, na seção de código, definimos os registros a serem exibidos pelo controle. Esta definição é feita nas seguintes linhas de código: MyDataGrid.DataSource = source ; MyDataGrid.DataBind(); Veja que não precisamos utilizar um laço While para percorrer todos os registros da tabela Authors, como tínhamos que fazer com o objeto RecordSet usando ASP, como no exemplo da Listagem 1. Posso ter um comando que ultrapassa uma linha? A resposta é um sonoro Sim. Diferente do ASP 3.0, em nossas páginas ASP.NET, os comandos da seção de código podem estar em mais do que uma linha, sem problemas. Inclusive na Listagem 2 temos comandos que ultrapassam uma linha e a página carrega sem maiores problemas, conforme exemplificado no trecho a seguir: SqlDataAdapter myCommand = new SqlDataAdapter(“SELECT “ + “ * FROM Authors”, myConnection); Isso é possível pois cada comando do C# é finalizado com um ponto-e-vírgula (;). O bom e velho SQL continua o mesmo? A resposta é outro sonoro Sim. Você deve ter observado que utilizamos um comando SQL para retornar os dados da tabela Authors. Utilizamos um comando SELECT, conforme indicado a seguir: SqlConnection myConnection = new SqlConnection(“server=SERVIDOR\\NETSDK;” + “ uid=sa;pwd=;database=pubs”); Vamos alterar o comando SQL para introduzir uma condição. Queremos que sejam retornados somente os registros para os autores em que a cidade (city) é Oakland. Para isso basta que seja utilizada uma cláusula where para especificar a condição city=’Oakland’, conforme indicado a seguir: SqlDataAdapter myCommand = new SqlDataAdapter(“SELECT “ + “ * FROM Authors where city=’Oakland’”, myConnection); Fazendo esta alteração obteremos o resultado indicado na Figura 13.33:
Figura 13.33 – Definindo um critério com a cláusula where. Compatibilidade com Qualquer Navegador: O resultado da execução de uma página ASP.NET é código HTML puro retornado para o cliente. Qualquer navegador é capaz de interpretar corretamente HTML, em tese. Na prática o que acontece é que existem pequenas diferenças e até mesmo “inconsistências” entre a maneira como o código HTML é interpretado. Para minimizar este problema, o ASP.NET conta com os controles que rodam no servidor e são capazes de fornecer diferentes saídas, dependendo do navegador que fez a solicitação da página. Na prática isto significa que um controle da interface de uma página ASP.NET, que roda no servidor, é capaz de gerar diferentes saídas, dependendo do navegador do cliente. Esta característica é conhecida por AUI – Adaptative User Interface. A Extensão do Arquivo Mudou - .aspx: A primeira diferença que notamos é na extensão dos arquivos. As páginas ASP, desde a versão inicial até a versão 3.0 têm a extensão .asp. Esta extensão é obrigatória, para que o IIS reconheça a página como uma página ASP e passe o processamento para o interpretador ASP (ASP.DLL). Já as páginas ASP.NET têm a extensão .aspx, a qual é reconhecida pelo IIS (após a instalação do Framework .NET). O processamento da página ASP.NET é passado para o controle do Framework .NET. O serviço responsável pelo processamento das páginas ASP.NET está contido na DLL – XSPISAPI.DLL. |
|||||
|
« Lição anterior | Δ Página principal | ¤ Capítulos | Próxima lição » |
Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434
Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208
Todos os direitos reservados, Júlio Battisti 2001-2022 ®
LIVRO: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2016 - CURSO COMPLETO E PRÁTICO
DOMINE A PROGRAMAÇÃO VBA NO EXCEL - 878 PÁGINAS - CLIQUE AQUI