Pesquisar

30 de out de 2007

Imagem VPC do Visual Studio 2008 Beta2 expira 1º de novembro

Este mês foi anunciado que a imagem VPC(Virtual PC) que foi distribuída com o Visual Studio 2008 Beta2 infelizmente vai expirar no dia 1º de Novembro deste ano. O setup do VS 2008 independente não tem esse problema - somente as imagens pré-feitas do VPC. Então se você tem instalado o VS 2008 em seu próprio sistema operacional você não terá nenhum problema em relação à isso

Se você está usando a imagem do VPC, é muito importante que você salve todos seus dados antes do dia 1º de Novembro(depois dessa data o SO não funcionará mais).

Hoje foi re-liberado a imagem do VPC com o VS 2008 Beta2 para download (mas sem a expiração) que você pode baixar aqui: Link

23 de out de 2007

MSDN Magazine - Novembro 2007

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

19 de out de 2007

Vídeo do Windows 7

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)

18 de out de 2007

Technology on the beach III

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"

17 de out de 2007

Usando o LINQ

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)
     );

16 de out de 2007

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

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.

13 de out de 2007

Diminuindo fotos automaticamente

Criei esse programa pra diminuir algumas fotos de forma automatica. As vezes deixamos a câmera digital no modo com mais alta resolução e isso vai consumindo o HD. No exemplo iremos diminuir a foto pra largura ou altura(o que for maior) de 640px.

Vamos precisar de um Button, um CheckBox e uma ProgressBar:



Vamos criar o método que irá gerar a foto menor:

private void GravarThumb (FileInfo Arquivo)
{
   Bitmap bm;
   Bitmap thumb;
   int altura;
   int largura;

   bm = (Bitmap)Bitmap.FromFile(Arquivo.FullName);

   if(bm.Width > 640 || bm.Height > 640)
   {
      altura = (int)(640f/ bm.Width * bm.Height);
      if(altura > 640)
      {
         largura = (int)(640f/ bm.Height * bm.Width);
         thumb = new Bitmap(bm, new Size(largura, 640));
      }
      else
      {
         thumb = new Bitmap(bm, new Size(640, altura));
      }
   }
   else
   {
      thumb = new Bitmap(bm);
   } 
   thumb.Save(Arquivo.DirectoryName + "/tn_" + Arquivo.Name, System.Drawing.Imaging.ImageFormat.Jpeg);
}

E dentro do evento Click do Button:

if
   (folderBrowser.ShowDialog() ==
DialogResult.OK)
   {
   DirectoryInfo d = new DirectoryInfo(folderBrowser.SelectedPath);
   FileInfo[] Arquivos;

   if(chkIncluirSubPastas.Checked)
       Arquivos = d.GetFiles("*.jpg",SearchOption.AllDirectories);
   else
       Arquivos = d.GetFiles("*.jpg",SearchOption.TopDirectoryOnly);

   progressBar1.Maximum = Arquivos.Length;

   foreach(FileInfo Arquivo in Arquivos)
   {
      GravarThumb(Arquivo);
      progressBar1.Value++;
      Application.DoEvents();
   }
   progressBar1.Value = 0;
}

11 de out de 2007

Inserindo strings em Imagens

Este é um pequeno artigo, ou melhor uma dica de como inserir uma string nas suas fotos.

Um exemplo prático seria para um texto de Copyright

Vamos ao código:

//Carregamos o arquivo da imagem pra uma classe Image
//(poderia ser Bitmap também, que é uma classe derivada da Image)

Image i = Image.FromFile(@"C:\WINDOWS\Web\Wallpaper\Alegria.bmp");

//Instanciamos um objeto Graphics,
//que contém métodos para editarmos nossa Image

Graphics g = Graphics.FromImage(i);

//Instanciamos o objeto Font,
//escolhemos o nome da Font, tamanho e estilos
//(para usar dois ou mais estilos use o operador Bitwise
//ex.: FontStyle.Bold | FontStyle.Italic)

Font f = new Font("Verdana", 40, FontStyle.Bold);

//O objeto StringFormat é opcional,
//você pode usa-lo para configurar alinhamento e direção do texto(entre outras opções)

StringFormat s = new StringFormat();
s.Alignment = StringAlignment.Center;

//Agora simplesmente chamamos o método DrawString,
//passando a string que queremos escrever na imagem, a fonte,
//um Brush(você pode usar algum das propriedades da classe Brushes,
//ou criar um Brush personalizado),
//o local que você quer a string e opcionalmente um StringFormat.

g.DrawString("Felipe", f, Brushes.Blue, 100f, 100f, s);

//Finalmente salvamos o arquivo
i.Save(@"C:\WINDOWS\Web\Wallpaper\Alegria2.bmp");

É muito simples! Espero postar outros artigos em breve, assim que tiver mais tempo.

8 de out de 2007

Microsoft quer códigos mais seguros e de qualidade

A Microsoft continua a ajudar os desenvolvedores à escrever código de melhor qualidade e mais seguro.
Ela está adicionando características novas para análise de código na próxima versão da sua suite de desenvolvimento, o Visual Studio 2008.

No Visual Studio 2005, a companhia integrou um par de ferramentas: FxCop e PREfast, sob os nomes de Managed Code Analysis e C/C++ Code Analysis, disse S. “Soma” Somasegar, vice-presidente da divisão de desenvolvimento da Microsoft.

Agora para o Visual Studio 2008, a equipe de análise de código da Microsoft está adicionando algumas características novas, incluindo o Code Metrics, uma nova janela de ferramentas "que permitirá que você não somente tenha uma visão geral da qualidade do código, mas também a possibilidade de se aprofundar nos pontos de difícil manutenção e mais complexos,” disse Somasegar.

Para o Visual Studio 2008, o Code Metrics virá com 5 modos: Cyclomatic Complexity, Depth of Inheritance, Class Coupling, Lines of Code e Maintainability Index.


Outras características novas incluem as melhorias no Code Analysis Policy, que permitem se assegurar de que a análise do código esteja funcionando antes de cada registro. A equipe da Microsoft fez também algumas melhorias na usabilidade, incluindo uma orientação melhor e fornecendo mais controle sobre os ajustes que são aplicados na política dos projetos.

De acordo com o blog de Somasegar, a análise de código do Visual Studio 2008 será caracterizada também por melhorias como: sustentação para analisar métodos anônimos e expressões lambda; análise nova, incluindo regras adicionais de segurança, de globalização, da manutenção e da sintetização de voz (incluindo suporte à dicionário customizado); melhor suporte para C++/CLI e o Compact Framework; e as melhorias de desempenho que diminuíram o tempo de análise sobre código gerenciado em duas vezes, e consumindo metade da memória do Visual Studio 2005.

A Microsoft anunciou o lançamento oficial do Visual Studio 2008 junto com Windows Server 2008 e SQL Server 2008 para o dia 27 de Fevereiro 2008 em Los Angeles. Entretanto, o código final do Visual Studio 2008 é esperado para o fim deste ano.

5 de out de 2007

MSDN Magazine - Outubro 2007

Ja está disponível para download a revista MSDN Magazine desse mês:

•Segmentos Agrupados: Aumente a escalabilidade com as novas APIs do pool de segmentos
• SEGMENTOS DO WPF: Crie aplicativos que respondem melhor com o despachante
• LINQ paralelo: Como executar consultas em processadores de vários núcleos
• Desempenho paralelo: Otimizar o código gerenciado para máquinas de vários núcleos
• Aplicativos móveis: Ajuste o volume do toque do celular ao som ambiente

Download em Português - Download em Inglês

4 de out de 2007

Código Fonte das bibliotecas do .Net Framework

A Microsoft está planejando liberar o código fonte das bibliotecas do Framework no Visual Studio 2008, para ajudar os desenvolvedores a entender melhor a base do sistema e melhorar o processo de debug.

O Visual Studio 2008 está em Beta2, e deve sair no final desse ano, trazendo muitas outras novidades interessantes, mas não é esse o foco desse post.

No início estará disponível o código fonte(incluindo os comentários) das seguintes bibliotecas:


  • Base do .NET(System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc)

  • ASP.NET (System.Web)

  • Windows Forms (System.Windows.Forms)

  • ADO.NET (System.Data)

  • XML (System.Xml)

  • WPF (System.Windows)

E nos meses seguintes outras serão liberadas(WCF, Workflow e LINQ)

Todas sobre a licença Microsoft Reference License (Pelo que li, será algo como, leia mas não edite nem distribua).

Legal que vai ser possível fazer o download de um StandAlone do código  fonte, ou usar integrado ao Debug do VS 2008. No caso do Debug, você pode baixar todo o código ou baixar sobre demanda.

Primeiro post - Evento

Neste primeiro post vou divulgar um evento em Sampa que parece ser muito interessante e é grátis. Só precisa se cadastrar e levar um 1 Kg de alimento não perecível.

Fiquei sabendo do evento só hoje, e não vai ser possível ir, infelizmente.

É agora neste sábado, as 8h

Mais informações