Sexta .NET – Aula 14 – Ajax – Parte I

Bom pessoal, vamos aqui com mais uma Sexta .NET abordando um tema muito utilizado atualmente, o AJAX.

Para poder falar melhor sobre esta forma de desenvolvimento vamos fazer um roteiro.

Roadmap da Apresentação Visual

Convergência entre Web e Desktop

Aplicação Desktop

  • Interativa
  • Rápida
  • Difícil Implantação
  • Desatualizada
  • Roda no Cliente

Aplicação Web

  • Estática
  • Lenta
  • Fácil Implementação
  • Sempre Atualizada
  • Roda no Servidor

Experiência do Usuário

Perguntas…
A web hoje é dinâmica?
O mesmo conteúdo é apresentado a todos os usuários?

Aplicações Web ainda perdem de aplicações Desktop
Alternativas:
Java Applets
SilverLight
Macromedia Flash

Problemas em uma aplicação Web

  • Post-backs forçam que a página seja recarregada a cada clique.
  • Não mantém o estado da página naturalmente (stateless).
  • Interfaces ricas são de difícil concepção.
  • “Lenta” em relação a aplicações de clientes ricos (desktop).

Solução para aplicações Web

  • RIA – Rich Internet Application
  • Web 2.0

AJAX Conceitos

AJAX = “Asynchronous Javascript And XML”.

É um conjunto de recursos e tecnologias, presentes há algum tempo, nas linguagens e navegadores atuais.

AJAX não é tecnologia. É um conjunto de técnicas que tem como objetivo promover uma melhor e mais rica experiência de uso.

AJAX faz uso das características da linguagem JavaScript, da portabilidade e flexibilidade do padrão XML e dos recursos de chamada assíncronas que foram implementadas nos navegadores.

AJAX – XMLHttpRequest

Objeto que a linguagem Javascript implementa e está presente nos navegadores : Internet Explorer 5.0+, Safari 1.2, Mozilla 1.0 / Firefox e Netscape7.

Tem a capacidade de executar a leitura remota de dados de forma assíncrona, permitindo assim a execução de outras tarefas imediatamente após a chamada.

Retorna dados em formato XML e Texto.

http://www.w3.org/TR/XMLHttpRequest/

Framework ASP.NET AJAX
Framework para criação de uma nova geração de aplicações web, com interfaces ricas, interativas, personalizadas e baseadas em padrões
Biblioteca de scripts para cliente
Componentes para servidor
Integra funções do cliente com funções do ASP.NET
Desenvolvimento de aplicações com “estilo AJAX”

UM FRAMEWORK PARA DESENVOLVER UMA EXPERIÊNCIA NA WEB MAIS RICA, INTERATIVA E PERSONALIZADA

Produtividade incrementada
Menos conceitos e complexidade
Menos linhas de código

Fácil de criar, debugar e manter
Perfeitamente integrado as ferramentas de design e desenvolvimento

Bom pessoal, hoje ficamos apenas com os conceitos desta tecnologia.
Semana que vem iremos iniciar a apresentação aos componentes do AjaxControlToolkit.

Aguardo vocês!

Novo site no ar Spasso Calçados (desenvolvimento de site)

Toda a Equipe trabalhando muito, vários projetos sendo finalizados e vários outros aguardando apenas liberação por parte do cliente para ir ao ar.

Um projeto que acaba de receber o ok, por parte do cliente é o site institucional do Spasso Calçados de Presidente Prudente.

Mais um projeto desenvolvido em parceria com a Agência Matraca também de Presidente Prudente.

http://www.calcadosspasso.com.br

Parabéns a toda equipe, e em especial ao Ronaldo.

Sexta .NET – Aula 13 – ASP.NET e C# – Parte IV

Boa noite pessoal, depois de um tempo meio ausente estamos aqui de volta para a periodicidade das nossas Sextas regadas do bom e velho .NET.

Hoje, para continuar a sequencia e voltar a toda com o conteúdo falaremos sobre Bibliotecas de Coleções.

Namespace System.Collections

  • ArrayList
  • Queue
  • Stack

Namespace System.Collections.Generic

  • List
  • Dictionary

Começamos por ArrayList

ArrayList não precisa ter um tamanho predefinido.
Pode carregar ou preencher um array.
Possui métodos específicos para manipular seus elementos.

int[] codigos = {1,2,46,32,78};
ArrayList listagem = new ArrayList(codigos); //Carrega um array

listagem.Remove(46); //Remove um elemento
listagem.Add(10); //Insere um novo elemento
Response.Write(listagem.Count); //Imprime seu tamanho atual

int i = (int) listagem[2]; //Passa o valor 32
//para a variável i

listagem.Sort(); //Ordena os elementos
listagem.CopyTo(codigos); //Preenche um array

listagem.Clear(); //Remove todos elementos

Pilhas ou STACK

Semelhante ao ArrayList, não precisa ter um tamanho predefinido e possui métodos específicos para manipular seus elementos.
Os últimos elementos inseridos pelo método Push são os primeiros a serem retornados pelo método Pop, da mesma forma que uma pilha:

Stack pilha = new Stack();
pilha.Push("blusas");
pilha.Push("camisetas");
pilha.Push("camisas");

Response.Write(pilha.Pop());

// imprime o último elemento inserido
// no caso o primeiro da coleção “camisas”

Queue

Semelhante ao Stack, porém trabalha de forma contrária. Seu método Dequeue retorna os primeiros inseridos pelo método Queue, semelhante a uma fila:

Queue fila = new Queue();
fila.Enqueue("Idosos");
fila.Enqueue("Grávidas");
fila.Enqueue("Deficientes");
fila.Enqueue("Funcionários");

Response.Write(fila.Dequeue());

// imprime o primeiro elemento inserido
// no caso o primeiro da coleção “Idosos”

List

Semelhante a um ArrayList, mas somente permite a inserção elementos de um tipo predefinido.

List listagem = new List(); //Instancia uma lista de //inteiros
listagem.Add(39); //Insere um novo elemento
listagem.Add(22); //Insere um novo elemento

Response.Write(listagem.Count); //Imprime seu tamanho atual

listagem.Sort(); //Ordena os elementos

listagem.Clear(); //Remove todos elementos

DICTIONARY

Semelhante a List, porem permite o uso de uma chave ‘K’ de um tipo predefinido, para referenciar um valor do tipo ‘V’.

Dictionary dic = new Dictionary();
//Instancia um dicionário string-string

dic.Add(“Name”, “Nome”);
dic.Add(“Day”, “Dia”);

dic.Remove(“Day”);

Response.Write(dic[“Name”]);

Bom pessoal, voltamos com a corda toda, mas para não misturar os pés pelas mãos e deixar todos confusos vamos dar uma paradinha por aqui.

Então agora vamos aos testes e caso tenham dúvidas entrem em contato!

Na semana que vem teremos um assunto bem interessante: Ajax

Aguardamos a presença de todos!