C# - Usando classes p/a programação com a web (.NET Core)


Hoje vamos apresentar algumas classes que facilitam a programação para web na linguagem C#.


Na Internet, você identifica servidores e clientes por endereço IP ou nome de host (também chamado de
Domain Name System ou Sistema de Nomes de Domínio (DNS)
). De um modo geral, o nome do host é o nome amigável que você digita em uma janela do navegador da Web, como www.macoratti.net.
 


 

Um endereço IP é o identificador que os computadores usam para reconhecer um ao outro. Endereços IP são os identificadores usados ​​para garantir que as requisições e respostas da web cheguem às máquinas apropriadas. É até possível que um computador tenha mais de um endereço IP.
 

Um endereço IP pode ser um valor de 32 bits ou 128 bits, dependendo se o Protocolo da Internet versão 4 (IPv4)
ou o protocolo IP versão 6 (IPv6) for usado. Um exemplo de um endereço IP de 32 bits é 192.168.1.100.

Como existem muitos computadores e outros dispositivos competindo por um ponto na Internet, o IPv6 foi desenvolvido. O IPv6 pode fornecer potencialmente um número máximo de cerca de 3 × 1038 endereços únicos.


A plataforma .NET permite que  seus aplicativos trabalhem tanto com IPv4 como com IPv6.

 

Para que os nomes dos hosts funcionem, você deve primeiro enviar uma requisição de rede para converter o nome do host em um endereço IP - uma tarefa executada por um ou mais servidores DNS.


Um servidor DNS armazena uma tabela que mapeia nomes de host para endereços IP para todos os computadores que conhece, bem como os endereços IP de outros servidores DNS para procurar nomes de host que não conhece.
Seu computador local deve sempre conhecer pelo menos um Servidor DNS.

 

Antes de enviar uma requisição, o computador primeiro solicita ao servidor DNS que forneça o endereço IP
correspondente ao nome do host que você digitou. Quando estiver armado com o endereço IP correto, o computador pode endereçar o pedido e enviá-lo pela rede. Todo esse trabalho normalmente acontece por trás dos panos enquanto o usuário está navegando na web.

A plataforma .NET fornece um número de classes que podem ajudar no processo de procurar endereços IP e
encontrar informações sobre computadores host.

 

Vejamos a seguir alguns destes recursos.

 

Recursos usados:

Tratando com URI

 

URI ou Identificador Uniforme de Recursos ou Uniform Resource Identifier é uma cadeia de caracteres compacta usada para identificar ou denominar um recurso na Internet.

 

No .NET Core temos duas classes no namespace System que se prestam a representar um URI. São Elas:

Vamos começar mostrando os recursos da classe Uri que permite passar URLs relativas e absolutas para o seu construtor e que define diversas propriedades para acessar partes da URL como :  scheme, hostname, query string, e segmentos de uma URL.

 

Criando um projeto .NET Core do tipo Console com o nome CShp_Uri1.

 

Defina o código abaixo no arquivo Program.cs :

 

using System;
using static System.Console;
namespace CShp_Uri1
{
    class Program
    {
        static void Main(string[] args)
        {
            // constroi 3 objetos Uri 
            Uri uri1 = new Uri("http://macoratti.net/");
            Uri uri2 = new Uri(uri1, "/pageview.aspx?catid=40");
            Uri uri3 = new Uri("http://www.macoratti.net/pageview.aspx?catid=6");
            // Exibre as propriedades
            Print(uri1);
            Print(uri2);
            Print(uri3);
            ReadLine();
        }
        static void Print(Uri uri)
        {
            // Imprime as propriedades da instância Uri
            WriteLine($"AbsolutePath = {uri.AbsolutePath }");
            WriteLine($"AbsoluteUri = {uri.AbsoluteUri}");
            WriteLine($"Authority = {uri.Authority}");
            WriteLine($"DnsSafeHost = {uri.DnsSafeHost}");
            WriteLine($"Fragment = {uri.Fragment}");
            WriteLine($"Host = {uri.Host}");
            WriteLine($"HostNameType = {uri.HostNameType}");
            WriteLine($"IsAbsoluteUri = {uri.IsAbsoluteUri}");
            WriteLine($"IsDefaultPort = {uri.IsDefaultPort}");
            WriteLine($"IsFile = {uri.IsFile}");
            WriteLine($"IsLoopback = {uri.IsLoopback}");
            WriteLine($"IsUnc = {uri.IsUnc}");
            WriteLine($"LocalPath = {uri.LocalPath}");
            WriteLine($"OriginalString = {uri.OriginalString}");
            WriteLine($"PathAndQuery = {uri.PathAndQuery}");
            WriteLine($"Port = {uri.Port}");
            WriteLine($"Query = {uri.Query}");
            WriteLine($"Scheme = {uri.Scheme}");
            WriteLine($"UserEscaped = {uri.UserEscaped}");
            WriteLine($"UserInfo = {uri.UserInfo}");
            WriteLine(new string('-', 40));
        }
    }
}

 

Executando o projeto iremos obter o seguinte resultado:-

 

 

Vale a pena destacar o método IsBaseOf que determina se a instância Uri atual é uma base da instância da Uri especificada, ou seja, ele permite determinar se uma Uri esta contida no início da segunda Uri.

 

Exemplo: "http://macoratti.net" é uma Uri base de "http://macoratti.net/Sistema/"

 

        static void Main(string[] args)
        {
            // Cria uma uri base
            Uri baseUri = new Uri("http://www.macoratti.net/");
            // Cria uma nova uri a partir de uma string
            Uri uriAddress = new Uri("http://www.macoratti.net/pageview.aspx?catid=6");
            // Determina se a BaseUri é a base de UriAddress.  
            if (baseUri.IsBaseOf(uriAddress))
                WriteLine($"{baseUri} é a base de {uriAddress}");
            ReadLine();
        }

 

Executando o código acima teremos o seguinte resultado:
 


Na próxima parte do artigo vamos tratar da classe UriBuilder.
 

"Bom é louvar ao SENHOR, e cantar louvores ao teu nome, ó Altíssimo;
Para de manhã anunciar a tua benignidade, e todas as noites a tua fidelidade;"
Salmos 92:1,2

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?


Referências:


José Carlos Macoratti