Arquitetura em três camadas

Sistema de Contato, desenvolvido usando o conceito três camadas.

O Sistema de Ordem de Serviço.

Mais um tutorial, completo, usando sql, relatórios, conexão com o banco de dados, cadastros e muito mais.

Cadastro de Cliente II - Cadastrar, Alterar, Excluir e Consultar em C#

Este tutorial iremos desenvolver o cadastro de Cliente completo, onde o usuário pode filtar a consulta em um Data Grid.

C# - Apostilas

Aprenda mais, inove mais.

sábado, 23 de março de 2013

Enviar Email com C# ASP.NET

Olá Pessoal, segue um bom código para envio de email usando ASP.NET C#, mas antes dizer vamos saber algumas curiosidades sobre o email.


1. Qual foi a primeira mensagem de E-mail?

Ray Tomlinson é conhecido como a primeira pessoa a enviar uma mensagem via correio eletrônico.
Tomlinson não foi especificamente encarregado de desenvolver o e-mail, mas ele trabalhava em aplicações úteis para o projeto do MIT ARPANET (que mais tarde evoluiu para a Internet). Ele se dedicou a criar o e-mail porque para ele parecia ser uma idéia perfeita.
O primeiro e-mail foi enviado entre dois computadores lado a lado. Tomlinson diz que não consegue lembrar o conteúdo da primeira mensagem, mas é provável que tenha sido um “teste 123″ ou algo assim.

2. Qual a origem da palavra Spam?

Não é certo, mas o primeiro spam teria sido enviado em 5 de março de 1994 pelos advogados Canter e Siegel. Eles o fizeram propaganda sobre uma loteria em um grupo de discussão que não tinha nada a ver com o assunto, o que revoltou muitos assinantes do grupo.
Já a palavra Spam é complicado. Existe um presunto enlatado nos Estados Unidos de nome SPAM® escrito em letras maiúsculas com marca registrada pela Hormel Foods desde 1930. A empresa aliás não gosta nada de ter seu produto associado a algo nocivo e indesejável como os Spams de internet.
Mas a referência ao produto é inevitável pois a origem mais aceita vem de uma cena do programa de TV “Monty Python”, onde alguns vikings muito inconvenientes repetiram infinitas vezes a palavra “spam”, em referência justamente ao enlatado norte-americano.

3. Qual é a mais comum e-mail a senha?

Por incrível que pareça, “123456″ é a líder. Quando 10 mil senhas do Hotmail vazaram, a combinação “123456″, também liderou a lista da mais comum. Portanto, não poupe criatividade na hora de escolher sua senha. Apele para músicas e livros preferidos e faça uma combinação de letras e números para proteger suas informações.

4. Como se escreve e-mail?

Pode ser e-mail, email, E-Mail, E-mail ou eMail. Depende de onde você for consultar. Muitos dicionários preferem “email”, sem o hífen. Já a Associated Press Stylebook (Manual de Redação e Guia sobre o Direito de Mídia da Associated Press) insiste em ver a palavra como uma abreviatura de “correio eletrônico” e, portanto, com hífen “e-mail”. Esta, a meu ver é a mais correta.

5. Como é chamado o sinal @?

Em português dizemos “arroba”, já na versão em inglês, o “@” é conhecido apenas como “at”. Conheça mais algumas:
E em italiano, é “chiocciolina”; em livre tradução: pequeno caracol.
Em holandês é “apestaart”; em livre tradução: “rabo de macaco”.
Em sueco, “snabel-a”; em livre tradução: tromba de elefante.

6. Quando foi enviado o primeiro e-mail do espaço?

A primeira mensagem de correio-eletrônico vinda do espaço foi enviada em 1991 pela tripulação da STS-43 Atlantis, através do software AppleLink em um computador Macintosh.


Bom, segue o código abaixo:


private void EnviarEmail(string assunto, string corpoEmail)
{
    //Define os dados do e-mail
    string nomeRemetente = "Meu Nome";
    string emailRemetente = "meu email";
    string senha = "minha senha para acessar meu email";
 
    //Host da porta SMTP
    //Exemplo smtp.gmail.com
    string SMTP = "host do servidor do email"; 
 
    string emailDestinatario = "Email que será enviado";
    //string emailComCopia        = "email@comcopia.com.br";
    //string emailComCopiaOculta  = "email@comcopiaoculta.com.br";
 
    string assuntoMensagem = assunto;
    string conteudoMensagem = corpoEmail;
 
    //Cria objeto com dados do e-mail.
    System.Net.Mail.MailMessage objEmail = new System.Net.Mail.MailMessage();
 
    //Define o Campo From e ReplyTo do e-mail.
    objEmail.From = new MailAddress(nomeRemetente + "<" + emailRemetente + ">");
 
    //Define os destinatários do e-mail.
    objEmail.To.Add(emailDestinatario);
 
    //Enviar cópia para.
    //objEmail.CC.Add(emailComCopia);
 
    //Enviar cópia oculta para.
    //objEmail.Bcc.Add(emailComCopiaOculta);
 
    //Define a prioridade do e-mail.
    objEmail.Priority = System.Net.Mail.MailPriority.Normal;
 
    //Define o formato do e-mail HTML (caso não queira HTML alocar valor false)
    objEmail.IsBodyHtml = true;
 
    //Define título do e-mail.
    objEmail.Subject = assuntoMensagem;
    
    //Define o corpo do e-mail.
    objEmail.Body = conteudoMensagem;
 
 
    //Para evitar problemas de caracteres "estranhos", configuramos o charset para "ISO-8859-1"
    objEmail.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
    objEmail.BodyEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
 
 
    // Caso queira enviar um arquivo anexo
    //Caminho do arquivo a ser enviado como anexo
    //string arquivo = Server.MapPath("arquivo.jpg");
 
    // Ou especifique o caminho manualmente
    //string arquivo = @"e:\home\LoginFTP\Web\arquivo.jpg";
 
    // Cria o anexo para o e-mail
    //Attachment anexo = new Attachment(arquivo, 
    //System.Net.Mime.MediaTypeNames.Application.Octet);
 
    // Anexa o arquivo a mensagem
    //objEmail.Attachments.Add(anexo);
 
    //Cria objeto com os dados do SMTP
    System.Net.Mail.SmtpClient objSmtp = new System.Net.Mail.SmtpClient();
 
    //Alocamos o endereço do host para enviar os e-mails  
    objSmtp.Credentials = new System.Net.NetworkCredential(emailRemetente, senha);
    objSmtp.Host = SMTP;
    objSmtp.Port = 587;
    //Caso utilize conta de email do exchange deve habilitar o SSL
    //objEmail.EnableSsl = true;
 
    //Enviamos o e-mail através do método .send()
    try
    {
        objSmtp.Send(objEmail);
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        //excluímos o objeto de e-mail da memória
        objEmail.Dispose();
        //anexo.Dispose();
    }
}

quarta-feira, 16 de janeiro de 2013

Javascript - Visão Geral


Javascript


   Javascript é uma linguagem de programação que permite ao desenvolvedor criar ações em suas páginas web. "O que é Javascript ?", "Como nasceu Javascript" são algumas perguntas que o artigo ira responder.
   Javascript é uma linguagem que pode ser utilizada para profissionais e para quem esta iniciando o desenvolvimento de sites e aplicações web. Ela não requer compilação já que a linguagem é do lado cliente (client-side), sendo assim, o navegador fica responsável por interpretar.
   Muitos confundem Java com Javascript, mas ambas as linguagens são diferentes e têm suas características únicas. Javascript tem a vantagem de ser incorporada em qualquer página web, pode ser executada sem a necessidade de instalar um outro programa.
   Java, por outro lado, tem a principal característica de ser uma linguagem independente de plataforma.Você pode criar qualquer tipo de programa que pode ser executada em qualquer computador, devido às suas características é também amplamente utilizada para internet (JSP ,JSF).
   Como resumo, podemos dizer que o Javascript é uma linguagem de script baseada em protótipos, enquanto o Java é uma linguagem orientada a objetos.

O que é Javascript ?


   Javascript é uma linguagem com várias possibilidades de uso, e usada desde em pequenas aplicações como em aplicações maiores. Com Javascript podemos criar diferentes efeitos e interagir com usuários.
   Esta linguagem tem várias características  entre elas, podemos citar que é uma linguagem baseadas em ações. Além disso, é uma linguagem que usa Windows e X-Windows em sua grande parte de programação que é focada em descrever objetos, sendo assim, como exemplo, para escrever funções que respondam aos movimentos do mouse, aberturas, uso de chaves, página de carregamento, entre outros.
   Ressalta-se que há dois tipos de Javascript: O primeiro é aquele que é executada no cliente, este é o Javascript em si, embora tecnicamente chamado Navigator Javascript, mas também há um Javascript que roda no servidor é mais recente e é chamado LiveWire Javascript.

Como nasceu Javascript?


   Javascript nasceu com a necessidade de permitir aos desenvolvedores de sites, que páginas web permitisse interagir com os usuários, já que precisava criar sites com maior complexidade. O HTML permitia criar páginas estáticas onde se podia mostra textos com estilos, mas não com a necessidade de interagir com os usuários.
   Em 1990, Nestcape criou Livescript: as primeiras versões da linguagem foram principalmente dedicada aos pequenos grupos de desenvolvedores Web que não necessitava utilizar um compilador, e nenhuma experiência em programação orientada a objetos.
   A medida que novas versões estavam sendo disponível a esta linguagem incluía novos componentes que deram grande potencial a linguagem, mas infelizmente o desenvolvimento foi desativado, porque a Nestcape parou de desenvolver novas versões.
   Em dezembro de 1995, Netscape e Sun Microsystems (Criadora da linguagem Java) , se uniram para desenvolver um projeto em conjunto, para reintroduzir esta linguagem com o nome de Javascript. Em resposta a popularidade do Javascript, a Microsoft lançou a sua própria linguagem de script, VBScript (uma pequena versão do Visual Basic).
   Em 1996, a Microsoft está interessada em competir com Javascript, e lança a linguagem chamada JScript, introduzida em navegadores Internet Explorer. Apesar das várias críticas que são feitas à linguagem Javascript, esta é uma das linguagens de programação mais populares para a web.
   O Javascript é uma tecnologia que sobreviveu por mais de 10 anos, é fundamental na web, junto com a padronização da "European Computer Manufacturers Association" (ECMA) (mais tarde adotada pela ISO) e W3C DOM, Javascript é considerado por muitos desenvolvedores web como a base para próxima gerações de aplicações web dinâmicas no lado do cliente.
   A uniformização do Javascript começou em conjunto com a ECMA em novembro de 1996. Este padrão foi adotada em junho de 1996 e depois também pela "International Organization for Standardization" (ISO).      
   O DOM por sua sigla "Document Object Model" ou Modelo de Objetos de Documento, foi projetado para evitar incompatibilidades.

Onde posso ver funcionando Javascript?

Entre os muitos serviços que são feitos com o Javascript na internet incluem:
  • Correio
  • Chat
  • Buscador de informação
Nós também podemos encontrar ou criar código para inserir em páginas como:
  • Relógio
  • Contadores
  • Datas
  • Calculadoras
  • Validações de formulários
  • Detectores de navegadores e linguagens

Como identificar código Javascript?

   Para inserimos um código em Javascript é recomendável inserir entre as tags <head></head> usando as tags <script type="javascript/text"> </script> ou inserir em um arquivo separado como no exemplo:

<script type="text/javascript" src="arquivo.js" />

Algumas características da linguagem são:

   Sua sintaxe é semelhante ao usado em Java e C, sendo uma linguagem do lado do cliente que é interpretado pelo navegador.

  • Variáveis: var = "Hola", n= 103
  • Condição: if (i < 10) { ... }
  • Laços : for (i=0;i < 10; i++) { ... }
  • Arrays: var carros = new Array ("Gol","Golf","Uno"}
  • Função: Ação criada pelo desenvolvedor:
    function Somar 
       return a+b;
    );

  • Comentários:
    //comentário de uma unica linha
    /*
      Comentários de várias linhas
  • */
  • Programação Orientada a Objetos
    Permite programação orientada a objetos
    Ex. document.write("Ola");
  • As variáveis podem ser definidas como: string, integer, flot, boolean simplemente utilizando var. Podemos usar o carácter '+' para concatenar string.

Compatível com os navegadores?

   Javascript é suportado pela maioria dos navegadores como Google Chrome, Firefox, Internet Explorer, Safari, entre outros.
   Com o surgimento de linguagens, como o PHP que é do lado do servidor (server-side) e do lado do cliente, Javascript. Ajax (Acrônimo Javascript e XML) surgiu, para criação de aplicações web interativas. Esta linguagem combina várias tecnologias:

  • HTML e CSS para gerar estilos
  • Implentações ECMAScript, um dos quais é a linguagem Javascript
  • XMLHttpRequest é uma das funções mais importantes, incluído, que permite a troca de dados de forma assíncrona com o servidor web pode esta usando PHP, ASP.NET, entre outros.
   Devemos notar que, enquanto Javascript é suportado em vários navegadores, os próprios usuários podem desabilita-los.


Este artigo foi traduzido do link e foi adaptado por Natanael Santos.

quinta-feira, 6 de setembro de 2012

Série LINQ 03 - Where II

WHERE

A cláusula where é usado em uma expressão de consulta para especificar os elementos da fonte de dados que será devolvido na consulta. Aplica-se uma condição booleana para cada elemento de origem (referenciado pela variável de intervalo) e retorna aqueles para os quais a condição especificada é verdadeira. Uma expressão de consulta simples pode conter várias cláusulas WHERE e uma cláusula simples pode conter subexpressões múltipla de predicados.

Exemplos

No exemplo seguinte, caso não tivesse a cláusula where todos os elemento da fonte de dados iriam ser imprimindo, mas a condição é(num < 5).


//fonte de dados
int[] tbNumero = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

//Filtra o a consulta com a condição de que num deve ser menor que 5
var query = from num in tbNumero
                where num < 5
                select num;

//Imprime a consulta query
foreach (var n in query)
{
  Console.Write(n.ToString() + " ");
}


//Saída: 4 1 3 2 0



Dentro de uma cláusula where,  você pode especificar quantas condições forem necessárias usando os operadores &&(and) e | |(or). No exemplo a seguir, a consulta especifica duas condições, a fim de selecionar apenas os números pares e que são menores que cinco.


//Fonte de dados
int[] tbNumero = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

//Cria uma consulta com duas condições
var query = from num in tbNumero
               where ((num < 5) && (num % 2 == 0))
               select num;

//Imprime a consulta
foreach (var s in query)
{
  Console.Write(s.ToString() + " ");
}

// Saída: 4 2 0



Uma cláusula where conter um ou mais métodos que retornam valores booleanos. No exemplo a seguir, a cláusula utiliza um método para determinar se o valor é par ou ímpar.


//Método estático.
static bool IsPar(int i)
{
  return i % 2 == 0;
}

public static void Main()
{
  //Fonte de Dados
  int[] tbNumero = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };

  var query = from num in tbNumero
              where IsPar(num)
              select num;

  //Imprime a consulta
  foreach(var n in query)
  {
    Console.Write(n.ToString() + " ");

  }

}

//Saída: 4 8 6 2 0

Observações

A cláusula where é um mecanismo de filtragem. Ela pode ser posicionado em qualquer lugar em uma expressão de consulta, exceto que ela não pode ser a primeira ou a última cláusula. Uma cláusula where pode aparecer antes ou depois de uma cláusula de group, dependendo se você tem que filtrar os elementos de origem antes ou depois eles foram agrupados.

Se uma condição especificada não é válido para os elementos na fonte de dados, um erro de tempo de compilação irá resultar.


REFERÊNCIAS

Documentação MSDN - LINQ 




domingo, 2 de setembro de 2012

Série LINQ 02 - Consultas LINQ e Filtro

Este tópico fornece uma breve introdução às expressões de consulta LINQ e alguns dos tipos típicos de operações que você executa em uma consulta.

 Como obter uma fonte de dados
Em uma consulta de LINQ, a primeira etapa é especificar a origem de dados. Em C# como na maioria das linguagens de programação uma variável deve ser declarada antes que ele possa ser usado. Em uma consulta de LINQ , a cláusula from vem primeiro na ordem para apresentar os dados de origem (carro) e o intervalo variável (car).


var selecionarCarro= from car in tbCarro
                        select car;

Provavelmente a operação de consulta mais comum é aplicar um filtro no formulário de uma expressão Booleana. O filtro faz com que a consulta retorne apenas aqueles elementos para os quais a expressão for verdadeira. O resultado é produzido usando a cláusula where. O filtro efeito especifica quais elementos podem excluir a seqüência de origem. No exemplo a seguir, somente os carros que têm um cor azul são retornados.


var selecionarPorCor =   from car in tbCarro
                           where car.cor == "Azul"
                           select car;
 
 
Você pode usar os operadores AND e OR para aplicar em várias expressões, conforme necessário com  clásula a where. Por exemplo, para retornar somente os carros com cores "Azul" AND cujo preço é 50 mil reais , você escreveria o seguinte código:
 
 
 where caro.cor =="Azul" && cust.Preco == 50.000
 
 
Para retornar os carros com cores azul e vermelho, você escreveria o seguinte código:
 
where cust.cor == "Azul" || cust.cor == "Vermelho" 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

sábado, 4 de agosto de 2012

DICAS 01 - Adicionar uma linha em branco em uma DropDownList C# ASP.NET


Olá Pessoal, o blog esta criando uma nova série, chamada Dicas, envolvida no nosso dia a dia, então vamos lá para a primeira dica.

Adicionar uma linha em branco em uma dropDownList em C# e ASP.NET


Cenário: Tenho uma lista de Cidade, e não quero que exiba a primeira cidade, mas uma linha em branco, forçando o usuário a selecionar uma cidade.

Obs: Se baseia na label Autor como resultado final e Editora como a querendo quer ser inicializar em branco

Como na imagem:

















Solução: Aonde você alimenta a DropDownList insira o código abaixo:

ddlAutor.Items.Insert(0, new ListItem("", ""));
  
Onde 

ddlAutor = nome da DropDown List
Items = Coleção de funcionalidade para o controle
Insert = Insere um item especifico

No caso o método insert ele é sobrecarregado, por isso, existem vários métodos que podemos usar. No caso estaremos usando os parâmetros abaixo.

ddlAutor.Items.Insert(int index, new ListItem item);
Abaixo o método completo

ddlAutor.DataTextField = "Nome";
ddlAutor.DataValueField = "Codigo";

ddlAutor.DataSource = tbAutor;
ddlAutor.DataBind();

ddlAutor.Items.Insert(0, new ListItem("", ""));

Bom é isso pessoal, espero que ajude, qualquer dúvida poste nos comentários ou envie-nos um email para duvida@nstutoriais.com

quarta-feira, 4 de julho de 2012

Série LINQ 01 - Introdução


O que é LINQ?
Surgiu no evento Microsoft Professional Developers Conferece(PDC) em 2005, pela equipe liderada por, Anders Hejlberg. Apresentaram uma nova abordagem que unifica a forma como os dados podem ser recuperados em .NET, assim surgiu Language Integrated Query(LINQ). Linq fornece uma maneira uniforme para recuperar dados de qualquer objeto que implementa a interface IEnumerable. Com o LINQ, podemos usa as seguintes fontes de dados: arrays, coleções de dados relacionais e XML.
Por que o LINQ?
Com o LINQ, você pode usar a mesma sintaxe para recuperar dados de qualquer fonte de dados. Exemplo:


var query = from e in funcionários
            where e.codigo == 1
select e.nome



              A sintaxe do LINQ é muito semelhante ao SQL. O Objetivo do LINQ não foi adicionar outra maneira de acessar os dados, mas para fornecer um conjunto nativo integrado de instruções para consultar qualquer tipo de fonte de dados. Usando a linguagem C#, podemos escrever o código de acesso de dado e o compilador será capaz de impor segurança de tipo e até mesmo consistência lógica. LINQ fornece um rico conjunto de instruções para implementar consultas complexas suportando agregação, joins(unir tabelas), sortings(classificação) e muito mais.


A seguir, as principais partes do LINQ, que você pode trabalhar.

LINQ to Objects: é uma API que fornece métodos que representam um conjunto de operadores padrão de consulta (SQOs) para recuperar dados de qualquer objeto cuja classe implementar a interface IEnumerable. Essas consultas são executadas em memória de dados.

LINQ to ADO.NET: aumenta SQOs para trabalhar com os dados relacionais. (É composto por três partes (Ver figura 1)).

LINQ to SQL: (antigamente DLinq) é usado para consultar bancos de dados relacionais como o Microsoft SQL Server.  Para tirar proveito do LINQ to SQL você deve a seguinte referência;

System.Data.Linq;

LINQ to DataSet: suporta consultas usando os conjuntos de dados ADO.NET e tabelas de dados.

LINQ to Entities: é uma solução Microsoft ORM, que permite aos desenvolvedores usa entidades (uma característica ADO.NET 3.0) para especifica a estrutura de objetos de negócios e usar o LINQ para consultá-los

LINQ to XML: (antigamente XLinq) SQOs não só amplia, mas também inclui uma série de XML recursos específicos para a criação de documentos XML e consultas. Use a referencia a seguir:
System.Xml.Linq




Nesta serie de artigos estaremos aprendendo sobre LINQ to SQL.

sexta-feira, 7 de outubro de 2011

Jogos em C#

C # - Jogo Blaster 


Space Invaders foi um sucesso e gerou centenas de milhões de dólares, não só para os desenvolvedores mas também para outras empresas que imitaram a fórmula de sucesso do jogo. A jogabilidade foi muito inovadora na época. Antes a maioria dos jogos tinha um tempo para acabar, já em Space Invaders o jogo só acabava quando o jogador perdesse suas três vidas, com isso a duração do jogo ficava nas mãos da habilidade dos jogadores. (http://pt.wikipedia.org/wiki/Space_Invaders)






C# - Jogo de Xadrez

Xadrez é um jogo de tabuleiro de natureza recreativa e competitiva para dois jogadores, sendo também conhecido como Xadrez Ocidental ou Xadrez Internacional para distingui-lo dos seus predecessores e de outras variantes da atualidade. A forma atual do jogo surgiu no Sudoeste da Europa na segunda metade do Século XV, durante o Renascimento, depois de ter evoluído de suas antigas origens persas e indianas. O Xadrez pertence à mesma família doXiangqi e do Shogi e, segundo os historiadores do enxadrismobr. (ou xadrezismo pt.), todos eles se originaram do Chaturanga, que se praticava na Índia noSéculo VI d.C.[1]



C# - Sudoku 

 é um quebra-cabeça baseado na colocação lógica de números. O objetivo do jogo é a colocação de números de 1 a 9 em cada uma das células vazias numa grade de 9×9, constituída por 3×3 subgrades chamadas regiões. O quebra-cabeça contém algumas pistas iniciais, que são números inseridos em algumas células, de maneira a permitir uma indução ou dedução dos números em células que estejam vazias. Cada coluna, linha e região só pode ter um número de cada um dos 1 a 9.








Boids:: Aves de simulação de comportamento

Boids, desenvolvido por Craig Reynolds, em 1986, é um programa de vida artificial,simulando o comportamento flocking de aves.
Como a maioria das simulações de vida artificial, Boids é um exemplo de comportamento emergente, ou seja, a complexidade da Boids surge da interação dos agentes individuais (oboids, neste caso) aderir a um conjunto de regras simples. As regras aplicadas no mundomais simples Boids são as seguintes:

separação: orientar para evitar aglomeração flockmates locais
alinhamento: orientar para a média título de flockmates locais
coesão: orientar a se mover para a posição média de flockmates locais
src: wikipedia

Como: -

Botão direito do mouse: Adicionar Boid novo Blue

Esquerdo do mouse: Adicionar novo Red Boid

O que acontece depois?

O azul boids tentar mover-se em grupos - notar que eles têm uma visão limitada de vista!Eles sempre temem o boids vermelho para que eles tentam evitá-los.


Jogo Pong em C#
 código fonte anexo é um clone pong simples, com quatro níveis de dificuldade. 
Baixar o código fonte e executar o exemplo para ver como funciona o jogo e os detalhes do código.
Nota : Este código é escrito usando NET Framework 2.0.. Você deve ter. NET Framework 2.0 instalado em sua máquina antes de executar este código.







                                                                     DOWNLOAD

C# - Snooker


Um jogo de sinuca!









                                                         DOWNLOAD


Facebook