Arquivo da tag: ASP.NET

ASP.NET XML webservices

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


Usando a comparação “Is” no C#

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

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.

Abraços

Lineker Tomazeli


Exception + Sender

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#

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

Codigo fonte

Abraços

Lineker Tomazeli


Dica…Framework .NET 3.5 – StringBuilder e String Format

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…

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#.
101 Essential Tips, Tricks & Hacks - Free 156 Page Preview

http://dotnetcurry.tradepub.com/free/w_sitb03/

[]‘s

Lineker Tomazeli


Perguntas Mais Frequentes de 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


Boas práticas(best practices) e atalhos visual studio 2008

Bom gente hoje trouxe algumas boas práticas que usamos quando estamo codificando, para que o código fique mais legível e organizado.

  • Nome de classe : utilizamos primeira letra maiuscula de cada palavra ( ex: ClienteIncluir )
  • Propriedades : idem
  • Atributo : utilizamos primeira letra minuscúla da primeira palavra e as outras primeiras letras maiusculas ( ex: clienteNome )
  • namespace : utilizamos [nome da companhia].[Departamento].[Aplicação].[Camada] ( nunca se esquecendo do ponto)

Atalhos

CTRL + Shift + B -> Build ( Compilar )
F9 -> Seta breakpoint
CTRL + F5 -> Build sem depuração
F11 -> passa passo-a-passo apartir do breakpoint colocado entrando em todos os métodos.
F10 -> passa passo-a-passo apartir do breakpoint colocado mas não entra nos métodos.
Shift + F9 -> Quick Watch , serve para visualizar ou modificar valores em tempo de execução
CTRL + K + U -> Comenta
CTRL + K +C -> Descomenta

dica: clicando com o botão direito em cima do projeto e escolhendo a opção “Clear”, irá limpar os assembly e temporários.

Abraços

Lineker A. Tomazeli


Framework .NET novidades e como funciona…

Olá pessoal, depois de uma temporada sem post estamos de volta com uma serie de dicas sobre a tecnologia .NET da Microsoft.
Peço desculpas por ter estado ausente mas acreditem, foram por forças maiores.

Mas vamos lá, hoje explicarei um pouquinho de como funciona a linguagem interpretada e sua vantagens.

Para começar vamos entender alguns conceitos:
- A familia .NET esta toda baseada na CLS ( Common Language Specification ) que são as regras que se deve seguir para que o interpretador possa interpretar o seu codigo para liguagem de maquina ( binary code ou native code ) e assim a máquina possa fazer o que voçê solicitou.

Vamos analizar o diagrama:

Por tanto você escreve seu codigo e compila ele com o seu respectivo compilador e voçê terá como resultado o MSIL code ( Microsoft Intermediare Language ou Assembly ) que nada mais é seu .exe se for winforms ou .dll se for webforms e assim quando for a hora ele sera interpretado e passado para binary code ( codigo que utiliza somente 1 e 0. ex: 00110101)

Mas dai vem a pergunta mas qual a diferença da linguagem compilada?
Bom uma das grandes desvantagens das liguagens compiladas é que se você faz seu programa e compila no seu computador que é um pentium 3 e então você troca seu pentium 3 por um duo core achando que o processamento será mais rápido, você se engana, pois ele terá o mesmo desempenho que o pentium 3, pois o codigo foi compilado para aquele hardware. Já a linguagem interpretada, como ela é compilada na hora da execução, ela é compilada para o hardware do momento podendo utilizar todo o recurso disponível.

Outras novidades e dicas do framework são:

  • Garbage Collection : É um mecanismo que já vem por default no framework que fica checando para ver senão existem variáveis que não estão sendo utilizadas na memória e as retira para economizar recursos.
  • Namespaces: Nada mais é do que um agrupador lógico de classes.
  • Multithread: Você pode iniciar multiplos processos ao mesmo tempo. Veremos isso num proximo post.

Bom gente espero que tenha esclarecido um pouco este assunto.

Lineker Tomazeli

Categorias do Technorati ,


Seguir

Obtenha todo post novo entregue na sua caixa de entrada.