Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso Pratico Visual Studio - Net2005 PDF
Curso Pratico Visual Studio - Net2005 PDF
NET 2005
Curso Prtico de
Visual Studio.NET 2005
diretamente
pelo
autor.
Nenhum
outro
Cursos de informtica.
MCP
ferramenta
Microsoft
WebApplication,
de
fao
desenvolvimento.
parte
da
comunidade
Anotaes:
Anotaes:
ndice
CRIANDO RSS XML PARA O SEU PRPRIO SITE .......................................... 11
CRIANDO MENU DINMICO COM C#.NET PASSO 1 ............................... 19
CRIANDO MENU DINMICO COM C#.NET PASSO 2 ............................... 29
Com diferenciao de usurio....................................................... 29
AJAX COM VISUAL STUDIO.NET 2005..................................................... 39
ADICIONANDO O AJAX NO VISUAL STUDIO.NET 2005 ........................... 40
GERANDO DOCUMENTO WORD COM VISUAL STUDIO.NET 2005 ...................... 52
AJAX COM C#.NET, .......................................................................... 59
USANDO TECNOLOGIA ASPNET (PARTE 1)................................................ 59
AJAX PARTE II ................................................................................. 65
(BUSCANDO USURIO NO BANCO DE DADOS) ............................................. 65
CRIANDO TREEVIEW COM VISUAL STUDIO.NET 2005 (PARTE 1) ..................... 83
CRIANDO TREEVIEW COM BANCO DE DADOS (PARTE 2) ................................ 90
DESENVOLVENDO COM ATRIBUTOS (JAVASCRIPT) E STRINGBUILDER ................. 97
GERANDO RELATRIO E EXPORTANDO PARA O EXCEL .................................. 105
COM VISUAL STUDIO.NET 2005.......................................................... 105
ORIENTAO A OBJETOS COM VISUAL STUDIO.NET (PARTE 2) ...................... 112
UPLOAD ENVIANDO IMAGEM PELA INTERNET ........................................ 122
CRIPTOGRAFANDO SENHAS OU STRINGS ................................................ 132
TECLAS DE ATALHO ......................................................................... 137
TRABALHANDO COM SESSION ............................................................. 147
PADRO DE CODIFICAO PARA .NET ................................................... 152
C#.NET...................................................................................... 152
INTRODUO ................................................................................ 153
PADRES DE DESENVOLVIMENTO C# ............................................... 153
ENDENTAO DE CDIGO .................................................................. 153
COMENTRIOS ............................................................................... 154
Comentrios de classes e mtodos.............................................. 155
DECLARAES ............................................................................... 156
Variveis privadas de classe....................................................... 156
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
MYSQL.
O RSS um formato padronizado mundialmente, que funciona com
linguagem XML (Extensible Markup Language), e usado para compartilhar
contedo Web. Ele permite, por exemplo, que o administrador de um site
de notcias crie um arquivo XML com as ltimas manchetes publicadas, a
fim de compartilh-las mais rapidamente com seus leitores. Este arquivo
poder ser lido atravs de qualquer ferramenta que seja capaz de entender
o formato XML do RSS.
Segue
abaixo
figura
do
segundo
mtodo
criado
na
classe
BancoDados.cs.
Explicando o mtodo:
Primeiramente crio um objeto XmlTextWriter e vou escrevendo dentro dele.
Crio vrios elementos (WriteElementString) e vou adicionando as tags. Logo
depois instancio a classe criada anteriormente de banco de dados e chamo
o mtodo para conectar.
Na linha abaixo, depois de conectar no banco de dados, crio uma varivel
sql fazendo um select nas tabelas do banco de dados. No use esse
mesmo select, porque estou fazendo para o meu banco de dados e tabelas,
voc dever ter o seu banco e suas tabelas. Criei o seu prprio select.
Logo depois, executo e fao um lao adicionando valores aos elementos,
depois fecho o objeto e o banco de dados e pronto, terminei de fazer o RSS.
Veja a figura abaixo mostrando executando o cdigo que foi criado acima.
Referncia: 1-1
Cliquei com o boto direito em cima do projeto, fui ao menu Add Folder,
logo aps Regular Folder, digitei o nome menu. Figura 1-2.
Referncia: 1-2
Depois da pasta criada, cliquei com o boto direito em cima da pasta menu,
logo apo Add New Item..., adicionando um arquivo user control. No
esquea que um arquivo user control, tem a extenso .ascx. Veja na figura
1-3 o passo a passo.
Referncia: 1-3
A figura 1-4 mostra apenas user control, colocando o nome menu.ascx.
Referncia: 1-4
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Referncia: 1-5
A figura de referncia 1-6 apenas mostra adicionando a dll no projeto para
ser usada mais tarde. Lembre-se que essa dll grtis e pode ser adicionada
no seu projeto apenas clicando no Add Reference...
Referncia: 1-6
Adicione dentro da pgina menu.ascx o cdigo abaixo:
Estou utilizando o menu dentro da pgina menu.ascx. Note que esse menu
funciona em qualquer brownser, tanto faz se IE, Mozilla ou FireFox,
funciona do mesmo jeito e do mesmo layout. Esse cdigo acima foi inserido
na parte HTML da pgina.
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Referncia: 1-7
Veja a figura de referncia 1-8, mostra o cdigo xml do arquivo do
menu.xml.
Referncia: 1-9
Depois de criar o arquivo menu.xml definindo o menu, abri o arquivo
menu.ascx, cliquei duas vezes na pgina normalmente e adicionei o cdigo
abaixo:
Referncia: 1-10
Coloquei como pgina inicial do projeto o arquivo default.aspx e iniciei a
aplicao. Veja na figura de referncia 1-11 o funcionamento do menu. O
interessante que o menu funciona em qualquer brownser sem problemas.
Referncia: 1-11
Referncia: 2-1
Veja a especificao da tela 2-1:
LinkButton
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Veja que estou criando uma sesso chamada tipo e atribuindo um valor
chamado Usuario, sem acento ou caracter especial. Logo depois, estou
redirecionando para a pgina default.aspx.
Referncia: 2-2
Passando para o menu.xml, terei que alter-lo, colocando outras tags e
adicionando mais menus. O cdigo abaixo mostra como deve ficar o cdigo
xml.
O cdigo que est de laranja indica que foi mudado em relao ao xml do
artigo passo 1.
O cdigo da cor azul, indica a tag que deve ser acrescentada.
Veja o cdigo abaixo que est em azul.
<roles>Usuario</roles>
Esta tag <roles> indica o tipo de usurio ou nvel de usurio que pode
acessar / ver as pginas de acordo com o tipo de usurio. Foi adicionado o
nome Usuario e Admin.
A figura 2-3 mostra como ficou o arquivo menu.xml.
Referncia: 2-4
Depois de tudo alterado, coloque o arquivo tipoUsuario.aspx como pgina
inicial do seu projeto. Figura 2-5.
Referncia: 2-6
Veja o menu com o tipo usurio normal. Figura 2-7.
Referncia: 2-7
Veja agora o menu criado depois que clica com o usurio Admin.
Figura 2-8.
Referncia: 2-8
A diferena que um aparece o Editar e outro s aparece o CADASTRAR.
Lembrando que esse menu dinmico pode ser usado em qualquer brownser.
Espero que tenha gostado.
Referncia: 1.1
A
cada
dia
Microsoft
tem
criado
ferramentas
para
melhorar
site
http://ajax.schwarz-interactive.de
ou
no
site
Referncia: 1.2
Pronto, baixei a DLL e coloquei dentro do micro. O mesmo foi copiado para
a minha rea de trabalho, ou seja, para o DESKTOP.
mostrado na referncia 1.3.
Referncia: 1.3
Cliquei com o boto direito no projeto VS 2005, fui na opo ADD
REFERENCE... Depois disso, tenho que indicar onde se encontra a DLL. No
posso esquecer que deixei no DESKTOP do micro. Tente seguir passo a
passo para no ter erro.
Referncia: 1.4
No prximo passo, indicar onde est a DLL para o projeto criado.
A referncia 1.5 mostra perfeitamente como indicar. um pouco diferente
do Visual Studio.NET 2003, existem as abas .NET, COM, PROJETCTS,
BROWSE e RECENT. Essa DLL, estarei que buscar pela ABA BROWSE,
indiquei a pasta DESKTOP e cliquei no arquivo AJAX.DLL.
No projeto adicionada automaticamente uma pasta chamada BIN.
Referncia: 1.5
Prontinho, adicionei a referncia no meu projeto com sucesso. A nova
ferramenta da Microsoft quando adicionado um novo projeto, no vem com
o arquivo de configurao web.config. Tenho que clicar com o boto direito
e adicionar um novo item.
Referncia: 1.6
Adicionei o arquivo de configurao WEB.CONFI, agora tenho que
adicionar uma linha para configurao do AJAX e para que funcione
corretamente.
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx"
type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
Referncia: 1.7
Depois de adicionado as 4 linhas dentro do arquivo web.config o projeto j
est pronto para ser usado com a tecnologia AJAX. Irei adicionar uma
pgina / classe chamda Default.aspx dentro do projeto. S clicar com o
boto direito e ir a opo ADD NEW ITEM.
Referncia: 1.8
Dentro dessa pgina, utilizarei os objetos da ferramenta como textbox,
boto e um div.
Segue todo o cdigo da pgina DEFAULT.ASPX abaixo para verificar os
nomes dos controles e javascript.
TextBox
Id = txtNome
Button
Id = cmdEnviar
Div
Id = divResultado
retorno
da
funo
lanado
para
outra
funo
chamada
Depois da pgina HTML criada, tenho que fazer algumas coisas bsicas
dentro da classe.
A primeira coisa registrar o nome da classe que poder ser usada pelo
AJAX.
Em poucas linhas feito todo o processo. Veja abaixo:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
Referncia: 1.9
Referncia: 1-1
Referncia: 1-2
A figura de referncia 1-3 mostra apenas como escolher o tipo do item que
ser criado dentro do projeto. um tipo WebForm.
Referncia: 1-3
Coloquei o nome do item como word.aspx e pronto. Est criada, o novo
objeto est criado. Lembre-se que criada automaticamente uma classe
com o mesmo nome. Veja a figura 1-4.
Referncia: 1-5.
No modo de design ficar da seguinte forma. Figura 1-6.
Referncia: 1-6
Marquei o objeto como pgina inicial do projeto e executei-o.
O mesmo abrir o word com todas as palavras especficas do HTML
inseridas.
Veja a figura 1-7.
Antes, no esquea de colocar no load da classe a chamada para gerar o
seu word.
Referncia: 1-7
Prontinho, o seu word est com todo o contedo que colocastes no html.
A minha dica a seguinte:
Faa tudo com os componentes, datagrid, datalist e depois apenas faa um
mtodo para gerar o word. Lgico que depois que estiver pronto toda a
execuo da sua regra de negcio.
Espero ter ajudado.
Browser
selecione
arquivo
ajax.dll
no
diretrio
que
descompactado.
foi
Referncia: 1-2
Para configurar uma ultima coisa, deve ser inserido as linhas abaixo no
arquivo web.config e dentro do lao ou tag system.web.
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx"
type="Ajax.PageHandlerFactory, Ajax" />
</httpHandlers>
* Hello World
Para funcionar o Ajax devo fazer em duas partes: uma parte reside no
servidor, ou seja, no cdigo .cs, executa a parte compilada do cdigo, por
exemplo, validar um usurio, buscar dados no banco de dados, efetuar
algum calculo pesado, etc.; a outra parte fica no cliente, ou seja, javascript
e que mostra na tela com alertas e outros.
Na pagina WebForm1.aspx.cs insira o cdigo seguinte:
[Ajax.AjaxMethod()]
public string HelloAjax(string nome)
{
return "Ol de Ajax, " + nome + "!";
}
nica
coisa
diferente
nesse
mtodo
linha
de
cdigo
[Ajax.AjaxMethod()].
Dentro do mtodo padro que j vem na classe, o famoso Page_Load
devemos inserir o seguinte cdigo:
<script language="javascript">
function ExecutaHelloAjax(){
var nome = document.Form1.txtNome.value;
WebForm1.HelloAjax(nome, HelloAjax_CallBack);
}
function HelloAjax_CallBack(response){
document.all('divResposta').innerHTML = response.value;
}
</script>
Referncia: 1-3
Clique no boto Alo Ajax e veja a rapidez que mostrado o cdigo ou
descrio que fizemos. Note tambm que a pagina no da reload, ou seja,
a pagina no recarregada.
Referncia: 1-4
Espero que tenha ajudado.
Ajax parte II
(buscando usurio no banco de dados)
Referncia: 1.1
Especificao da tabela:
Nome: TB_USUARIO
Campos:
ch_usuario
int
varchar(200)
pw_usuario
varchar(255)
email_usuario
varchar(255)
Logo depois criei uma classe chamada acessoBanco.cs com conexo com
o
banco
de
dados,
essa
classe
tem
dois
mtodos
Conecta()
Desconecta().
Foi criado a seguir uma classe Usuario.cs que possui um mtodo chamado
insereUsuario
passando
os
valores
nome,senha
como
parmetros do mtodo.
A classe de criptografia tambm foi criada para criptografar a senha na hora
que for inserida no banco de dados.
Explicarei como buscar os usurios do banco de dados automaticamente
depois de inseri-los. Criarei mais um mtodo dentro da classe Usuario.cs
que retornar o objeto DataSet.
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[Ajax.AjaxMethod()]
public DataSet BuscaUsuario(string id)
{
sBanco.Conecta();
string sql = "select * from tb_usuario ";
if (id != "" && id != null)
{
sql += " where ch_usuario =" + id;
}
Referncia: 1.2
No posso esquecer de referenciar o mtodo [Ajax.Method()] para que o
objeto possa encontrar o mtodo que estou utilizando. Na segunda linha
estou usando o mtodo para conectar com o banco de dados. Logo a seguir
monto o sql com o devido select na tabela do banco de dados. Instancio o
dataset para uso, preencho com o dataadapter e retorno o dataset. A classe
em si bem simples para o entendimento.
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Usuario.insereUsuario(nome,senha,email,InsereUsuario_CallBack);
}
function InsereUsuario_CallBack(response){
var retorno = response.value;
if (retorno){
document.all('divResposta').innerHTML =
"Inserido com sucesso !!";
}else{
document.all('divRespostaUsuario').innerHTML = result;
}
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
Nome:
<asp:TextBox ID="txtNome"
Runat="server"></asp:TextBox><br>
Senha:
<asp:TextBox ID="txtSenha" TextMode="Password"
Runat="server"></asp:TextBox><br>
E-mail<asp:TextBox ID="txtEmail"
Runat="server"></asp:TextBox><br>
<button onclick="InsereUsuario()"
type="button">Insere Usurio</button>
<br>
<br>
<button onclick="ExecutaBuscaUsuario()"
type="button">Busca Usurio</button>
<br>
<br>
<div id="divResposta"></div>
<br>
<div id="divRespostaUsuario"></div>
</form>
</body>
</HTML>
Apenas use o registro na entrada da classe para que o ajax reconhea todos
os mtodos da classe registrada da forma do cdigo acima.
Executei o cdigo iniciando o projeto.
Referncia: 1.3
Referncia: 1.3
Digitei o nome, senha e e-mail do usurio, cliquei no boto inserir e
automaticamente inseriu no banco de dados e mostrou todos os usurios
que j estavam na tabela de usurio.
Espero ter ajudado a todos.
Referncia: 1-1
O primeiro de tudo criar uma tabela no banco de dados MYSQL com o
nome tb_usuario e com os seguintes campos:
TB_USUARIO
ch_usuario
int(3) auto_increment
no_usuario
varchar(200)
pw_usuario
varchar(255)
email_usuario
varchar(255)
da
classe
Usuario.cs
chamado
insereUsuario(nome,senha,email).
/// <summary>
///
/// </summary>
/// <param name="nome"></param>
/// <param name="senha"></param>
/// <param name="email"></param>
/// <returns></returns>
[Ajax.AjaxMethod()]
public Boolean insereUsuario(string nome, string senha, string email)
{
try
{
sBanco.Conecta();
Criptografia sCript = new Criptografia();
string sql = "insert into tb_usuario
(no_usuario,pw_usuario,email_usuario) values ";
sql += " ('" + nome + "','" + sCript.encrypt(senha) + "','" +
email + "')";
OdbcCommand sqlc = new OdbcCommand(sql,sBanco.sConn);
sqlc.ExecuteNonQuery();
return true;
}
catch(Exception e)
{
throw new Exception(e.StackTrace);
}
finally
{
Referncia: 1-2
Dentro do mtodo insereUsuario, estou utilizando a classe Criptografia.cs e
o mtodo encrypt passando a string senha.
Abaixo segue todo o cdigo da classe Criptografia.cs:
using System;
using System.Security.Cryptography;
namespace AjaxTeste
{
/// <summary>
/// Summary description for criptografia.
/// </summary>
public class Criptografia
{
//variaveis para criptografia
Byte[] IV = new byte[] {0x0012, 0x0034, 0x0056, 0x0078,
0x0090, 0x00AB, 0x00CD, 0x00EF, 0x0013, 0x0045, 0x0099, 0x00AA,
0x0012, 0x0056, 0x0012, 0x0009};
Byte[] key =
System.Text.Encoding.UTF8.GetBytes("aaaaaa32");
/// <summary>
/// metodo que encriptografa os dados de acordo com a minha
variavel
/// acima e os valores passos
/// ex.: encrypt("valor")
/// </summary>
/// <param name="strValor"></param>
/// <returns>string</returns>
public string encrypt(string strValor)
{
try
{
DESCryptoServiceProvider des = new
DESCryptoServiceProvider();
Byte[] inputByteArray =
System.Text.Encoding.UTF8.GetBytes(strValor);
<asp:TextBox
ID="txtNome"
Runat="server"></asp:TextBox><br>
Senha:<asp:TextBox
ID="txtSenha"
TextMode=Password
Runat="server"></asp:TextBox><br>
E-mail<asp:TextBox
ID="txtEmail"
Runat="server"></asp:TextBox><br>
<button
onclick="InsereUsuario()"
type="button">Insere
Usurio</button>
<br><br>
Veja que tenho os objetos na tela como nome, senha, email e um boto
Insere Usurio. Preste ateno que, o meu boto executa um script em
javascript chamado InsereUsuario(). Veja o cdigo abaixo:
<script language="javascript">
function InsereUsuario(){
var nome = document.Form1.txtNome.value;
var
senha
document.Form1.txtSenha.value;
var email = document.Form1.txtEmail.value;
Usuario.insereUsuario(nome,senha,email,InsereUsuario_CallB
ack);
}
function InsereUsuario_CallBack(response){
var retorno = response.value;
if (retorno){
document.all('divResposta').innerHTML
Referncia: 1-3
Digite valores nos campos e clicar no boto para inserir.
Veja que o mesmo ir inserir no banco de dados sem mesmo dar um
refresh na pgina ou falando diretamente com os desenvolvedores .net, um
postback.
Referncia: 1-4
Referncia: 1-5
Referncia: 1-6
Espero que tenha ajudado a todos.
ver
treeview
que
irei
criar
parecido
com
do
site
http://www.microsoft.com/brasil/msdn/newsgroups/default.mspx ou veja a
figura de referncia 1-1.
Referncia: 1-1
chamada
Toolbox.
Criei
primeiro
um
objeto
chamado
Referncia: 1-2
Na barra de ferramentas Toolbox, no item Navigation existe o objeto
TreeView pronto para ser arrastado e colocado dentro da pgina. Veja a
figura 1-3.
Referncia: 1-3
Coloquei o nome ou o ID do objeto chamado treeView. Segue o cdigo da
pgina abaixo:
Referncia: 1-4
Cliquei com o boto direto e deixando o TreeView2005.aspx para ser a
principal pgina do projeto. Executando o projeto apenas com esse cdigo
acrescentado, veja as figuras 1-5 e 1-6 o que j foi criado.
Referncia: 1-5
Expandindo o treeView, aparecer as opes daquele treeView.
Referncia: 1-6
Referncia: 1-7
Executei novamente a pagina do projeto e veja o resultado na figura 1-8
abaixo.
Referncia: 1-8
Espero ter ajudado.
O treeview ser desenvolvido com banco de dados SQL Server.
Aguardo e vers mais e mais.
Essa segunda parte do TreeView foi feito com banco de dados SQL SERVER.
O Visual Studio.NET 2005 bem fcil e simples de criar um menu TreeView
com valores do banco de dados. O nome do banco de dados Northwind,
ou seja, todo SQL SERVER instalado no servidor ou mquina j vem com
esse banco padro.
No irei fazer OO (orientado a objetos), o cdigo ser todo dentro da pgina
treeView.aspx. A parte 3, refatorarei o cdigo colocando da forma OO.
O primeiro de tudo, devo colocar o cdigo do objeto na parte de html, ou
apenas arrastar da toolbox o objeto treeview.
Segue o cdigo:
<asp:TreeView
ID="Tree"
runat="server"
ExpandDepth=0
OnSelectedNodeChanged="SelectedNodeChanged">
</asp:TreeView>
Referncia: 1.1
Referncia: 1.2
Referncia: 1.3
O prximo cdigo abaixo ser chamado no load da pgina. Criei um mtodo
protegido e que no volta nada. Segue o mesmo.
A linha de cdigo que est pintada de amarela outro mtodo que criei que
retorna um objeto dataset. Veja o mesmo abaixo:
Referncia: 1.4
Ainda no acabou e voltando ao cdigo do treeView, na parte de html veja
que existe uma tag diferente.
OnSelectedNodeChanged="SelectedNodeChanged">
TextBox
Id = txtNome
Label
Id = lblNome
ForeColor = Red
Button
Id = cmdBotao
Text = Boto Confirmao
Button
Id = cmdAlert
Text = Gerar Alerta
Veja que existe um if (confirm( dentro do Add, logo depois existe uma
mensagem que ser exibida quando clicar no boto. Continuando com o if,
no final pergunta se igual a false (==false), se for retorna false; dessa
forma a pgina no da submit ou postback.
Cliquei duas vezes no boto cmdBotao e adicionei um cdigo dentro.
Referncia: 1.2
Clicando com no boto confirmao o mesmo mostrar uma mensagem
para o usurio. A figura 1.3 mostra o funcionamento depois do clique do
boto.
Referncia: 1.3
Preenchi o campo e clicando no boto confirmar, depois na opo ok, o
mesmo mostra no cdigo inserido com sucesso e o nome que foi digitado no
textbox. A figura 1.4 mostra isso perfeitamente.
Referncia: 1.4
Passando para o prximo boto chamado cmdAlert, estou apenas exibindo
um alert javascript depois que clica no mesmo. Estarei trabalhando com
string builder, cujo a melhor forma de trabalhar quando vai mexer com
string de grande quantidade.
Veja o cdigo do boto:
Referncia: 1.5
Nesta parte, mostro como gerar relatrio e exportar para o Excel. Espero
que possa estar aprendendo muito. de simples entendimento e rpida
produtividade para gerar o mesmo. O mesmo ser desenvolvimento em
C#.NET.
Referncia: 1-1
Na tela de referncia 1-1 mostro apenas a tela que gerei com o visual
studio.net 2005. Cliquei com o boto direito no produto e adicionei um novo
item ADD NEW ITEM... O nome do novo item gerandoExcel.aspx.
O cdigo abaixo mostra o que tem na parte HTML da pgina:
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
A nica coisa que acrescentei na pgina foi um label com o nome lblExcel.
O mesmo est com a cor alaranjada para que note o que foi acrescentado.
A figura 1-2 mostra a parte de design da tela.
Referncia: 1-2
Dentro da classe, j dentro do cdigo C#.NET, criarei um mtodo para
gerar em arquivo excel. Ser chamada depois do objeto label for
preenchido. Note que bem simples, dessa forma poderei fazer qualquer
relatrio ser mostrado no excel.
Referncia: 1-3
Segue o cdigo:
Explicando o cdigo:
Na entrada da pgina, preencho o label com um texto aleatrio como
"Teste <br> teste <br> gerando excel <br>"; . A linha debaixo,
chamo o mtodo criado para gerar o arquivo excel. O mtodo chama-se
geraExcel() que j faz o mesmo virar um arquivo excel. O segredo do
mtodo a linha Response.ContentType = "application/vnd.msexcel"; . Note que a assinatura do mtodo , protected protegido e void,
no retorna valor algum.
No esquea de colocar a pgina como pgina inicial do projeto e inicie o
projeto.
Referncia: 1-4
Clique em OPEN e espere alguns segundos.
Ol pessoal, como foi dito anteriormente, essa segunda parte ser bem
simples. Mostra que depois do cadastro do usurio enviado um e-mail
automaticamente. Antes de tudo irei criar duas novas classes para o
projeto.
Uma
se
chamar
ConstantesSistema.cs
outra
EnviaEmail.cs.
A primeira classe armazena as variveis do sistema para enviar e-mail.
A segunda classe ter dois mtodos para enviar e-mail automaticamente.
A classe EnviaEmail.cs estende da classe ConstantesSistema.cs, ou
seja, todas as variveis e mtodos criados na classe estendida poder ser
acessado e usado na classe de e-mail.
Referncia: 1.1
As duas classes circuladas na figura 1.1 mostra que sero usadas.
Seguindo com o sistema, a figura 1.2 mostrada apenas as variveis.
Referncia: 1.2
Segue a descrio abaixo para facilitar a copia.
public class ConstantesSistema
{
public string MAIL_DE = "EMAIL QUE IR ENVIAR";
public string PW_DE = "SENHA DO EMAIL";
public string SMTP_MAIL = "SMTP DO SERVIDOR DE EMAIL";
public string SMTP_AUT = "1";
}
Explicando as variveis:
MAIL_DE o e-mail que estar no campo e-mail de. Imagine mandando
um e-mail, sempre o seu e-mail estar no campo e-mail de.
PW_DE a senha do e-mail que enviar.
SMTP_MAIL o smtp do servidor de e-mail que tens, por exemplo,
smtp.terra.com.br.
SMTP_AUT o tipo da autenticao, ou seja, numero 1.
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Referncia: 1.3
Continuando e indo para a classe de E-mail, irei inserir dois mtodos, um
para autenticar e outro para enviar o e-mail propriamente dito.
Referncia: 1.4
A figura 1.4 mostra o mtodo que envia e-mail. Analisando a assinatura do
mtodo, veja que no retorna valor algum e espera quatro parmetros de
entrada. Segue o cdigo.
/// <summary>
/// Envia e-mail automaticamente
/// </summary>
/// <param name="usuarioNome"></param>
/// <param name="usuarioEmail"></param>
/// <param name="descricaoEmail"></param>
/// <param name="tituloEmail"></param>
public void enviarEmail(string usuarioNome, string
usuarioEmail,
string descricaoEmail, string tituloEmail)
{
try
{
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
que
ocorrer.
Primeiro
instancio
mtodo
da
classe
using
try
{
MailMessage mail = new MailMessage();
mail.From = MAIL_DE;
mail.To = usuarioEmail;
mail.Subject = tituloEmail;
mail.BodyFormat = MailFormat.Html;
mail.Body = descricaoEmail;
getAutenticacao(mail);
SmtpMail.SmtpServer = SMTP_MAIL;
SmtpMail.Send(mail);
}
Referncia: 1.5
V para a classe Default.aspx e depois que o cadastro foi feito, dentro do
bloco if instancie o mtodo da classe de e-mail passando os parmetros.
Veja como ficar o mesmo abaixo.
Referncia: 1.6
Referncia: 1.7
Referncia: 1.8
Espero que tenham gostado.
Referncia: 1-1
O cdigo abaixo mostra o que falei logo acima.
Tag HTML.
<INPUT
HEIGHT:
class="caixa"
22px"
id="txtImagem"
type="file"
style="WIDTH:
size="30"
296px;
name="txtImagem"
<%@
Page
language="c#"
Codebehind="upload.aspx.cs"
HTML
PUBLIC
"-//W3C//DTD
HTML
4.0
Transitional//EN" >
<HTML>
<HEAD>
<title>upload</title>
<meta name="GENERATOR" Content="Microsoft Visual
Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta
name="vs_defaultClientScript"
content="JavaScript">
<meta
name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:Button
id="cmdEnviar"
style="Z-INDEX:
Text="Enviar
Arquivo"></asp:Button>
<TABLE
style="Z-INDEX:
102;
LEFT:
24px;
class="caixa"
Font-Names="Arial
Todo meu FORM est destacado da cor azul. Preste bem ateno nas tags
que uso para enviar arquivo. Na parte de design do Visual Studio.NET 2003
mostrado na figura 1-2.
Referncia: 1-2
Agora mostrarei o cdigo C#.NET enviando uma imagem pela internet.
Referncia: 1-3
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
/// <summary>
/// Metodo que pega a extensao dos arquivos
/// </summary>
private void pegaArquivo()
{
//pegando o arquivo
sArquivo = txtImagem.PostedFile.FileName;
nomeArqFinal =
System.IO.Path.GetFileName(sArquivo);
sExtensao =
System.IO.Path.GetExtension(sArquivo);
}
/// <summary>
/// Metodo que clica no botao enviar para fazer upload
do arquivo
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmdEnviar_Click(object sender,
System.EventArgs e)
{
pegaArquivo();
//fazendo upload do arquivo
de
enviar
arquivo
escolhido.
Esse
mtodo
chama-se
this.txtImagem.PostedFile.SaveAs(Server.MapPath(".") +
@"\images\" + nomeArqFinal);
Dica:
No posso esquecer de criar a pasta images dentro do servidor ou do
prprio computador. No posso deixar de falar que, deve ter permisso
para fazer upload dentro do servidor da internet, ou seja, deve ter
permisso de leitura e escrita para a pasta images.
Continuando com a anlise do cdigo, se no for as extenses que verifiquei
o sistema mostra uma mensagem falando de quais extenses podem ser
escolhidas para enviar o arquivo.
Referncia: 1-4
Referncia: 1-5
Referncia: 1-6
Referncia: 1-7
Veja que a figura est dentro da pasta images.
Aqui chego ao final, espero que possa ter ajudado a voc.
dados
com
chaves
pblicas,
privadas
tudo
mais.
Algoritmo
de
Resumo
Seguro).
com
um
tamanho
de
at
elevado
64
bits
Criei uma pgina no meu projeto com o nome testeCript.aspx, voc pode
criar a sua prpria pgina conforme quiser.
TextBox
Id = txtSenha
Text = em branco
Button
Id = cmdCript
Text = Criptografar
Teclas de Atalho
Comeando com a prtica, irei abrir a IDE Visual Studio.NET e criar uma
classe chamada atalho.cs. Segue em seguida a figura ilustrativa.
Veja que a tecla de atalho que escolhi foi: CTRL + ALT + E . Clique no
boto ASSIGN para atribuir, logo em seguida, clique OK.
O prximo passo clicar em cima de sua varivel depois a tecla de atalho.
Tipo
Explicao
Application_Start
Application_End
Application_BeginRequest
Application_EndRequest
Session_Start
Session_End
INTRODUO
Este documento tem como objetivo elaborar uma padronizao para o
desenvolvimento em C#, considerando os seguintes tpicos:
objetos, variveis e constantes. Alm disso, trata como dever ser feita a
documentao dentro do cdigo.
PADRES DE DESENVOLVIMENTO C#
Endentao de cdigo
Alguns trechos de cdigo podem ficar muito extensos e voc dever encarar
o dilema de quebrar a linha.
Quebrar
linha
Quebrar
linha
aps
uma
aps
vrgula;
um
operador;
(c
f)
4 * z;
Comentrios
Utilizar as trs barras /// para comentrios de classes e mtodos. O
motivo utilizar a funcionalidade do Visual Studio .NET de transformar
comentrios em documentao de cdigo. Entretanto, para comentrios que
no necessitam ser publicados, seguem algumas sugestes:
O comentrio importante para voc ou outra pessoa ser orientada sobre a
manuteno de um cdigo fonte, tenha ateno forma de destacar o
comentrio. Por exemplo, comentrios com mais de uma linha poderiam ser
assim:
/**
Line
Line
Line
**/
Para comentrios de uma linha somente, o comentrio deve ser uma
espcie de marcador de loops ou no deve ser aplicado. A questo que
como exposto em linhas anteriores, os comentrios devem chamar a
ateno visando facilitar e direcionar a manuteno. Somente justifica-se
um comentrio de uma linha quando voc necessita marcar dentro de um
bloco de cdigo o incio de um nvel de endentao ou loop. Exemplo:
//Verifica
se
somente
uma
string
foi
entrada
if(args.Length==1)
Console.WriteLine(args[0]);
else
{
ArgumentOutOfRangeException
ex
new
ex;
ArgumentOutOfRangeException("Utilize
uma
string");
throw(ex);
}
Outra boa aplicao para comentrios de uma linha a explicao de uma
declarao. Por exemplo:
int
levelStatus;
//
nvel
do
status
Retorna
DirectoryEntry
representando
unidade
organizacional.
/// </summary>
/// <param name="coopCentral">Cooperativa Central.</param>
/// <param name="cooperativa">Cooperativa desejada</param>
/// <returns>
/// Resulado da busca no AD.
/// </returns>
///
<exception
cref="ActiveDirectoryManager.ActiveDirectoryManagerException">
/// Se no for encontrada a unidade organizacional.
/// </exception>
/// <remarks>
/// Criado por: <nome>
/// Alterado por: <nome>
/// </remarks>
Exemplo:
String firstName;
Variveis locais
Utilizar a definio CamelCase.
Namespace
Utiliza-se o nome da empresa seguido pelo nome do projeto, camada de
negocio e o modulo que est sendo desenvolvido.
Exemplo:
Bancoob.NomeProjeto.CamadaNegocio.AccessControl
Interface
O nome de interface deve ser PascalCase (a primeira letra do identificador
maiscula e a primeira letra de cada identificador subseqente concatenado
maiscula), e comear com o prefixo I, para indicar que o tipo uma
interface.
Exemplo:
IServiceProvider
Mtodos
Utilizar a definio PascalCase.
Enumeraes
Utilizar a definio PascalCase.
Constantes
Nomes de constantes devero ser todos maisculos com as palavras
separadas por um underscore.
Exemplo:
A2A_MAX
Excees
O nome de uma classe de exceo deve utilizar a definio PascalCase, e
finalizar com a expresso Exception, para indicar que o tipo uma exceo.
Exemplo:
ServiceProviderException
Propriedades pblicas
Utilizar a definio PascalCase para o nome de propriedades.
Exemplo:
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Windows Forms
Abaixo temos a lista de componentes e os prefixos:
Componente
Prefixo
Exemplo
Assembly
asm
Button
btn
btnExit
Char
ch
chxxx
CheckBox
chk
chkReadOnly
CheckedListBox
clb
clbOptions
ColorDialog
cld
cldText
ComboBox
cbo
cboEnglish
Container
ctr
ContextMenu
cmn
cmnOpen
CrystalReportViewer
rpt
rptSales
DataColumn
dcol
DataGrid
grd
DataGridDateTimePickerCol
dgdtpc
grdQueryResult
umn
DataGridTableStyle
dgts
DataGridTextBoxColumn
dgtbc
DataReader
dreader
DataRow
drow
DataTable
dtable
Dialog
dialog
DialogResult
dr
DomainUpDown
upd
updPages
ErrorProvider
err
errOpen
Exception
ex
ftd
ftdText
Form
frm
frmEntry
GroupBox
grp
grpActions
HashTable
htbl
HelpProvider
hlp
hlpOptions
HScrollBar
hsb
hsbMove
ImageList
ils
ilsAllIcons
Label
lbl
lblHelpMessage
LinkLabel
lnk
lnkEmail
ListBox
lst
lstPolicyCodes
ListView
lvw
lvwHeadings
MarshallByRefObject
rmt
Mainmenu
mm
MDI-Frame
frame
MDI-Sheet
sheet
Menu
mnu
MenuItem
mi
MonthCalendar
mcl
mclPeriod
NotifyIcon
nti
ntiOpen
NumericUpDown
nud
nudPieces
OpenFileDialog
ofd
ofdImage
PageSetup Dialog
psd
psdReport
Panel
pnl
pnlGroup
PictureBox
pic
picIcon
PrintDialog
ptd
ptdText
PrintDocument
prn
prnText
PrintPreviewControl
ppc
ppcText
PrintPreviewDialog
ppd
ppdText
ProgressBar
prg
prgLoadFile
RadioButton
rad
radType
RichTextBox
rtf
rtfReport
SaveFileDialog
sfd
sfdImage
SDI-Form
form
mnuFileOpen
Spt
sptDivision
StatusBar
sta
staDateTime
TabControl
tbc
tbcOptions
TextBox
txt
txtLastName
Timer
tmr
tmrAlarm
ToolBar
tlb
tlbActions
ToolTip
tip
tipIcons
TrackBar
trb
trbIndex
TreeView
tre
treOrganization
UserControl
usr
VScrollBar
vsb
WindowsPrincipal
wpl
vsbMove
Objeto de dados
Abaixo temos alguns componentes de comunicao de dados:
Componente
Prefixo
Exemplo
DataSet
dts
dtsProducts
DataView
dtv
dtvConsult
OleDbCommand
ocm
ocmConsult
OleDbConnection
ocn
ocnClients
OleDbDataAdapter oda
odaClients
SqlCommand
scm
scmConsult
SqlConnection
scn
scnClients
SqlDataAdapter
sda
sdaClients
Variveis
Veja a lista abaixo de tipos e prefixos:
Tipo
Prefixo
String, string
str
Boolean
bln
Byte
byt
Int16, int32
int
Long
lng
sgn
Double
dbl
Currency
cur
Date Time
dtm
Variant
var
Array
ary
User-defined
typ
type
Enum
enu
Collection
col
Object
Web Forms
Veja a lista abaixo de tipos e prefixos:
Tipo
Prefixo
AdRotator
adrtr
Button
btn
Calendar
cldr
CheckBox
cbx
CheckBoxList
cbxl
CompareValidator
cvdr
CrystalReportViewer
crvwr
DataGrid
dgrd
DataList
dlst
DropDownList
ddl
HyperLink
hlnk
Image
img
ImageButton
ibtn
Label
lbl
LinkButton
lbtn
ListBox
lbx
Literal
ltrl
Panel
pnl
phdr
RadioButton
rbtn
RadioButtonList
rbtnl
RangeValidator
rvdr
RegularExpressionValidator rev
Repeater
rptr
RequiredFieldValidator
rfv
Table
tbl
TextBox
tbx
ValidationSummary
vsmy
Xml
xml
Consideraes
Ao declarar variveis, procure seguir as consideraes abaixo.
Ao invs de:
int a, b;
usar:
int
a;
//
Valor
de
entrada
Irei mostrar nesse primeiro passo como usar cdigos C#.NET dentro de
uma aplicao VB 6.0. Criei um projeto do tipo Class Library com uma
classe chamada CDados.cs.
Antes de comear segue a famosa frase criptografada e pronta para ser
decifrada. O que conseguir decifr-la primeiro ganhar um prmio.
Nf nboeb f-nbjm dpn p ujuvmp tnbmmxjmmf
Bom, para comear irei mostrar como criar um projeto class library com o
visual studio.net 2005. Cliquei no link da pgina inicial chamado Create
Project e logo depois escolhi a opo Class Library. (Referncia 1.1 e 1.2
Class Libary)
[ComVisible(true)]
public string TesteDados(string entrada)
{
[ComVisible(true)]
Referncia: 1.5 Class Library.
Analisando a assinatura do mtodo, o mesmo recebe uma string de entrada
e retorna um valor do tipo string.
Antes da classe tenho que definir em duas linhas algumas coisas que podem
me ajudar quando for usar com o outro aplicativo de outra linguagem como
visual basic 6.0. (Referncia 1.6 Class Library)
[Guid("49C0145D-ABC4-4c0e-8640-CDA03BE8D733")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class CDados
Referncia: 1.6 Class Library
Explicao:
Primeiramente defini um GUID para a classe, dessa forma no terei
problemas quando registr-la no usando o comando REGASM. Mas esse
assunto ser falado e explicado mais a frente. Para que o VB 6.0 consiga
enxergar o que foi descrito dentro da classe, como mtodo e funo, so
necessrios colocar a linha de cdigo. (Referncia 1.7 Class Library).
[ClassInterface(ClassInterfaceType.AutoDual)]
Referncia: 1.7 Class Library
Lembre-se que se eu for usar algum tipo de dados e valores para retornar,
necessrio referenciar uma dll chamada ADODB, clicando com o boto
direito em cima da pasta referncia.
Note como ficou toda classe depois de construda. (Referncia 1.8 Class
Library)
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Runtime.InteropServices;
using System.Text;
using ADODB;
namespace SicoobDados2005
{
[Guid("49C0145D-ABC4-4c0e-8640-CDA03BE8D733")]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class CDados
{
[ComVisible(true)]
public string TesteDados(string entrada)
{
return "TesteDados >> " + entrada;
Criando HELP
utilizar
instalar
NDOC,
basta
acessar
site
http://ndoc.sourceforge.net/
http://sourceforge.net/project/showfiles.php?group_id=36057
ou
para
fazer
Praticando
NDOC.
Desenvolvi
apenas
um
mtodo
chamado
using System;
namespace NDoc2003
{
/// <summary>
/// Classe NDOC para mostrar ao usurio as boas prticas para ///
documentar
/// o cdigo desenvolvido.
/// </summary>
public class NDoc
{
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Logo depois, ir aparecer uma outra tela menor chamada Property Pages,
existe uma pasta do lado direito com o nome Configuration Properties e
por
ltimo,
dentro
dessa
opo
existe
um
campo
chamado
XML
O nome que escolhi foi NDocXML.xml para a sada dos comentrios feitos
dentro do projeto. bastante interessante isso no Visual Studio.NET; todas
as sadas do projeto, estar dentro deste xml. Depois clique em APLICAR e
depois em OK.
Compilei o projeto e o mesmo gerou um arquivo de acordo com o que foi
solicitado na tela de properties. Segue o mesmo dentro da pasta do projeto.
No meu caso, estou querendo que a aplicao crie apenas o help do cdigo
que desenvolvi dentro do projeto, com isso, na opo OUTPUTTARGET
escolhi a o valor HTML HELP. s clique no boto ao lado de salvar
chamado BUILD.
Depois disso, o build foi completo gerando um arquivo .chm dentro do
diretrio indicado.
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Hacker:
Tem
conhecimentos
reais
de
programao
de
sistemas
Referncia: 1.7
O primeiro mtodo que irei criar o que pega os valores do arquivo de
configurao e descriptografa. (Referncia 1.8)
/// <summary>
/// Mtodo que descriptografa dados
/// Pega do App.config ou Web.Config automaticamente
/// </summary>
/// <returns></returns>
public string DecryptConnectionString()
{
Byte[] b =
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Criptografando ConnectionString
Fiz um outro mtodo que responsvel para criptografar a string de
conexo. (Referncia 1.9)
/// <summary>
/// Mtodo para encriptografar string de conexao.
/// Pega a conexao passada
/// </summary>
/// <param name="connectionString"></param>
/// <returns></returns>
public string EncryptConnectionString(string connectionString)
Arquivo de Configurao
Criei
uma
aplicao
WindowForm,
toda
aplicao
desse
tipo
</configuration>
Referncia: 2.0
Layout da tela (Referncia 2.1)
Referncia: 2.1
Dados da tela.
Label
Id = Label1
---------------------------------------------------------------------------------------TextBox
Id = textBox2
MultLine = True
----------------------------------------------------------------------------------------Label
Id = Label2
----------------------------------------------------------------------------------------Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Button
Id = button1
Text = button1
Referncia: 2.2
Cliquei duas vezes no boto, logo em seguida inclui o seguinte cdigo.
(Referncia 2.3)
Referncia: 2.4
A referncia 1.2 apenas mostra a classe que gerei dentro da pasta WEB. No
prximo passo gerar o mtodo que registra o log dentro do arquivo de
erro.log. (Referncia 1.3 Exception Parte I)
try
{
System.IO.StreamWriter sw = new
System.IO.StreamWriter(filePath, true);
sw.WriteLine("## " + errorDateTime + " ## " +
message + " ##");
sw.Close();
}
catch
{
}
Referncia: 1.8 Exception Parte I
Essa ltima referncia 1.8 apenas abre o arquivo e escreve os valores
setados anteriormente dentro do arquivo e fecha.
foi
falando
junto
parte
I,
criei
uma
classe
chamada
public AppException()
{
//apenas chamo o mtodo para log de erro
LogError("An unexpected error occurred.");
}
public AppException(string message)
{
//chamo o mtodo passando o parmetro passado na assinatura
do mtodo.
LogError(message);
}
public AppException(string message, Exception
innerException)
{
//mandando a mensagem para o log de erro
LogError(message);
if (innerException != null)
Configurao
O prximo passo configurar endereo do arquivo log. Esse arquivo de
configurao dentro da aplicao pode ser o web.config ou o app.config
sem problema algum. (Referncia 1.4 Exception Parte II)
<appSettings>
<add key="ErrorLogFile" value="~/Errors/ErrorLog.txt" />
</appSettings>
Referncia: 1.4 Exception Parte II
Explicao:
Existe a tag <appSettings> onde posso atribuir qualquer tipo de cdigo ou
endereo que quiser. No meu caso, coloquei uma chave chamada
ErrorLogFile, com o valor indicando o endereo do arquivo .txt. (Referncia
1.5 Exception Parte II).
using System;
using System.Diagnostics;
using System.Web;
namespace WebChamps.Components.Web
{
/// <summary>
/// </summary>
public class AppException: System.ApplicationException
GridView Parte I
Visual Studio .NET 2005
GridView
Id = gdBancoServidor
HTML do GridView
<asp:GridView ID="gdBancoServidor" runat="server" CellPadding="4"
AutoGenerateColumns="False" Width="70%" AllowPaging="True"
GridLines="None"
OnRowEditing="gdBancoServidor_RowEditing"
OnRowCancelingEdit="gdBancoServidor_RowCancelingEdit"
OnRowUpdating="gdBancoServidor_RowUpdating"
DataKeyNames="IdCooperativa"
OnRowDeleting="gdBancoServidor_RowDeleting">
<AlternatingRowStyle
BackColor="#cdcdcd" />
<HeaderStyle
BackColor="#CCCCCC" HorizontalAlign="Left" />
<PagerStyle
HorizontalAlign="Left" />
<Columns>
<asp:TemplateField
Cdigo Behing
if (!Page.IsPostBack)
{
PreencheGridView();
}
Referncia: 1.3 GridView
Logo depois criei o mtodo da referncia 1.3 GridView.
/// <summary>
/// Mtodo que preenche o grid view
/// </summary>
private void PreencheGridView()
{
//instanciando mtodo dentro da pgina.
//camada de cima.
ConfigurarConexao config = new ConfigurarConexao();
this.gdBancoServidor.DataSource =
config.SelecionarConfiguracaoOffLine();
this.gdBancoServidor.DataBind();
}
Referncia: 1.4 GridView
Explicao:
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Bom, fico por aqui e espero ter ajudado. Na segunda parte mostrarei como
editar e deletar dados gridview.
GridView Parte II
Visual Studio.NET 2005
<Columns>
<asp:TemplateField
ShowHeader="false">
<ItemTemplate>
<asp:Label
Visible="false" ID="lblIdCooperativa" runat="server">
<%#
DataBinder.Eval(Container.DataItem, "IdCooperativa")%>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
Visible="false" ID="txtIdCooperativa" runat="server"
Text='<%#
DataBinder.Eval(Container.DataItem, "IdCooperativa") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField
HeaderText="NR COOP">
<ItemTemplate>
<asp:Label
ID="lblNumCooperativa" runat="server">
<%#
DataBinder.Eval(Container.DataItem, "NumCooperativa")%>
</asp:Label>
</ItemTemplate>
da
tag
<Columns>
existem
as
tags
<ItemTemplate>
<asp:TemplateField ShowHeader="false">
<ItemTemplate>
<asp:Label
Visible="false" ID="lblIdCooperativa" runat="server">
<%#
DataBinder.Eval(Container.DataItem, "IdCooperativa")%>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
Visible="false" ID="txtIdCooperativa" runat="server"
Text='<%#
DataBinder.Eval(Container.DataItem, "IdCooperativa") %>'>
</asp:TextBox>
</EditItemTemplate>
Referncia: 2.3 GridView Parte II
Todo campo de dentro da Tag <EditItemTemplate> existe um textbox onde
o mesmo pode ser alterado ou editado.Para no ter um campo editado, s
tirar a tag <EditItemTemplate> com todo o seu contedo.
Cliquei no mode design, selecionei o GridView, logo depois em propriedades
e no campo Events. Esse componente mudou um pouco em relao ao
antigo DataGrid. Agora o modo para fazer a edio, cliquei no mtodo
RowEditing onde redirecionado automaticamente ao code behing.(2.4
GridView Parte II).
/// <summary>
/// Mtodo que transforma os dados em campos para serem editados
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdBancoServidor_RowEditing(object sender,
GridViewEditEventArgs e)
{
this.gdBancoServidor.EditIndex = e.NewEditIndex;
PreencheGridView();
}
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
/// <summary>
/// Mtodo que atualiza os dados informados pelo cliente.
/// Os mesmos sao enviados para um camada de negocio
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdBancoServidor_RowUpdating(object sender,
GridViewUpdateEventArgs e)
{
//capturando os valores
GridViewRow gvr = this.gdBancoServidor.Rows[e.RowIndex];
string txtIdCooperativa =
((TextBox)gvr.FindControl("txtIdCooperativa")).Text;
string txtNumCooperativa =
((TextBox)gvr.FindControl("txtNumCooperativa")).Text;
string txtInitialCatalog =
if (config.AtualizarCooperativaOffLine(Convert.ToInt32(txtIdCooperativa),
txtNumCooperativa, txtInitialCatalog, txtDataSource,
Convert.ToInt32(txtIdAmbiente)))
{
this.gdBancoServidor.EditIndex = -1;
PreencheGridView();
}
Referncia: 2.8 GridView Parte II
Cancelar
Para cancelar o modo de edio, utilizei a referncia 2.4 clicando no events
RowCancelingEdit. bem simples e fcil. (2.9 GridView Parte II)
/// <summary>
/// Mtodo que cancela a edio e retorna para a forma correta
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gdBancoServidor_RowCancelingEdit(object sender,
GridViewCancelEditEventArgs e)
{
this.gdBancoServidor.EditIndex = -1;
PreencheGridView();
}
Referncia: 2.9 GridView Parte II
Explicao:
O cdigo que cancela a edio apenas o EditIndex = -1 e depois mando
preencher o grid novamente.
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Cdigo em funcionamento
Cliquei no Editar.
Cliquei no Cancelar
Mudando os dados
Valor mudado
Mostrarei nessa parte III como deletar dados usando o novo componente da
IDE 2005 da Microsoft chamado GridView.
uma seqncia que necessita seguir passo a passo.
Parte I:
http://www.aspneti.com/visualizar/downloadArtigo.aspx?ch_artigos=152
Parte II:
http://www.aspneti.com/visualizar/downloadArtigo.aspx?ch_artigos=155
DataKeyNames="IdCooperativa"
Referncia: 3.1 GridView Parte III
A referncia 3.1 chamada DataKeyNames com o valor IdCooperativa,
significa que a chave da tabela onde pode ser apagada est com o nome
IdCooperativa. O cdigo que ir pegar a chave para deletar o registro, vai
ser desse campo.
No laytout da pgina mostra dois botes. Um com o texto para o usurio
ver E e outro D, ou seja, Editar e Deletar. (Referncia 3.2 GridView
Parte III).
Mtodo RowDeleting
/// <summary>
/// Mtodo que pega o valor e manda para a camada acima para deletar
string idCooperativa =
this.gdBancoServidor.DataKeys[e.RowIndex]["IdCooperativa"].ToString();
Referncia: 3.4 GridView Parte III)
Pego o DataKeys, ou seja, o valor do campo chave. O [e.RowIndex] o
valor da linha clicada, para no pegar todos ou s o primeiro item de chave.
O [idCooperativa] o nome do campo que quero pegar. Dessa forma,
todo o valor fica armazenado na string idCooperativa.
if (config.ExcluirCooperativaOffLine(Convert.ToInt32(idCooperativa)))
{
this.gdBancoServidor.EditIndex = -1;
PreencheGridView();
}
Referncia: 3.5 GridView Parte III
Se o mesmo retornar true, mando preencher o grid novamente. Esse
mtodo ExcluirCooperativaOffLine uma outra camada que tambm utiliza
outra camada para excluir os valores, ou seja, trs camadas. O intuito
mostrar como utilizar o gridView e no como conectar ou executar
parmetros no PL SQL.
Funcionamento
Depois do grid preenchido, irei excluir a linha do primeiro valor 0002.
(Referncia 3.6 GridView Parte III)
importante falar antes de tudo que para imprimir muito fcil, o ato em
si muito fcil e simples, porm o devemos fazer algumas coisas para
melhorar o processo ou forma de fazer o mesmo.
Para comear o artigo definitivamente, no posso deixar de criptografar
mais uma frase a vocs. Tente decifra-la.
Dpnvojebef BTQOFUj.dpn
A essas pessoas,
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
Bem simples e fcil. Agora usando HTML, vou gerar uma impresso
dinmica como imprimir a pgina sem o titulo que est na pgina. Criei
outro boto para fazer o mesmo que chama cmdImprimirHTML. Veja a
idia dessa impresso:
Um boto html onde chama uma funo que esconde o titulo da pagina,
mando imprimir e depois mando o mesmo aparece novamente imprimindo
apenas o contedo. Segue o cdigo da pgina para anlise.
Note que depois de clicar em imprimir, o titulo da pgina sumiu e logo aps
apareceu com o dialog de impressora.
deseja
publicar
artigos,
publicar
empregos,
vdeos
on-line
Referncia: 1.1
Existem vrios tipos de artigos, postagens, servios que podero te ajudar
muito.
Esse novo recurso do label server control bem significativo para quem no
usa ou no gosta de usar o mouse. Funciona com teclas de atalho mesmo
na web. Antigamente esse dispositivo no existia para softwares de
intranet, internet ou mesmo web.
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
tanto
do
desenvolvimento
de
sistemas
quanto
algum
Praticando
Agora foi criado alguns atributos da tag <asp:Label onde pode ser
associado uma tecla de atalho automaticamente.
Referncia: 1.6
O exemplo em funcionamento mostra que apertando as teclas de atalhos, o
foco ser redirecionado automaticamente para o campo especfico.
Misturando dados
Obfuscar dados com Visual Studio.NET 2005
Pr-requisitos:
Antes
de
tudo,
volto
com
as
minhas
frases
criptografadas,
tente
Nf
nboef
f-nbjl
dpn
ujuvmp:
Eftdsjquphsbgfj
gsbtd
qfsgfjubnfouf.
Para o comeo, criei um projeto com o nome de WindowsAplication1.
Dentro dele criei um form chamado Form2.cs. Por enquanto est bem
bsico, tente seguir passo a passo.
Na referncia 1.1 mostra como foi montado o layout da janela, porm o que
quero mostrar apenas a funcionalidade em si e para que v servir daqui
pra frente.
Referncia: 1.1
Propriedades do form:
using System;
using System.Collections.Generic;
using System.Text;
namespace Obfuscator.Application
{
/// <summary>
/// Contm metodos para obfuscar os valores da registry.
/// </summary>
/// <remarks>
/// </remarks>
internal static class Obfuscator
{
private const byte keyObfuscator = (byte)15;
/// <summary>
/// Obfusca valor especificado.
/// </summary>
/// <param name="valor">Valor convertido para bytes para ser
obfuscado.</param>
/// <returns>Array de bytes obfuscado.</returns>
internal static byte[] ObfuscateValue(byte[] valor)
{
byte[] retorno = new byte[valor.Length];
Programando Form2
aux
Obfuscator.Application.Obfuscator.ObfuscateValue(bytesValores);
resultado = encoder.GetString(aux) ;
textBox2.Text = resultado;
}
Referncia: 1.6
Explicao:
Criei
uma
transformando
varivel
para
pegar
bytesValores[]
o
resultado
atribuindo
em
Bytes
valor
com
text1
cdigo
this.encorder.GetBytes(text1).
Criei uma varivel com o nome aux, cujo no aconselhvel, pegando o
valor retornado do mtodo ObfuscateValue passando o valor bytesValores;
ou
seja;
chamo
mtodo
criado
anteriormente
passando
valor
obj
Obfuscator.Application.Obfuscator.GetClearObfuscatedValue(bytesValores);
textBox1.Text = encoder.GetString(obj);
}
Referncia: 1.7
Explicao:
Peguei o valor de minha varivel resultado armazenada anteriormente
pegando o GetBytes, depois criei uma outra varivel com o nome obj do
tipo byte[] atribuindo o retorno do mtodo GetClearObsfuscatedValeu, cujo
foi feito anteriormente. Atribui o valor do obj ao meu Text1 pegando o meu
GetString(obj). Simples, fcil e rpido.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication1
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private Encoding encoder = new System.Text.UTF8Encoding();
string resultado = string.Empty;
private void button1_Click(object sender, EventArgs e)
{
string text1 = textBox1.Text.ToUpper();
byte[] bytesValores = this.encoder.GetBytes(text1);
byte[]
aux
Obfuscator.Application.Obfuscator.ObfuscateValue(bytesValores);
resultado = encoder.GetString(aux) ;
textBox2.Text = resultado;
}
obj
Obfuscator.Application.Obfuscator.GetClearObfuscatedValue(bytesValores);
textBox1.Text = encoder.GetString(obj);
}
}
}
Referncia: 1.8
Testando aplicao:
Depois
de
compilar
aplicao,
cliquei
F5
digitei
Referncia: 1.9
Depois apaguei o valor do text1, (mauricio@ascompras.com) e cliquei no
boto DesObfuscar, o mesmo pegar o valor do text2 e transformar os
dados mostrando no text1. (Referncia 1.10 e 1.11).
Referncia: 1.10
Referncia: 1.11
Usarei
herana
de
classes,
banco
de
dados
SQL
SERVER,
STORE
Referncia: 1.1
A figura 1.1 mostra as classes e objetos criados dentro do sistema.
Prestando ateno no diagrama existem classes que possui uma seta indo
para outra classe. Explicarei mais a frente porque esse desenho e
funcionamento do diagrama. O mesmo foi criado com o Visual Studio.NET
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Referncia: 1.2
O banco de dados bem simples e com poucos campos para ser
cadastrados. O nome do banco de dados no importa, podes colocar
qualquer nome, porm o nome da tabela TB_USU_TESTE.
A figura de referncia 1.3 mostra a store procedure criada para inserir
dados no banco de dados.
Referncia: 1.3
Pronto, depois do banco de dados e STORE PROCEDURE criada, irei direto
para a criao da classe BancoDados.cs onde possui todo o cdigo para
abrir e fechar o banco de dados.
Clicando com o boto direito, adicione um novo componente com o nome
citado anteriormente e coloque o cdigo abaixo. No posso esquecer de
importar a classe SqlClient para poder conectar no banco de dados.
using System;
using System.Data;
using System.Data.SqlClient;
/// <summary>
/// Classe de banco de dados
/// </summary>
public class BancoDados
{
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Referncia: 1.4
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Esta classe possui apenas as variveis com get e set de cada uma.
Veja abaixo todos os atributos criados.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
/// <summary>
/// Classe com atributos do form
/// </summary>
public class usuarioDTO
{
String nome;
String email;
String endereco;
String cep;
public String Email
{
get { return email; }
set { email = value; }
}
public String Endereco
{
get { return endereco; }
Referncia: 1.5
Segue abaixo todo cdigo da pagina.
Veja a relao:
Nome: txtNome
E-mail: txtEmail
Endereo: txtEndereco
Cep: txtCEP
Boto Gravar: cmdGravar
A figura 1.6 mostra como ficar a pgina que acabou de ser criada.
Referncia: 1.6
No ligue para o layout por enquanto, estou focando diretamente para a OO
(Orientao a Objetos) e o funcionamento. Espero que at aqui esteja ainda
tudo claro para voc leitor.
Clicando com o boto direito no mouse em cima do projeto, adicionei um
nome componente, chamado usuarioDAO.cs. Essa classe responsvel
para inserir os valores dentro do banco de dados, ou seja, a camada de
negcio do sistema.
A figura 1.7 mostra a classe citada anteriormente criada.
Referncia: 1.7
Veja o cdigo da classe usuarioDAO.cs.
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
/// <summary>
/// classe que insere usuario no banco de dados, chama de DAO
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
/// <summary>
/// insere usuario no banco de dados
/// </summary>
/// <param name="usuario"></param>
public Boolean insereUsuarioDAO(usuarioDTO usuario)
{
bem pequeno esse mtodo, porm dentro do bloco try, utilizado vrios
mtodos dessa mesma classe. Analisando a assinatura do mtodo, vejo que
um mtodo pblico, retorna um tipo de objeto Boolean, ou seja, true ou
false e recebe um objeto chamado usuarioDTO como parmetro. Se no
ests entendendo, calma que est chegando a hora certa para entender.
Dentro da classe e do bloco try chamado um mtodo getConection().
/// <summary>
/// metodo que conecta no banco de dados;
/// </summary>
public void getConection()
{
Conecta();
}
Esse mtodo cima apenas para conectar ao banco de dados. Veja que o
mesmo
est
chamando
um
outro
mtodo
de
dentro
da
classe
/// <summary>
/// metodo para inserir usuario no banco de dados
/// </summary>
/// <param name="usuario"></param>
private Boolean insereUsuarioNoBanco(usuarioDTO usuario)
{
try
{
SqlCommand sqlc = new
SqlCommand("SP001_INSERE_USUARIO_TESTE", sConn);
sqlc.CommandType = CommandType.StoredProcedure;
atribuirValores(usuario, sqlc);
sqlc.ExecuteNonQuery();
return true;
}
catch (SqlException e)
{
throw new Exception(e.Message);
}
finally
{
getConectionOut();
}
}
Para quem experiente com .NET, pode perceber que separei todos os
mtodos de uma classe em partes pequenas para serem melhores
gerenciados e para melhor manuteno. Separando dessa forma, poderei
/// <summary>
/// atribuir valores vindo do objeto
/// </summary>
/// <param name="usuario"></param>
/// <param name="sqlc"></param>
private static void atribuirValores(usuarioDTO usuario, SqlCommand
sqlc)
{
sqlc.Parameters.AddWithValue("@NO_USU", usuario.Nome);
sqlc.Parameters.AddWithValue("@EMAIL_USU",
usuario.Email);
sqlc.Parameters.AddWithValue("@END_USU",
usuario.Endereco);
sqlc.Parameters.AddWithValue("@CEP_USU", usuario.Cep);
}
/// <summary>
/// metodo que desconecta do banco de dados
/// </summary>
public void getConectionOut()
{
Desconecta();
}
At agora no vimos como esse parmetro vai ser passado n, irei mostrar
agora.
Esses valores iro ser passados da camada de apresentao.
Abra o arquivo default.aspx e clique duas vezes no boto GRAVAR.
O cdigo abaixo mostrar como ficar o cdigo.
/// <summary>
/// metodo para atribuir valores
/// </summary>
/// <param name="dto">objeto dto</param>
private void setValores(usuarioDTO dto)
{
dto.Nome = txtNome.Text;
dto.Endereco = txtEndereco.Text;
dto.Email = txtEmail.Text;
dto.Cep = txtCEP.Text;
}
Esse mtodo apenas seta os valores dos textBox para dentro da dto.
Continuando com o cdigo segue as linhas abaixo.
if (dao.insereUsuarioDAO(dto))
{
Response.Redirect("resultadoFinal.aspx");
}
else
{
Response.Redirect("resultadoFinalErro.asp");
}
Colocando
varivel
criada
seguindo
do
(ponto),
escolho
Referncia: 1.8
Preencha os campos e clique gravar. Logo depois podes olhar diretamente
no banco de dados se os mesmos foram inseridos. Se quiser, podes colocar
um break para ir seguindo em cada mtodo.
No mostrarei esses passos para no ficar maior ainda.
Depois de preencher os dados e clicar no boto, dando tudo certo, o
sistema redirecionar para a pgina de sucesso. Criei duas pginas s para
mostrar que foi inserido com sucesso ou se deu erro, ir para outra pgina.
nome
das
duas
pginas
resultadoFinal.aspx
resultadoFinalErro.aspx.
Veja a figura 1.9.
Referncia: 1.9
No termina aqui. O passo dois; mostrarei como depois de cadastrar os
dados passar e-mail para o usurio cadastrado e para o administrador do
sistema,
isso
tudo
automaticamente.
No
final
da
parte
2,
estarei
uma
criptografia
dos
tempos
antigos.
Tente
traduzir.
Irei
Mbp dpouf b Efvt p ubnboip ept tfvt qspcmfnbt, dpouf bpt tfvt
qspcmfnbt p ubnboip ep tfv Efvt. Bcsbdpt b upept.
Abriu uma prxima tela onde a escolha do tipo do arquivo ser RESOURCE
FILE com o nome MyStrings.resx. No Visual Studio.NET 2005 esse xml
editado bem melhor do que na forma do 2003, na realidade um xml
dentro do seu projeto.
Cdigo:
using System;
using System.Data;
using System.Configuration;
using System.Globalization;
using System.Threading;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
Chave
Valor
MEUPC
MEU COMPUTADOR
PRINCIPAL
MEU VALOR
SEUPC
SEU COMPUTADOR
Chave
Valor
MEUPC
MY COMPUTER
MY VALUE
SEUPC
YOUR PC
UICulture="auto",
dessa
forma
coloco
pgina
dentro
do
cdigo
da
classe
digitei
apenas
duas
linhas
de
Irei desenvolver para ajudar a todos como trabalhar com cookie usando a
IDE da Microsoft Visual Studio.NET 2005. Para no deixar voc sem saber o
que cookie ou pra que serve isso, fui a um tradutor ingls / portugus e
digitei:
- cookie = biscoito, bolinho, doce, bolacha; bloco de dados que um servidor
(ou site na Internet) armazena no disco rgido do usurio com fins de
identificao e pesquisa (usado para a promoo de vendas e servios na
Internet).
Resumindo, armazena algumas informaes de uma pessoa ou usurio em
disco rgido do seu computador para identificar, pesquisar ou qualquer outra
coisa que precise dos dados do cliente. Anteriormente, expliquei sobre
session, como armazenar e ler uma session via sistema. O problema da
session, que todos os dados estaro ativos apenas quando o cliente
estiver aberto, ou seja, o IE ou outros quando se fala de web. WindowForm
ainda no foi abordado.
Para ficar melhor ainda, o cdigo fonte da pgina est disposto logo em
seguida:
da
classe
.cs
agora,
criei
um
mtodo
protected
chamado
Cdigo fonte:
/// <summary>
/// Mtodo que cria o cookie do seu sistema
/// </summary>
/// <param name="nome">nome qualquer</param>
/// <param name="email">email qualquer</param>
Explicando cdigo:
NOME
(em
NOME=MAURICIOJUNIOR,
maisculo)
da
forma
mesma
ao
valor
ter
um
que
valor
adicionei.
para
EMAIL=MAURICIO@ASPNETI.COM.
A linha EXPIRES significa apenas que esse cookie ir expirar no prximo dia,
ou seja, fiz a soma do dia de hoje mais um. O comando APPENDCOOKIE
apenas gera o cookie, ou seja, efetivamente gera o cookie dentro do pc em
uma pasta meio escondida.
O prximo mtodo o do boto.
Cdigo fonte:
Nessa segunda parte, mostrarei como ler o arquivo que foi gerado pela
aplicao e como mostrar o mesmo na tela. Para voc que ainda no sabe
direito como fazer, no tenha medo. mais fcil do que tirar doce de
criana como diz o ditado.
Requisitos:
de
desenvolvimento:
IDE
Microsoft
chamada
Visual
Studio.NET 2005.
Pessoa: Apenas disposio em seguir os passos.
No
posso
deixar
de
falar
sobre
essa
grande
ferramenta
de
Esse link Ler cookie gerado chama uma pgina chamada lerCookie.aspx.
No decorrer, mostrarei a especificao da mesma. No revisarei a parte I de
como criar o cookie e tudo mais, qualquer coisa, existe um link acima que
indica onde pode ser encontrado para leitura e conhecimento.
A nica coisa que acrescentei foi linha de cor verde com o <a href... .
Passei para a pgina lerCookie.aspx que bem simples e fcil o
desenvolvimento e entendimento.
Especificao da pgina:
Label
Id = lblNome
Label
Id = lblEmail
Cdigo fonte:
Passei para o cdigo .CS da classe, mostro apenas como pegar o cookie que
gerei e como mostrar na tela.
Cdigo fonte:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class lerCookie : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Explicao:
Note que criei um mtodo chamado LerCookieGerado() do tipo privado e
sem retorno de valor. Dentro do mesmo mostro perfeitamente como pegar
o valor. O cdigo Request.Cookies["website1"]["NOME"] significa: na
primeira chave o nome do seu cookie, ou seja, website1. Na segunda
chave o valor que foi atribudo dentro do arquivo.
Funcionamento.
Gerei o cookie.
no
saber
que
informao
pode
ser.
Usando
Link: http://msdn.microsoft.com/vstudio/express/default.aspx
uma
outra
classe
chamada
UsuarioTO.cs
com
alguns
dados
Segue o cdigo:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Explicao:
O primeiro de tudo, coloquei a classe do tipo SERIALIZABLE antes da
assinatura. Declare as variveis necessrias como usuario, senha,
dataNascimento e email, depois gerei GET e SET das mesmas. Se voc
ainda no sabe como gerar GET e SET automaticamente com a ferramenta
VS 2005, acesse link abaixo que mostrar como gerar.
http://www.aspneti.com/visualizar/downloadArtigo.aspx?ch_artigos=41
Depois
de
gerar
classe
serializada,
criei
uma
pgina
chamada
Cdigo:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Explicao:
Criei
uma
constante
chamada
KEY_VIEW_STATE
com
valor
mtodo
da
classe
UsuarioTO.
Armazeno
os
valores
Por enquanto fica por aqui. Estou disposio de todos. Mostrarei como
pegar os dados criptografados e exibir na tela usando OOP.
Lembrando o que foi feito antes, gerei uma classe DTO com GETs e SETs,
adicionei os dados dentro da classe e dentro do ViewState. Agora para
pegar os dados, necessrio apenas uma linha de cdigo.
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
<input
type="hidden"
name="__VIEWSTATE"
id="__VIEWSTATE"
value="PV24jR7cu/lFMzlD4iBou7AyHy3WiVUGeFPR5Q6HIIlTMAqL+1nbR0hYj
pZkGnvZ8yvBXcn9Y5WOrGMYtKiM6kCkcD5ZqeUjc5WrhUZ4Jun1bMlaLU9keb
ACFDDyu67CkdrMxoasWGRDQDMBdpW4AtV/0+PWPplnrxZyfeBcQtoAdu812
YdwW0WZuQclWPU7kWcwv4GWfI2zPT7JvwyluJbmEbMJOTL7kCk0kZuGRd29
e4f487qNWX70SkQ/K/oZ5lsLdIUfOKItKH6DbIj3dVRL11qA/pbizX83ncP63sfgr
H333SIVvIogEjm42ukXlF+jlORs4zBm2Bj0GZxdkZTrUKblvo5+O7i+hsAH/Klg
nyb4MBP39kf5WGV6NdHnsyZ3pOUKbz/pOo9s9mIsyyIj1IarloFTz04XYt5dq+
X5z8ctPdzh8MkQcmxTNGOw4roLgg2ORMTrBpxcseNJ0+iFzpJ6P99SIpTkZXy3
wBT5k2FJHwVWDqemYjNHwdC57d4ZDKAghxnTkMv+4snwBig1Y9ujbTS/0fr6
ATipq1gs70A8YFZLzacaMxGMCuyTf50vovrKrxsJ965wXHleMGXtfoPN9a2NK13
tIt2k4C8LofGrrCej008Mp2rdBs5ndDmhyibMs7zU/mTgFRx4NZ31xbJU4UXzx7
URfHrg/FiNPnuSceIIMuX0PTahhyDOADWxuCa4qqFkJdaxQBEpAuXpGwJZmn
P2UMMlOu8wD+FRudw2Pik5dkO5Ow/z5ptGSAI9TnXAL0jDzpyoaDL5wIZQbe
Ks6tI35l8aaGn6SqLdo2UyiIZ+emmhulqcb3+yViLSoTKp5mhSOHFZ3OmG/6
UofjOq1oRp0++QbkouwLKMTLRpFeROkcXWYG4YASk1U73+eUR/yZxfCAfzml
B1QBfChQn6fVR2TkU0OIZGxnoIbtyzI35qITNJcq5Nmw0/V/j0mW5vGhZqVaT
R9Y9+zIigLmHiQncwUbvcE/IT49uWWu8AALDfVRw6tTXbWpQAi/Aq3M0l254
NhKS31SzuZZI2N8iFZrlz98w7GeRpAh8rA3BNpHe6Z5KbIMXSa9RzkJXaJ6t5r
wgtDB1hH0b9a+D44rBmzeqLndAqcfb9XkAEvbX0HhN1SD3Xtv/Nw1Jdrl1jE7
Este material no pode ser usado em treinamentos e em sala de aula.
http://www.mauriciojunior.org
Bom, fico por aqui. Espero ter ajudado a todos. Qualquer coisa pode entrar
em contato.