Posts Tagged ‘C#’

Enviando emails usando C#

quarta-feira, dezembro 23rd, 2009

Olá, garotada. O post de hoje tratará de um assunto mais simples, porém bastante necessário e básico na rotina atual de programação: envio de emails.

Com a popularização da internet, o email passou a ser um meio de comunicação extremamente difundido. As linguagens mais antigas, como C, não possuem um suporte tão cristalino ao envio de mensagens como as atuais. É claro que é possível fazê-lo, mas nas linguagens atuais é mais fácil.

Linguagens totalmente voltadas ao desenvolvimento web, como Ruby e PHP, tem um ótimo suporte ao envio de emails. O C# se encontra em uma situação intermediária, mas não é nada assustador.

As classes de envio de email se encontram no namespace System.Net.Mail, disponível no framework 2.0 em diante.

(mais…)

Enum em C#

quinta-feira, dezembro 17th, 2009

Olá a todos novamente. O tópico de hoje tratará de enums, uma estrutura herdada do C e presente em várias linguagens de programação.

A utilidade dos enums está em organizar tipos de dados sequenciais. Dias da semana são um ótimo exemplo. Os enums servem para enumerar estados, também (conectado, desconectado, em espera, por exemplo).
Observe abaixo como declarar um enum com os dias da semana:

enum Dias { Dom, Seg, Ter, Qua, Qui, Sex, Sab };

Nada de muito fantástico, não é? Há um detalhe aqui. O enum Dom começa com 0 – é o default do C#. Seg seria 1, Ter 2, e assim por diante. Mas adivinhe se podemos mudar essa lógica? Isso mesmo, podemos. E é simples. Podemos fazer:

enum Dias { Dom=1, Seg, Ter, Qua, Qui, Sex, Sab };

Isso faria com que Seg fosse 2, Ter 3, e assim por diante.

A classe Enum (com E maiúsculo) fornece alguns métodos interessantes. Observe o código abaixo:

using System;
using System.Collections.Generic;

namespace EnumTest
{

class Program
{
enum Dias { Dom=1, Seg, Ter, Qua, Qui, Sex, Sab };
static void Main(string[] args)
{
foreach (string dia in Enum.GetNames(typeof(Dias)))
{
Console.WriteLine(dia);
}
foreach (int i in Enum.GetValues(typeof(Dias)))
{
Console.WriteLine(i);
}
Console.ReadLine();
}
}
}

Com isso, listamos o nome e os valores de todos os itens da nossa enum dos dias da semana.

Há também a possibilidade de mudar o tipo base do enum, bem como criar flags com essa estrutura. Isso fica como dever de casa para a criançada.

Obrigado, e espero que tenham gostado. Até a próxima!

Um pouco sobre LINQ

quinta-feira, dezembro 3rd, 2009

Olá a todos novamente. Esse post tratará sobre LINQ (que quer dizer Language Integrated Query, ou Linguagem de Consulta Integrada). Você pode usar os nossos conhecidos amigos “select”, “where” e “from” do SQL nativamente no código C# ou VB. Essa poderosa ferramenta permite que você trate objetos da mesma maneira como trataria resultados de uma consulta ao banco.

Um exemplo básico de código:

using System;
using System.Linq;
using System.Collections.Generic;

class LinqTeste {
static void Main() {
string[] nomes = { “Bruno”, “Sérgio”, “Giordano”,
“Eduardo”, “Robson”, “Pablo”,
“Lino”, “Lyanderson” };

IEnumerable query = from s in nomes
where s.Length > 4
orderby s
select s.ToUpper();

foreach (string nome in query)
Console.WriteLine(nome);
}
}

Esse código imprimirá na console todos os nomes cujo tamanho seja maior que 4 (excluindo, portanto, apenas nosso amigo Lino), ordenando-os por ordem alfabética.

Na verdade, a grande sacada do LINQ reside em que podemos abstrair se estamos lidando com um banco ou com objetos – a única diferença é a origem dos dados, não como os tratamos. No caso do exemplo, usamos um array de strings como nossa geratriz de dados, mas isso poderia muito bem ser gerado a partir de uma consulta a um banco.

Além disso, a maioria dos desenvolvedores que já trabalharam com SQL, independente da linguagem em que desenvolvessem, conhecessem os comandos básicos do LINQ. Isso torna mais fácil entender o código, mesmo pra quem não conhece muito bem a sintaxe do C# ou do VB.net.

Espero que tenham gostado desse breve esclarecimento sobre LINQ. Até a próxima!

Active Directory com C#

quarta-feira, novembro 25th, 2009

Uma das coisas mais fascinantes do framework .NET é a sua integração com alguns serviços do Windows. Trataremos de um deles nesse post de inauguração: o Active Directory.

O serviço de domínio da Microsoft, carinhosamente chamado de AD, possui ferramentas poderosas para o gerenciamento de diretórios, sejam eles pequenos ou corporativos. A arquitetura do AD abrange LDAP (Lightweight Directory Access Protocol, ou Protocolo Leve de Acesso a Diretório), autenticação Kerberos (usada para autenticação nas máquinas) e alguns serviços de DNS. Com ele, é possível gerenciar políticas de rede de maneira avançada. Mas o foco do post não é falar sobre o AD em si, e sim como usar o C# para tirar proveito dessa mecânica.

Em primeiro lugar, vamos criar um método para listar todos os domínios da árvore em que o computador está logado. Lembrando que devemos estar conectados ao diretório do AD para podermos realizar pesquisas.

O código do método pode ser algo do tipo:

(mais…)