Feb 05

Nova versão do Debugger Canvas

Pessoal, eu fiz um post sobre o Debugger Canvas há um tempo atrás. Agora foi lançada a versã 1.1, que conta com diversas melhorias, como por exemplo: ligar/desligar o canvas durante o debug, edição de código dentro do canvas, entre outros.

Após baixar e instalar o Debugger Canvas, você pode configurar a ativar as opções no menu Tools/Options/Debugger do Visual Studio:
image

Depois é só executar o seu código:
image

A diferença é aque você pode alternar entre o Debugger Canvas e o Debugger convencional, através da opção “Debugger Canvas” do menu Debug.

Quando você não conhece bem o código, o Debugger Canvas é uma excelente alternativa para você entender como os métodos são chamados, visto que conforme você vai navegando pelo Debug, as caixas com os códigos vão aparecendo e suas ligações também:
image

Valeu pessoal e até a próxima.
Carlos dos Santos.

Oct 02

TechEd 2011–Palestra Entity Framework

Pessoal,

Este ano tive o prazer de ser palestrante no maior evento de tecnologia Microsoft do Brasil, o TechEd 2011. Confesso que fiquei muito ansioso e também nervoso, pois a responsabilidade em um evento destes é muito grande, e sempre procuramos fazer o melhor. Fiquei muito feliz que a sala ficou praticamente lotada e mais feliz ainda porquê vários amigos foram me prestigiar, então muito obrigado aos amigos Renato Haddad, Fernando Cerqueira, Israel Aece e Bruno Sonnino.

Espero que o evento tenha sido excelente para todos, não só pelo conteúdo técnico, que foi de altíssimo nível, mas também pela oportunidade de fazer contato com novas pessoas, fazer network.

Vejam as fotos da minha palestra:

IMG_6017IMG_6021IMG_6023IMG_6024IMG_6027IMG_6031IMG_6033IMG_6038IMG_6048IMG_6052IMG_6044IMG_6049

O código fonte da palestra pode ser baixado aqui.

Abraços,
Carlos dos Santos.

Oct 02

Brazilian Translation Wiki 2011 Community Participant Award

Pessoal,

Acabei de receber um reconhecimento da Microsoft que me deixou muito contente. Já é o segundo prémio do Translation Wiki que recebo por participar dos trabalhos de moderação da MSDN Library (http://msdn.microsoft.com/pt-br/library), onde basicamento corrigimos os textos traduzidos automaticamente e também os textos da comunidade.

Costumo dizer que é um trabalho interessante e que ajuda também a aumentar meus conhecimentos, pois frequentemente estou acessando os mais variados assuntos.

Vejam abaixo o belíssimo troféu que recebi, juntamente com uma carta de agradecimentos assinada pelo Somasegar (Senior Vice President a Developer Division) e um Microsoft Arc Mouse.

DSC05926

Abraços,
Carlos.

Apr 07

MSDN Library em Português (MSDN WIKI)

Pessoal,

A MSDN Library é um importante recurso para todos os desenvolvedores da plataforma Microsoft .Net e somo muito gratos por tê-la em portugês (PT-BR), pois nem todos tem o domínio do inglês, principalmente enquanto iniciante em desenvolvimento de software.

Mas você já pensou em contribuir com a biblioteca, deixando-a melhor ainda ? Você pode se tornar um contribuidor do MSDN, sugerindo novos termos para a tradução, o que deixaria a biblioteca ainda mais com a cara do Brasil.

Acesse agora mesmo e começe analisar os textos, com certeza você ainda vai precisar acessar a MSDN Library para pesquisar algo e seria muito bom se você encontrasse exatamente o que você precisa. E ainda você pode ser reconhecido pela comunidade e pela Microsoft.

Acesse agora mesmo e qualquer dúvida, entre em contato!

Abraços,
Carlos dos Santos.

Mar 09

Visual Studio 2010 Service Pack 1

Pessoal,

Já está disponível o SP1 do Visual Studio 2010 com diversas melhorias, como suporte a Silverlight 4, HTML 5, teste de performace para Silverlight, IIS Express, suporte a Razor, melhorias no editor XAML, entre diversas correções de problemas (veja lista completa do SP1 aqui).

Está também disponível o SP1 do Team Foundation Server com diversas melhorias, o link para download é o mesmo do VS2010 (veja lista completa do SP1 aqui).

Para você ver mair informações e baixar o SP1 do Visual Studio e do TFS, acesse este link.

É isto aí, espero que vocês baixem e curtam os novos services packs.

Abraços,
Carlos dos Santos.

Sep 19

Verificar se um programa já está em execução

Pessoal, neste post sobre C# básico, vou mostrar como identificar se um programa já está em execução. Vamos aproveitar também ver como listar todos os programas que estão em execução no computador.

Para começar, crie um projeto em C# do tipo Console Application e logo em seguida vamos modificar o program.cs conforme abaixo:

   1: static void Main(string[] args)

   2:         {

   3:             string Processo = Process.GetCurrentProcess().ProcessName;

   4:             if(Process.GetProcessesByName(Processo).Length > 1)

   5:             {

   6:                 Console.WriteLine("Programa em execução");

   7:                 return;

   8:             }


Veja que é bem simples, basicamente estamos verificando se o nosso processo (que é o programa), está na lista de processos em execução, e se estiver, mostramos uma mensagem e finalizamos o programa.

Podemos também transformar este código em uma função reutilizável, veja:

   1: static void Main(string[] args)

   2:         {

   3:             if(VerificaProgramaEmExecucao())

   4:             {

   5:                 Console.WriteLine("Programa em execução");

   6:                 return;

   7:             }

   8:             Console.WriteLine("Programa executando");

   9:             Console.ReadKey();

  10:         }

  11:  

  12:         public static bool VerificaProgramaEmExecucao()

  13:         {

  14:             return Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Length > 1;

  15:         }


Assim você simplesmente chama o método VerificaProgramaEmExecucao() e se ele retornar TRUE, o programa está ativo.

Para finalizar, vamos mostrar a lista de processos em execução:

   1: Console.WriteLine("Processos em execução");

   2: Console.WriteLine("---------------------");

   3: foreach(var proc in Process.GetProcesses())

   4: {

   5:     Console.WriteLine("{0} - {1}",proc.ProcessName,proc.Id);

   6: }


No código acima, mostramos o nome do processo e o seu ID, mas se você observar a classe Proccess, verá que existem diversas propriedades e métodos que podem ser usados.

É isto aí pessoal, abraços e até a próxima.

Carlos dos Santos.

Sep 06

Ferramentas para Relatórios

Para quem está desenvolvendo aplicações comerciais em .Net, uma dúvida muito comum é como criar os relatórios da aplicação. Se você usa o Microsoft SQL Server, poderá usar o Reporting Services (), que é um excelente ferramenta para relatórios.

Mas se você usa outros bancos de dados, ou está criando uma aplicação multi-banco, talvez o Reporting Services não seja uma boa opção, mas não se preocupe pois existem várias alternativas e excelentes ferramentas para relatórios, vejamos algumas delas que considero muito boas:

1. PrintDocument: componente do Visual Studio onde você precisará desenhar o relatório manualmente, não é a maneira mais eficaz para um relatório, mas pode ser útil em alguns casos. Conheça mais em:

2. SQL Reporting Services: faz parte do Microsoft SQL Server e é uma ferramenta gratuita, mesmo nas versões Express. É simples de utilizar e possui grande variedade de templates. Os relatórios ficam armazenados dentro do SQL Server. Conheça mais em: http://msdn.microsoft.com/pt-br/library/ms159106.aspx

3. DevExpress XTraReports: é uma ferramenta realmente excelente, apesar de ser paga, não é muito cara e depois de instalar o componente você terá um novo template para um item de projeto do tipo XTraReport, onde você cria relatórios realmente fantásticos. Você tem total controle sobre todas as partes do relatório e pode escrever o código em C# ou VB.Net dentro do Visual Studio. Os relatórios são compilados junto com a aplicação e você precisa somente distribuir as DLLs do componente. Um ponto que não gosto muito é que não tem um Designer muito amigável para o usuário final, caso você queira permitir que seus usuários modifiquem os relatórios. Ele também expota os relatórios para um dezena de formatos, como PDF, JPG, Word, Excel, HTML, etc. Conheça mais em: http://www.devexpress.com/products/net/reporting/
A DevExpress é muito conhecida também pela sua suite de componentes, que vale a pena você conhecer.

image

4. StimulReport: é uma ferramente excelente e muito simples de utilizar, trabalha por padrão com Ribons no Designer o que facilita muito a vida do desenvolvedor, permite controlar totalmente o relatório, assim como o XTraReports, mas ao contrário deste, o relatório não é compilado junto com a aplicação, ficando em um arquivo separado. Neste caso ou você mantém o arquivo separado ou cria um mecanismo para armazená-lo no banco de dados. A grande vantagem desta ferramenta é a facilidade de se modificar um relatório em tempo de execução, simplesmente clicando em um botão EDIT. Ele permite também que os formulários para os filtros do relatório, por exemplo, sejam feitos juntamente com o relatório, o que facilita muito a nossa vida. Você precisará também enviar junto com a aplicação as DLLs do componente. AO Stimul tem também uma interface toda em WPF, o que lhe confere um visual bem mais moderno. Ele também expota os relatórios para um dezena de formatos, como PDF, JPG, Word, Excel, HTML, etc. Conheça mais em: http://www.stimulsoft.com/

image

É claro que existem vários outros componentes para relatórios, mas estes são os que eu considero muito produtivos. É isto aí, acho que deu para ter uma idéia de que caminho tomar no desenvolvimento de relatórios para aplicações.

[]s,
Carlos dos Santos.

Nov 03

Programação Paralela com C# 4.0

Uma das novidades do .Net Framework 4.0 é a programação paralela, ou paralelelismo, que consiste em se utilizar os vários núcleos disponíveis nos computadores atuais, por exemplo, os famosos Core 2 Duo.

Mas como tirar proveito destes recursos em operações simples ? O que vou mostrar agora é como transformar dois comandos simples da linguagem C# com o uso da programação paralela.

Primeiramente vou montar um laço for tradicional:

1 for (int i = 0; i < 100; i++)

2             {

3                 Console.WriteLine(“Contador: {0}”, i);

4             }

Agora o mesmo for com progamação paralela:

1 Parallel.For(0, 100, delegate(int i)

2             {

3                 Console.WriteLine(“Contador: {0}”, i);

4             });

Vejam como é simples, basta usar Parallel.For() no lugar de for().

Agora vamos fazer um exemplo com ForEach, primeiro no modo tradicional:

1 List<string> lista = new List<string>() { “Carlos”, “Leandro”, “João”, “Maria” };

2 

3             foreach (string nome in lista)

4             {

5                 Console.WriteLine(“Nome: {0}”, nome);

6             }

 

Agora com programa paralela:

 

1             Parallel.ForEach<string>(lista, (nome) =>

2             {

3                 Console.WriteLine(“Nome: {0}”, nome);

4             });

5 

Novamente, basta trocar o foreach() por Parallel.ForEach().

Veja que nos dois exemplo de programação paralela, foram usados delegates() para criar a iteração nos laços.

Bom, agora você está se perguntando: “Por quê vou trocar meu for/foreach por isto ?”, e a resposta é simples: Performance.

Imagine um laço com iterações bem pesadas, como diversos cálculos, você consegue executar várias operações simultaneamente, simplesmente trocando o tipo do laço.

Outro recurso interessantíssimo da programação paralela, são as janelas de Stacks e Tasks do Debug (Debug/Windows):

image

image

Com estas janelas você pode controlar toda a execução do código paralelo, como ver o que está em execução e o que está na fila para ser executado, entre outras coisas.

Resumindo, espero que estes simples exemplos tenham demonstrado o potencial e a simplicidade da programação paralela e além destes recursos que demonstrei aqui ainda existe vários outros da programação. Vale a pena conferir!

[]s,