ASP.NET XML webservices
Novembro 30, 2008 at 5:26 am | In .NET, C#, TI, Tecnologia | Leave a CommentTags: .NET, ASP.NET, Web Services, XML
Hoje falaremos sobre XML webservices, um pouca da sua história e o objetivo dele ter sido desenvolvido e estaremos criando e consumindo um ao final deste artigo.
Simplificando a utilidade dos webservices teremos uma explicação simples que é a integração de sistemas distintos mas que precisam trocar informações.
Antigamente essa integração era feita via RPC ( Remote Procedure Call ) e depois evoluiu para RPC – over http no qual utilizava a porta 143 para se comunicar. A tecnologia RPC tem vários problemas, são eles:
• A data dos sistemas que estão tentando trocar informações devem estar sincronizadas, isto é, exatamente iguais.
• Existiam muitas diferenças na linguagem quando os sistemas eram diferentes.
• As chamadas eram síncronas.
Portanto para acabar com todos esses problemas foi criado o webservices utilizando o XML como linguagem de comunicação. O XML foi implantado e padronizado pela W3C.
Existem alguns itens que são importantes saber para criarmos um webservices:
WSDL – Web Service Description Language – Nele estão descriminados todos os pontos de entrada, descrição de classes, métodos e outras informações. ( Ele é criado de acordo com as regras da W3C)
DISCO – Discovery – Armazena os contratos com relação ao webservices ( Ele é gerado somente por webservices da Microsoft)
UDDI – WWW.uddi.org – Funciona como as páginas amarelas dos webservices onde você pode cadastrar o seu webservices e disponibiliza-lo ao público e também achar e consumir algum do seu interesse.
SOAP – Simple Object Access Protocol – É a linguagem que os webservices utilizam para trafegar as informações entre eles.
Existem 2 tipos de chamadas quando estamos consumindo um webservices
1. Direct call – Chamadas feitas direto do browser para o webservices.
2. Proxy call – Aplicação fazendo chamadas para o webservices onde não tem uma camada de apresentação.
Bom, agora vamos botar a mão na massa e criar e consumir nosso webservices.
Vamos abrir o Visual Studio 2008 SP 1 e criar um projeto do tipo ASP.NET Web Services application.

Iremos perceber que ele já criou um WebMethod de exemplo quer se chamarmos ele irá nos retornar um “Hello World”.
Agora vamos criar um método nosso onde ele irá receber 2 numeros, fazer a soma deles e retornar o resultado.
Nosso código ficará assim:

Simplesmente fazendo isso nós já temos nosso webservices pronto para funcionar. Lembrando que o webservices é como se fosse um website então se quisermos botar para funcionar devemos simplesmente criar o diretório virtual no IIS, mas como estão rodando nossa aplicação no VS 2008 ele criará o web Server virtual para nós.
Iremos criar agora uma aplicação web e montar nossa tela de input. Vamos adicionar um projeto a nossa solução

Nossa tela ficará assim:

De um Build na solução para ver se não tem nenhum erro.
Agora iremos adicionar a referencia do nosso WebService ao nosso projeto web para que possamos consumir e chamar o método que criamos.
Para adicionar a referencia, clique com o botão direito em cima do projeto web no solution Explorer e clique em Add Service Reference

Depois na próxima tela clique em Discovery , selecione o nosso webservices que ele achou automaticamente e clique em OK.

Feito isso iremos programar um pouco.
De um duplo clique no botão da tela e insira o seguinte código:

Agora podemos rodar nossa aplicação e testar nossa “super” calculadora.
Boa sorte a todos e qualquer dúvida pode perguntar.
Abraços
Lineker Tomazeli
Isolamento de Classes – .NET
Novembro 20, 2008 at 2:54 am | In .NET, C#, Tecnologia | Leave a CommentTags: .NET, Framework .NET

Muitas dúvidas tem surgido sobre isolamento de classes e então resolvi escrever este pequeno artigo. Vamos lá.
Quando usamos isolamento de classes ?
Iremos usar diferentes tipos de isolamento de classe quando queremos proteger uma classe de ser estanciada ou herdada.
Quem mais utiliza isto?
Podemos encontrar essa prática em muitos componentes prontos que são vendidos.
Nós temos 3 tipos de isolamento de classes:
- Classe abstrata ( abstract ) – Não é possível estanciar mas pode ser herdada
Exemplo:
abstract class MinhaClass { }
- Classe de construtor privado ( private ) – Não é possivel estanciar a classe mas pode ser herdada
Exemplo:
private MinhaClasse()
{
}
- Classe Isolada ( sealed ) – Não pode ser herdada mas pode ser estanciada
Por tanto se você juntar um construtor privado com uma classe isolada você terá uma classe extremamente protegida.
Deixe seu comentário.
Abraços
Lineker Tomazeli
Usando Multithread no Framework .NET
Novembro 10, 2008 at 9:49 pm | In Tecnologia | Leave a CommentDepois de um final de semana ensolarado estamos de volta com mais um dos assuntos comentadissimos no momento , threads ou melhor multithread, que é nada mais nada menos do que muitas várias ações ocorrendo ao mesmo tempo.
Iremos fazer um exemplo hoje usando uma aplicação windows services onde teremos 2 threads rodando ao mesmo tempo.
Primeiramente vamos criar o projeto windows form application.

Depois adicione duas classes chamadas class1.cs e class2.cs

Abra o Form1.cs e vamos codificar um pouco.
Declare o namespace System.Threading.
using System.Threading;
Abra as classes que que foram criadas e crie um método em cada, pois chamaremos estes métodos para iniciarmos a thread.

Voltando para o Form1.cs em Design Mode de um duplo clique no form para criar o evento Form1_Load no code behind e então vamos adicionar as seguintes linhas de codigo para iniciarmos as thread .
//Estanciando a class1
Class1 objC = new Class1();
//Criamos um objeto ThreadStart que serve para setar qual método irá iniciar a Thread.
ThreadStart obj1 = new ThreadStart(objC.FazerAcao1);
//Criamos um objeto do tipo Thread e passamos como parametro o objeto ThreadStart
Thread th = new Thread(obj1);
//Iniciamos a Thread
th.Start();
Class2 objC2 = new Class2();
ThreadStart obj2 = new ThreadStart(objC.FazerAcao1);
Thread th2 = new Thread(obj2);
th2.Start();
Coloque um break point no Form1_Load método e rode a aplicação,passe passo-a-passo usando F11 e perceba que as thread são iniciadas e a aplicação continua rodando. Usando esta técnica você pode fazer e tomar varias acões ao mesmo tempo na sua aplicação.
Vale lembrar que multithread também funcionam para aplicação .NET, incluindo web. Lembre-se que quanto mais threads mais memória será consumida na máquina.
Um exemplo prático da utilização disto é quando você tem um windows services que fica fazendo algum tipo de verificação no seu sistema, pode ser feito um unico serviço que faça várias verificações ao mesmo tempo, conecte com outros serviços e por ai vai.
Coloquei o arquivo fonte com os exemplo abaixo e qualquer dúvida e sugestões são sempre bem-vindas.
Abraços
Lineker Tomazeli
Usando a comparação “Is” no C#
Outubro 23, 2008 at 9:07 pm | In .NET, C# | Leave a CommentTags: .NET, ASP.NET, C#, Framework .NET
O comando de comparação Is é utilizado para comparar objetos. Veja o exemplo abaixo:
Criei um botão na tela e codifiquei uma verificação.
if (Button1 is Button)
{
Response.Write(”Button1 é um botão!”);
}
Claro que este é um exemplo muito simples e inútil mas podemos utilizar num ambiente mais complexo e usando heranças, vejam:
Imagine que temos 2 classes uma chamada Gerente e outra Pessoa e a classe Gerente herda Pessoa.
public class Pessa
{ ….. }
public class Gerente:Pessoa
{ …… }
Private void teste()
{
Gerente objGerente = new Gerente();
if(objGerente is Pessoa)
{
Response.Write(”A classe Gerente é Pessoa”)
}
else
{ … }
}
Qualquer duvida perguntem…. e deixe seu feedback
Abraços
Lineker
Mapa de Certificações Microsoft
Outubro 16, 2008 at 10:41 pm | In .NET, C#, Novidades, TI, Tecnologia | 2 CommentsTags: .NET, ASP.NET, Microsoft, TI
Olá pessoal,
Para aqueles que ainda tem dúvidas sobre a seqüencia das certificações da microsoft, segue abaixo um
mapa para facilitar o entendimento. Qualquer dúvida não existe em perguntar.
Lineker Tomazeli
Exception + Sender
Outubro 16, 2008 at 3:13 am | In .NET, C#, Tecnologia | Leave a CommentTags: .NET, ASP.NET, C#
Hoje falaremos um pouco sobre tratamento de excessões e sobre o objeto Sender.
Exceptions
Para fazermos o tratamento de excessões utilizaremos o Try Catch do c#.
É muito simples e muito importante também, vamos a uma demonstração.
Definições:
Try = tenta
Catch = pega
Estrutura:
Try
{
//Entao aqui vem o seu codigo e se houver algum excessão ( erros ) e ele cairá no Catch conforme
// exemplo abaixo onde estamos tentando converter uma string para int.
string texto = “Teste”;
int numero = Convert.ToInt32(texto);
}
Catch(Exception ex)
{
//Cai estamos tratando o erro e mostrando na tela.
Console.WriteLine(”Ocorreu um erro : ” + ex.toString());
}
Podemos ter varios tipo de excessões desde SQL como uma simples conversão como mostrada acima.
Sempre devemos colocar os catchs (excessões) da mais complexa para a mais simples, no caso a mais basica (simples ) é a somente Exception. Portanto poderemos ter varios Catch ( cada um com seus exception especifico) para cada Try. Então você dera dizer “Se ocorrer um erro de SQL faça isso” , “Se ocorrer um erro de dados faça isso” e assim por diante.
Mas Lineker, como posso ver qual foi o erro ?
Quando você coloca “Catch(SQLException ex)” , ex pode ser qualquer nome que você quiser, estaremos atribuindo a excessão ao objeto ex. Se quisermos mostrar na tela o erro vamos passar o ex.toString() para aonde desejarmos. Dica: use o intellinsense para ver a propriedades das excessões ( ex: ex.[ira aparecer as propriedades])
Sender
Você perceberá este objeto quando criar um evento para por exemplo um botão. Faça o teste crie um projeto windows form, coloque um botão na tela e clique 2 vezes nele e você verá:
private void button1_Click(object sender, EventArgs e) { }
O sender nada mais é do que o objeto em si, neste caso o button.
Então se por exemplo você quer mudar a cor do botão quando ele for clicado usando o sender ficaria assim:
private void button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
btn.BackColor = Color.Red;
}
Claro que essa aplicação é simple e não faz muito sentido pois poderiamos fazer isso de maneira muito mais facil mas espero ter ajudado e esclarecido algumas duvidas dos novatos.
Abraços
Lineker Tomazeli
Substring + IndexOf no C#
Outubro 15, 2008 at 3:57 am | In .NET, C# | Leave a CommentTags: .NET, ASP.NET, C#
Bom, hoje veremos o funcionamento de 2 métodos muito úteis no dia-a-dia.
Um deles é o Substring que serve para extrairmos uma certa parte de uma string fornecendo um ponto de partida e quantos digitos para frente vamos querer extrair. Veremos um exemplo abaixo.
E o outro é o IndexOf onde server para sabermos a posição exata de tal elemento, podendo ser string, int, char e etc.
Vamos aos exemplos:
Foi criada uma aplicação windows form, com 3 labels e 1 textbox e um button.
Clicando 2 vezes sobre o botão vamos dar algumas ações a ele. Veja o codigo comentado.

obs: a imagem ficou meio cortada por causa do layout do blog, veja aqui completa
Abraços
Lineker Tomazeli
Dica…Framework .NET 3.5 – StringBuilder e String Format
Outubro 7, 2008 at 4:43 am | In Tecnologia | Leave a CommentTags: .NET, ASP.NET, Framework .NET
A dica de hoje vai pra 2 classes novas que foram inseridos no framework e que são muito úteis quando se tratando de “best practices” e utilização de memória.
StringBuilder
String builder veio para convencionar a concatenação de strings.
Antigamente nos viamos programadores concatenarem as string de select e update da vida, por ex:
string str =”select produto”;
str = str + “from tb_produto”;
str = str + “where id = 1″;
Agora nos utilizaremos um método muito mais elegante e eficaz pra fazer isso.
//Declare o namespace System.Text
using System.Text;
// Vamos estanciar a classe
StringBuilder sb = new StringBuilder();
// E agora vamos adicionar strings
sb.Append(”select produto”);
sb.Append(”from tb_produto”);
sb.Append(”where id = 1″);
// passamos a string para aonde for conveniente
string r = sb.ToString();
ps: No objeto StringBuilder pode ser adicionado outros valores como int, char entre outros.
Veja mais : http://msdn.microsoft.com/pt-br/library/2839d5h5.aspx
String Format
Nada mais é do que uma função que substituirá um item na string por seu correspondente.
Vamos aos exeplos que ficará mais claro.
Um exemplo clássico é na utilização do Responde.Redirect quando utilizavamos assim:
Response.Redirect(”teste.aspx?id=” + txtId.Text + “&nome=” + txtnome.Text );
Utilizando o string format ficará assim:
Response.Redirect(string.Format(”teste.aspx?id={0}&nome={1}”,txtId.Text,txtnome.Text));
Lembrando que começaremos a contagem sempre do 0 e que devem seguir na ordem.
abraços e boa semana.
Lineker Tomazeli
Livros técnicos gratuitos…
Outubro 6, 2008 at 10:15 pm | In .NET, Downloads, Novidades, TI, Tecnologia | 2 CommentsTags: .NET, ASP.NET, ebook, TI
Lendo meus feeds de hoje me deparei com esse site onde disponibiliza muitos livros técnicos gratuitos.
O que mais me interessou foi esse.
The
ASP.NET 2.0 Anthology: 101 Essential Tips, Tricks & Hacks is a
collection of solutions to the most common ASP.NET problems. Let five
world-class ASP.NET professionals guide you through countless practical
solutions using C#.

http://dotnetcurry.tradepub.com/free/w_sitb03/
[]’s
Lineker Tomazeli
Perguntas Mais Frequentes de ASP.NET
Outubro 4, 2008 at 5:45 am | In .NET, Tecnologia | Leave a CommentTags: .NET, ASP.NET

Pessoal,
passei no blog do Rogério Cordeiro e achei essa lista muito boa sobre perguntas mais frequentes de ASP.NET.
A lista foi criada pelo Rafael Fagundes, um dos moderadores do fórum de ASP.NET e todas as respostas estão disponíveis no forum.
Segue abaixo a perguntas e os links para as respostas:
JavaScript
Como exibir data e hora do cliente?
Como acessar um controle utilizando Javascript?
Como chamar uma função do lado do servidor com Javascript?
Como passar um valor para um campo oculto utilizando javascript em ASP.Net?
Como registrar uma função Javascript no Code-behind?
Como exibir imagens com um atraso de 5 segundos?
Como capturar as configurações do Browser e aplicar controles de página?
Como apagar a sessão quando o usuário fechar a janela?
Métodos de passar dados entre páginas
Como utilizar cookies?
Como utilizar QueryString?
Como utilizar Session?
Como utilizar Use Context?
Como utilizar PreviousPage?
Como utilizar Submit Form?
Como utilizar Server.Transfer?
Upload de Arquivo
Como fazer upload de um arquivo?
Como capturar o tipo de dado do arquivo carregado?
Como capturar o tamanho do arquivo carregado?
Porque ocorre falha ao fazer o upload de arquivos grandes quando utilizado o controle ASP.NET FileUpload?
Como fazer upload de imagens somente?
Como fazer com que o contole File Upload funcione com um UpdatePanel?
Calendar
Como mudar as definições de do controle Calendar?
Como selecionar vários datas não sequencias no Code-behind?
Como desabilitar algumas datas no controle Calendar?
Como estender o controle Calendar para validação do lado do servidor?
Como definir ToolTips e links no evento DayRender do controle Calendar?
Como definir diferentes aparências para datas?
List Controls
Como habilitar um ASP.NET DropDownList com suporte a OptionGroup?
Como desabilitar um item no DropDownList?
Como manter selecionado um valor em um DropDowlist?
User control
Como adicionar uma nova propriedade em um UserControl?
Como acessar UserControl criados dinamicamente?
Como acessar o controle dentro de um UserControl?
Controles dinâmicos
Como criar um controle dinâmico?
Como acessar o valor inserido por um usuário em um controle criado dinamicamente?
Como acessar o controle dinâmico através do Javascript?
Como manter todos os controles adicionados dinamicamente após um post back?
Porque controles dinâmicos desaparecem após um post back?
Estilo
Como adicionar estilo através do Code-behind?
Como adicionar estilo através de javascript?
Como remover espaço?
Como adicionar estilo através do html?
Como definir uma imagem como plano de fundo de um botão?
Como colorir itens em um ListBox?
Impressão
Como imprimir parte de uma página web através de CSS?
Como imprimir parte de uma página web através de javascript (1)?
Como imprimir parte de uma página web através de javascript (2)?
Mail
Quais classes são necessárias para enviar email no ASP.Net?
Como enviar emails utilizando System.Net.Mail ?
Como configurar um servidor SMTP?
Como enviar um email para servidor Gmail?
GridView
Como editar de dados de um Gridview com DropDownlist?
Como exportar dados do Gridview para Excel?
Como alterar as propriedades de um TextBox do GridView?
Como atualizar campo do GridView com a data atual?
Configuração
Onde armazenar informações de configuração de uma aplicação?
Bons códigos e bom final de semana!
[]’s
Lineker Tomazeli
Blog no WordPress.com. | Theme: Pool by Borja Fernandez.
Entries and comments feeds.
