MSDN Magazine - Novembro 2007

10/23/2007 15:24:00 By Felipe Pessoto

Está disponível a edição 21 da MSDN Magazine. Assuntos de capa:

•Computação confiável: Lições aprendidas em 5 anos de criação de softwares mais seguros
Michael Howard

• Curso intensivo: Analise panes para encontrar vulnerabilidades de segurança nos seus aplicativos
A. Abouchaev, D. Hasse, S. Lambert e G. Wroblewski

• Revisões de código: Encontre e corrija vulnerabilidades antes de lançar seu aplicativo
M. Chmielewski, N. Clift, S. Fonrobert e T. Ostwald

• Teste de difusão: Crie um provedor de interface de teste personalizado para o Team System
Dan Griffin

Download em Português - Download em Inglês

Vídeo do Windows 7

10/19/2007 14:21:00 By Felipe Pessoto

Eric Traut da Microsoft numa palestra, mostrou o kernel do Windows 7 rodando em uma máquina virtual. O sistema que tem 25MB e ocupa cerca de 4MB em RAM estava rodando um servidor web simples. O novo windows será capaz de gerenciar 256 cores por processador!

A versão do kernel(MinWIn) é bem simples e não tem modo gráfico.

O download do video completo pode ser feito aqui e tem 1 hora de duração
Se preferir, pode ver uma versão de 8 minutos, onde Eric foca no Windows 7: Download (flv)

Technology on the beach III

10/18/2007 23:24:00 By Felipe Pessoto

Fiquei sabendo de uma palestra que vai ter na UNISANTA(Santos-SP), vou passar as informações:

"O Technology on the beach III, acontecerá em:

17 de Novembro de 2007 à partir das 08:00.

LOCAL:
Auditório Bloco E - UNISANTA
Rua Oswaldo Cruz, Nº 277
Boqueirão - Santos - SP
CEP: 11045-907"


Alguns dos palestrantes são até MVP. Acho que vale a pena ir, e entrada é só 2Kg de Alimento não perecível.
Mas o numero é limitado, então não marca bobera e se cadastra.

http://www.buildbrasil.org/

Palestras:

-Abertura: "Comunidade Build Brasil"
-Programando para Microterminais em C#
-Exchange 2007 e OCS 2007 - Garantindo a Comunicação Unificada
-Windows Server 2008
-Visual Studio 2008
-"LINQ-se"

Usando o LINQ

10/17/2007 11:51:00 By Felipe Pessoto

O .Net 3.5 traz uma novidade chamada LINQ(Language Integrated Query), que pretende integrar em uma linguagem de query uma forma de fazer pesquisas em fontes de dados.

Vou mostrar aqui como fica mais simples de gerar XML, e muito mais fácil de ler também:

//Inclua esse namespace
using System.Xml.Linq;

//Dentro do método Main
XDocument DocXml = new XDocument(
                               new XElement("Clientes",
                                      new XElement("Cliente",
                                           new XAttribute ("Nr", 1),
                                           new XElement("Nome", "Maria")
                                           )
                                      )
                                );

Console.WriteLine(DocXml);
Console.Read();



É bem mais intuitivo criar o elemento Pai e no construtor criar os filhos, do que fazer como no .Net2.0 em que você tinha que criar o elemento Filho, então criar o Pai, e adicionar o Filho no elemento Pai.

Uma diferença interessante entre o novo C#3.0 e o Visual Basic 9.0 é que o VB aceita literais XML, exemplo:

Dim ElementoXml As XElement =
     <clientes>
        <cliente nr="1">
            <nome>Maria</nome>
        </cliente>
     <clientes>


Sendo um literal, será interpretado em tempo de compilação e não uma string que vai ser convertida em runtime, assim evita-se erros inesperados. Por enquanto o C# não tem essa implementação e talvez seja assim na versão final também.

Você também pode criar elementos XML da seguinte maneira, usando uma Query Expression:

  List<int> MegaSena = new List<int>();

  MegaSena.Add(13);
  MegaSena.Add(21);
  MegaSena.Add(27);
  MegaSena.Add(33);
  MegaSena.Add(39);
  MegaSena.Add(43);

  XElement elementoNumeros =
     new XElement("Numeros",
        from Numero in MegaSena
        select new XElement("Numero", Numero)
     );

Criando uma aplicação de instância única

10/16/2007 17:51:00 By Felipe Pessoto

Para evitar que o usuário abra duas ou mais instâncias do seu programa, você pode usar a seguinte técnica

//Referencie o namespace System.Threading
using System.Threading;

//Classe Mutex, ela que identificará se seu programa já está aberto
Mutex m = null;
//String que usaremos para identificar o programa
const string NomeMutex =  "MEUPROGRAMA";

try
{
   //Tenta abrir o Mutex
    m = Mutex.OpenExisting(NomeMutex);
}
catch(WaitHandleCannotBeOpenedException)
{
   //Nao existe
}
if(m == null)
{
  //Caso nao exista, ele cria um novo
    m = new Mutex(true,NomeMutex);
}
else
{
  //Se existir é porque seu programa já está aberto
   m.Close();
   Application.Exit();

}

Você só precisa ter cuidado ao escolher a string de identificação, pois se houver outro programa com a mesma identificação, você não vai conseguir abrir seu programa.