sexta-feira, 9 de novembro de 2007

Usando Templates no Dreamweaver

Bem galera, vou abordar um tema que é muito útil para qualquer desenvolvimento de site.

Primeiramente, porque usar templates???
Bem é muito simples, imagine um Site na seguinte estrutura, 5 páginas, sendo uma home e 4 páginas de conteúdo, o layout do site é o seguinte:


Quando o site está protinho vem o cliente e fala assim "Tem como você colocar mais uma página.", ai você fala que sim, com raiva do cliente que não tinha te avisado dessa página antes, e parte para fazer a alteração, como proceder? Salva uma das páginas e altera o layout, dai passa página por página mudando o menu página por página. Bem convenhamos que isso não é muito produtivo né???? imagine o tempo que você vai gastar para fazer uma alteração que parece ser simples??? Qual a solução para isso???

Templates

1 - Primeiro vamos criara um site dentro do Dreamweaver.

Abra o dreamweaver vai no menu Site, New site.


Vai abrir a tela como abaixo, no nome do site coloque TesteTemplate e vá para o próximo passo


Como nós vamos montar um site em HTML mesmo selecione "Não, eu não quero usar nenhuma..." e avance



Aqui você vai colocar o caminho do site no seu computador, por exemplo em c:\testeTemplate e avance



Essa tela é para configuração do servidor, selecione "None" e avance e ná póxima tela conclua.
Perfeito, criamos um SITE de gerenciamento dentro do dreamweaver

2 - Agora vamos começar a criar o template das páginas na estrutura da primeira imagem que está nesse tutorial.

No menu File, New, selecione Blank Template, no Tipo selecione HTML


Criou uma página comum, nela vamos adicionar uma tabela de 2 linhas e uma coluna, vá no Menu Insert, Table em Rows coloque 2 e Columns 1

Criado a tabela quebre a segunda linha em duas colunas, posicione o cursor dentro da segunda linha, vé em Modify, Table, Split Cell, na tela que se abrir selecione Columns e Digite na caixa de texto 2

Monte como na imagem abaixo, deixando a parte de cima como Faixa, o meio como conteudo e na lateral esquerda crie 3 link, um com o endereço pagina1.html outro com o endereço pagina2.html e o último como pagina3.html
Agora vamos inserir as partes editáveis no tamplate, normalmente o que muda na página é apenas o título e conteúdo, então vamos inserir duas parte editáveis uma para o título e outra para o conteúdo.
Posicione o cursor do mouse no local da tabela que você deixou para o conteúdo, vai em Insert, Templates Objects, Editable Region, coloque o nome de edtTitulo, insira outro Editable Region abaixo do título com o nome de edtConteudo. Deve ficar como a imagem abaixo
Salve o template com o nome de padrao


Com o template criado vamos criar as páginas com base nesse template.


Vá em File, New selecione Page from template, selecione o Site TesteTemplate, selecione o padrao.


Quando você confirmar irá criar uma página igual ao template que você tinha criado anteriormente, qual a diferença??? Se reparar você só consegue alterar os campos que você escolheu, no caso o edtTitulo e o edtConteudo, se tentar mover/excluir/alterar qualquer outro elemento da página ele não deixa. Altere o Título para Página 1 e o conteúdo também, salve à como pagina1.html

Crie mais duas página seguindo esse mesmo processo, salve uma como pagina2.html e a outra como pagina3.html.

Certo, agora vamos abrir a página no browser e verifique se está funcionando direitinho.

Agora vamos fazer o seguinte vamos adicionar um novo link para uma nova página.

Então vá ao dreamweaver novamente, certifique-se que você está no site correto (TesteTemplate), File, New, Page from template, selecione o TesteTemplate, selecione padrao e confirme. Modifique o Título para Página 4 e altere o conteúdo, salve ela como pagina4.html.



Feito a página 4 vamos agora colocar o link para a página 4, abra o template padrao e adicione o link para a página4.html


Quando você mandar salvar ele vai perguntar se você quer alterar as página, confirme.

Navege pelo site novamente, você vai perceber que ele já criou os links em todas as página, poupando você ter que entrar página por página para incluir o link.
Terminado o exemplo, agora é só brincar com o template alterando cores, etc.
Espero ter ajudado.

quarta-feira, 19 de setembro de 2007

As ameaças da WEB2.0

Li um artigo muito interessante sobre a segurança da chamada WEB 2.0, muito se fala ainda sobre a "tal" web 2.0, uns acham que ela é só um "golpe" publicitário, bem isso não vem ao caso, niguém tem dúvidas sobre as oportunidades trazidas pela WEB 2.0. A interatividade - que transforma você internauta em colaboradores ativo dos mega sites de serviços - torna a internet muito mais rica e dinâmica, sites como o Wikipédia YouTube dentre outros estão ai para provar isso. Muitos especialistas afirmam:

As mesmas portas que se abrem para facilitar a participação do usuário também multiplicam as brechas de segurança.

Antes os processos eram executados no servidor. Agora, parte delas ocorre no browser do usuário.
Para as empresas de segurança fica difícil identificar as ameaças, uma vez que podem ser montadas dinâmicamente sem que exista um executável.

Cookie!

Muitas vezes acontece de estar em uma Lanhouse e quando entro no orkut entra em um perfil que não é o meu, sem ao menos passar pela tela de login, isso ocorre porque o sistema do orkut grava cookie que se mantém ativo. Até a pouco, o Yahoo! Mail e o Gmail.

Desconfiança

Muitos especialistas concordam que tanto as empresas de segurança como os usuários de computador devem mudar sua postura diante dessa nova realidade. Algumas empresas vem desenvolvendo formas de bloquear ameaças desconhecidas baseadas e métodos que refletem o conhecimento humano, como por exemplo você entrar em um site e ao fazer um cadastro ele pedir para identificar gatos dentre uma disposição de imagens de cães e gatos, uma vez que aquelas imagens geradas com letras distorcidas já não são mais confiáveis.
Os usuários devem manter-se descnofiados com tudo o que chega em seu e-mail ou links de páginas não confiáveis, boa parte de sucessos de malware basea-se em truques de engenharia social, como por exemplo mensagens no orkut que avisam sobre falecimento de pessoas famosas, que quando você acessa enche seu PC dos famosos vírus.


Cinco dicas de prevenção


1 - Janela Única. Ao usar uma aplicação web com infromações sensíveis, não abra outra janela. Se, na segunda janela, entrar em um site que tem um javascript malicioso, esse código pode ler informações ativas na primeira janela.

2 - Faça Logout. Ao encerrar um aplicação na Web use o botão Sair, Logout ou equivalente. Se você simplismente clica no botão fechar da janela do browser, a sessão pode ficar aberta e acessível a Scripts mal-intencionados.

3 - Cuidado com a interatividade. Fique de antena ligada ao visitar sites como blogsm nos quais os usuários podem adicionar conteúdo. Junto com o texto e imagens, também podem ir comandos HTML nocivos.

4 - Software em dia. Além de usar um produto antivírus, mantenha-o atualizado. A obrigatoriedade de atualização também vale para o sistema operacional e os aplicativos.

5 - Fique esperto. Nenhum banco ou fabricante de qualquer produto vai lhe enviar e-mail pedindo senha. Se isso acontecer, desconfie

Info abril - setembro de 2007

terça-feira, 31 de julho de 2007

Como usar o vetor no C#

Vetores servem para armazenamento de vários resultados referente a um único objetivo, veja o vetor como um armário, desses de academia que tem os números para referência, por exemplo temos os dias das semanas domingo, segunda, terça, quarta, quinta, sexta, sábado podemos criar 7 variáveis sSegunda = "segunda", sTerca="terca" ... sSabado = "sabado" isso não é muito usual, nem uma boa prática de programação, então temos um tipo de dados para fazer isso veja como fica mais fácil, abaixo explico como mostrar todos os dias da semana.


// criamos um vetor com os dias da semana
string[] sSemana = { "domingo", "segunda", "terça", "quarta", "quinta", "sexta", "sábado" };


Para pegarmos um valor do vetor pecisamos do seu "index" (é o número do armário que você guardou suas coisas) a estrutura para pegar um valor do vetor é nome_do_vetor[posição_do_conteudo], a posição do conteudo começa em ZERO, então se quisermos pegar a segunda faremos do seguinte modo, sSemana[1]

Vamos pensar um pouco, para pegarmos todas os dias da semana poderiamos fazer da seguinte forma


Console.WriteLine("Primeiro exemplo de vetor: \n");
Console.WriteLine(sSemana[0]);
Console.WriteLine(sSemana[1]);
Console.WriteLine(sSemana[2]);
Console.WriteLine(sSemana[3]);
Console.WriteLine(sSemana[4]);
Console.WriteLine(sSemana[5]);
Console.WriteLine(sSemana[6]);

Console.WriteLine("\nPrecione para continuar o exemplo");
Console.ReadLine();




Da forma acima temos todos os dias da semana, como podemos fazer para otmizar esse código?
Se reparar, o número do vetor está em ordem crescente somando um a um, então podemos usar um comando de repetição se ele repetir 7 vezes vai pegar os sete dias da semana correto? Neste caso usaremos o for do c# que repete o bloco de comandos na quantidade de vezes que você definir.
Porque não usar o while?
O while repete um bloco de acordo com uma condição, já o for repete um bloco de comandos de acordo com a posição inicial e final que você definir, isso não quer dizer que você não pode usar o while, mais nesse caso o for é mais usual.

Lembrando o comando for

for(posição inicial;condição de repetição;incremento)
{
bloco de comandos que será repetido
}

Exemplo:

defino o início do for em 1, e o final em 10 e incremento 1
for(int i=1;i<=10;i++) { Console.WriteLine(i); }

vamos continuar com os dias da semana, a posição inicial do vetor sSemana é 0 e o final é 6 como vimos no exemplo acima, então sabemos que o for vai de 0 a 6. Vamos definir um for que vá de 0 a seis e que incremente 1 a 1 para pegar todos os dias da semana, e no vetor vamos definir que ao invés dele pegar um valor fixo como no exemplo acima, podemos definir que ele pegue o valor da váriavel do for sSemana[váriável_do_for].

Console.WriteLine("Segundo exemplo de vetor usando o for: \n");
for (int i = 0; i <= 6; i++) {
Console.WriteLine(sSemana[i]);
}
Console.WriteLine("\nPrecione para continuar o exemplo");
Console.ReadLine();

temos no vetor uma função chamada "Length", essa função retorna a quantidades de colunas que existe no vetor, ela retorna a quantidades de portas que existe no armário da academia, isso ajuda e muito, vamos supor que você crie um vetor de nomes dos seus amigos, então declara o vetor e coloca "joão", "maria", "josé" beleza, você faz seu programa com esses 3 nomes faz o for inicial 0 e final 2 (0="joão",1="maria",2="josé"), o programa roda normal, derepente você conhece alguém no final de semana o "abimael" então você vai no programa e altera o vetor adiciona o "abimael" então ficaria do seguinte modo "joão", "maria", "josé", "abimael" dai você vai no for e altera de final 2 para final 3 (0="joão",1="maria",2="josé",3="abimael") dai no outro final de semana você conhece mais duas pessoas, vai altera o vetor e altera o for, certo para não ter o retrabalho de ficarmudando o final do for toda vez que você conhecer alguém, usamos a Função length, nome_do_vetor.Length, ela retorna a quantidade de colunas que existe então no caso da semana ele vai retornar 7 mais devemos lembrar que o index do vetor inicia no ZERO então a última coluna do vetor, a última porta do armário é 6 e não sete, então mudamos o for:


Console.WriteLine("Terceiro exemplo de vetor usando o for e o length: \n");
for (int i = 0; i < sSemana.Length; i++) {
Console.WriteLine(sSemana[i]);
}
Console.WriteLine("\nPrecione para terminar");
Console.ReadLine();



Façam testes para entender como funciona os vetores... coloque no inicial do for outro valor para ver o q acontece, por exemplo 3 dai ele vai mostrar as colunas do 3 a 6 , quarta, quinta, sexta, sábado nos 3 casos temos a mesma coisa feita de diferentes maneiras, você pode ver como conforme você vai otmizando o programa as linhas vão diminuindo, e o trabalho para fazer manutenção neste programa vai diminuindo também. Galera, espero ter ajudado, qualquer coisa é só me mandar um e-mail, estou a disposição para ajudar.

sexta-feira, 20 de abril de 2007

Como usar Struct no C#

Como usar Struct no C#

/*

* struct
*
* Vamos falar sobre struct, struct nada mas é que você poder criar uma estrutura,
* vamos entender qual a facilidade de criar uma estrutura, vamos supor um seguinte
* você precisa fazer um programa que pergunte para o usuário qual seu sexo, altura
* e peso, lógico, a primeira vista, e não está errado, podemos criar 3 variáveis
* string sexo; double altura; double peso; vamos ver como ficaria.
*

*/

// declaro as variáveis que vou usar
string sexo;
double peso, altura;

// escrevo e recebo o sexo
Console.WriteLine("Qual seu sexo?");
sexo = Console.ReadLine();

// escrevo e recebo a altura
Console.WriteLine("Qual sua altura?");
altura = Convert.ToDouble(Console.ReadLine());

// escrevo e recebo p peso
Console.WriteLine("Qual seu peso?");
peso = Convert.ToDouble(Console.ReadLine());

// escrevo na tela o sexo, a altura e o peso digitados
Console.WriteLine("Seu sexo é {0}, sua altura é {1} e seu peso é {2}", sexo, altura, peso);



Console.WriteLine("Aperte qualquer tecla para ver o mesmo programa com struct...");
Console.ReadLine();

/*
*
* este programa faz o que é preciso certo, ele pega o sexo, a altura, o peso e mostra na tela,
* mas pense comigo, esses dados são referente a uma pessoa certo, então uma pessoa tem sexo, altura e peso
* é isso que consiste uma estrutura, nós estamos definindo que a pessoa, para o que nosso programa precisa,
* tem sexo, peso e altura, bem como passar isso para o c#,
* public struct pessoa
* {
*
* public string sexo;
* double altura;
* double peso;
*
* }
* o que estamos fazendo acima??? Estamos criando uma estrutura pessoa que tem como propriedades sexo, altura e peso
* porque é disso que nosso programa usa para fazer o que queremos, o struct tem que ser colocado depois das declarações
* das classes
*
* using System;
* using System.Collections.Generic;
* using System.Text;
* public struct pessoa
* {
*
* public string sexo;
* public double altura;
* public double peso;
*
* }
*
* Vamos alterar nosso programa para usar a strutc (estrutura):
*

*/

pessoa dadosPessoa = new pessoa();

// escrevo e recebo o sexo
Console.WriteLine("Qual seu sexo?");
dadosPessoa.sexo = Console.ReadLine();

// escrevo e recebo a altura
Console.WriteLine("Qual sua altura?");
dadosPessoa.altura = Convert.ToDouble(Console.ReadLine());

// escrevo e recebo o peso
Console.WriteLine("Qual seu peso?");
dadosPessoa.peso = Convert.ToDouble(Console.ReadLine());

// escrevo na tela o sexo, a altura e o peso digitados
Console.WriteLine("Seu sexo é {0}, sua altura é {1} e seu peso é {2}", dadosPessoa.sexo, dadosPessoa.altura, dadosPessoa.peso);


Console.WriteLine("Aperte qualquer tecla para ver um vetor de struct...");
Console.ReadLine();

/*
*
* Percebam que nosso código diminuiu muito pouco, duas a três linhas, em programas pequenos vai ser dificil ver
* a vantagem de se usar a estrura, mas se você reparar bem, já foi uma grande vantagem, voltamos ao código,
* temos a declaração de uma variável dadosPessoa nela já contém sexo, altura e peso declarado.
*
* vamos para outro exemplo prático de como usar a struct como um vetor, no próximo exemplo vamos criar uma agenda para 10 contatos
* com nome, email e telefone dos contatos, vamos primeiro criar uma em vetor para depois compararmos com a agenda
* feita com struct
*
*/

string[] nome = new string[4]; // declaramos um vetor com 4 posições do tipo string para armazenar o nome
string[] email = new string[4];// declaramos um vetor com 4 posições do tipo string para armazenar o email
int[] telefone = new int[4]; // declaramos um vetor com 4 posições do tipo int para armazenar o telefone

// adicionamos nas posições dos respectivos vetores os valores
nome[0] = "José";
email[0] = "jose@dominio.com.br";
telefone[0] = 32323232;
nome[1] = "Mario";
email[1] = "mario@dominio.com.br";
telefone[1] = 32154698;
nome[2] = "Maria";
email[2] = "maria@dominio.com.br";
telefone[2] = 98654785;
nome[3] = "Gançalvez";
email[3] = "gonca@dominio.com.br";
telefone[3] = 32654285;

// percorre o vetor e imprime os dados na tela
for (int i = 0; i < nome.Length; i++)
{
Console.WriteLine("Nome: {0}\tE-mail: {1}\tTelefone: {2}\n", nome[i], email[i], telefone[i]);
}

Console.WriteLine("Aperte qualquer tecla para ver a agenda com um vetor de struct...");
Console.ReadLine();

/*
*
* Bem, já sabemos como se cria um vetor de um tipo qualquer, e sabemos criar um novo tipo de estrutura,
* então vamos criar um vetor desse novo tipo que irá ser criado.
* Certo primeiro crie a seguinte struct:
* public struct agenda
* {
* public string nome;
* public string email;
* public int telefone;
* }
*
* criamos um struct chamado agenda com a estrutura nome, email e telefone, agora vamos criar os vetores
*
*/


agenda[] dadosAgenda = new agenda[4]; // criamos um vetor do tipo agenda com 4 posições

// inserindo os dados

dadosAgenda[0].nome = "José";
dadosAgenda[0].email = "jose@dominio.com.br";
dadosAgenda[0].telefone = 32323232;

dadosAgenda[1].nome = "Mario";
dadosAgenda[1].email = "mario@dominio.com.br";
dadosAgenda[1].telefone = 32154698;

dadosAgenda[2].nome = "Maria";
dadosAgenda[2].email = "maria@dominio.com.br";
dadosAgenda[2].telefone = 98654785;

dadosAgenda[3].nome = "Gançalvez";
dadosAgenda[3].email = "gonca@dominio.com.br";
dadosAgenda[3].telefone = 32654285;

// percorre o vetor e imprime os dados na tela
for (int i = 0; i < dadosAgenda.Length; i++)
{
Console.WriteLine("Nome: {0}\tE-mail: {1}\tTelefone: {2}\n", dadosAgenda[i].nome, dadosAgenda[i].email, dadosAgenda[i].telefone);
}

Console.WriteLine("Aperte qualquer tecla para ver a agenda com um vetor de struct...");
Console.ReadLine();

/*

* visualmente para o usuário não muda nada, mais para o programador usar a struct nesse caso é bem melhor
* o código fica visualmente melhor, não temos que trabalhar com 3 vetores, cria-se um vetor apenas de uma estrutura
* que você precisa.
*
*
*
*
*
*
*
* Avançado
*
* Agora vamos passar para um nível mais avançado, tente entender comigo, eu vou criar um tipo de dados do tipo agenda
* mais nele eu vou implementar um código que addiciona o registro, veja:
*
* public struct agendaAvancada
{
public string nome;
public string email;
public int telefone;
public void AddRegistro(string sNome, string sEmail, int iTelefone)
{
nome = sNome;
email = sEmail;
telefone = iTelefone;
}
}
*
* note que a estrutura é a mesma, mas com um implemento, eu coloquei uma função que serve para adcionar os dados no registro,
* ou seja, inves de vc adicionar os registros assim:
*
* dadosAgenda[0].nome = "José";
* dadosAgenda[0].email = "jose@dominio.com.br";
* dadosAgenda[0].telefone = 32323232;
*
* vamos fazer da seguinte forma:
*
* dadosAgenda[0].addRegistro("José","jose@dominio.com.br",32323232);
*
* veja como ficaria nossa agenda agora
*
*/

agendaAvancada[] dadosAgendaAvancada = new agendaAvancada[4]; // criamos um vetor do tipo agenda com 4 posições

// inserindo os dados

dadosAgendaAvancada[0].AddRegistro("José", "jose@dominio.com.br", 32323232);
dadosAgendaAvancada[1].AddRegistro("Mario", "mario@dominio.com.br", 32154698);
dadosAgendaAvancada[2].AddRegistro("Maria", "maria@dominio.com.br", 98654785);
dadosAgendaAvancada[3].AddRegistro("Gançalvez","gonca@dominio.com.br",32654285);

// percorre o vetor e imprime os dados na tela
for (int i = 0; i < dadosAgenda.Length; i++)
{
Console.WriteLine("Nome: {0}\tE-mail: {1}\tTelefone: {2}\n", dadosAgenda[i].nome, dadosAgenda[i].email, dadosAgenda[i].telefone);
}

Console.ReadLine();

/*

bem galera essa última parte foi mesmo para vocês terem um dimensão de como podemos facilitar as coisas no C#,
* o C# é uma linguagem de programação muito ampla e conhecer suas ferramentas e sa capacidade é muito importante para não fazer
* as "gambiarras" da programação.
*
* espero ter ajudado, essa parte de estrutura é meio complicado de explicar, mais acho que fui bem feliz na minha explicação
* qualquer coisa só me perguntar
*
*
* Douglas Wellington
* e-Mail: dwsg15net@gmail.com
*
*/