Carlos's profileCarlos Mattos - Sorocaba...PhotosBlog Tools Help

Blog


    July 17

    Suporte Gratuito para Windows Vista SP1

    Suporte gratuito, ilimitado à instalação e compatibilidade agora está disponível para os consumidores do mundo inteiro, do Windows Vista SP1, até 18 de Março de 2009. Suporte por telefone está disponível para o mundo inteiro. Alguns países também oferecem suporte por Email e Chat, como o Brasil. Esta oportunidade é oferecida para todos os usuários do Windows Vista SP1. Para maiores informações visite o endereço: http://support.microsoft.com/common/international.aspx?rdpath=1&prid=11274&gprid=500921

    May 06

    Zoo Digital é o primeiro case Brasileiro publicado no site oficial do Silverlight!

    O portal do Zoológico Municipal de Sorocaba, desenvolvido pela WD5 em parceria com a Microsoft e a Prefeitura Municipal conseguiu mais uma vitória nesta semana. O projeto é o primeiro case Brasileiro publicado no website oficial da tecnologia Silverlight. Confira no endereço: http://silverlight.net/. O fato foi comemorado por todos os envolvidos no projeto. Nosso MVP Lead, Rodolfo Roim, publicou uma nota no seu blog (http://mvpbrasil.spaces.live.com/) para registrar a boa notícia.  
    April 25

    Parque "Quinzinho de Barros" ganha portal inédito na internet

    Segundo Carlos Mattos, diretor de tecnologia da WD5, empresa sorocabana parceira da multinacional na construção do portal, outros animais do zôo terão sua vez como apresentador das atividades e conteúdos na web. O projeto também prevê a instalação de câmaras no local para registrar as imagens dos animais e disponibilizá-las on-line. No parque existirá, ainda, um ponto de acesso livre à internet com conexão sem fio.

    Veja a matéria completa publicada no Jornal Cruzeiro do Sul (http://www.cruzeironet.com.br/materia.phl?editoria=39&id=70333).

    Site do zoológico inaugura nova tecnologia criada pela Microsoft

    O novo site do Parque Zoológico Municipal Quinzinho de Barros é vitrine para a nova tecnologia Silverligth desenvolvida pela Microsoft. É o que revelou o diretor da multinacional, Carlos Ferreira, ontem à tarde, durante cerimônia de lançamento do portal. A ferramenta eletrônica permite uma maior manipulação de fotos e imagens no campo virtual. Para Ferreira, implementar a tecnologia em um Zoológico cujo trabalho é reconhecido quase que mundialmente, expõe de maneira positiva a qualidade do produto.

    Veja a matéria completa publicada no Jornal Cruzeiro do Sul (http://www.cruzeironet.com.br/materia.phl?editoria=39&id=76076). 

    March 19

    Heroes Happen Here - Sorocaba/SP - 15/03/2008

    O evento realizado no último sábado, dia 15/03/2008 no auditório da Academia de Ensino Superior de Sorocaba foi um sucesso! Tivemos mais de 180 pessoas presentes. Estiveram presentes no evento o profissional Paulo Dutra (MCSE) palestrando sobre o Windows Server 2008, o MVP Pedro Galvão falando sobre o SQL Server 2008, o Ricardo Slavov, líder do Grupo de Usuários SorBr.NET. Minha participação foi registrada com a apresentação das novidades do Visual Studio 2008. Para quem perdeu esta oportunidade, estou disponibilizando o PPT da minha palestra no meu SkyDrive\Public\Palestras (http://cid-834535b664f10b2d.skydrive.live.com/browse.aspx/Palestras.
     
    Gostaria de agradecer o Ricado Slavov por mais esta oportunidade de contribuir com o grupo de usuários SorBr.NET e também à Academia de Ensino Superior de Sorocaba que disponibilizou uma excelente estrutura e ofereceu todo apoio necesário para realizarmos esse evento.
     
    O público presente estava de parabéns, para um evento realizado no interior, tivemos um excelente número de participantes.
     
    Até a próxima oportunidade.
    January 24

    Listando Tabelas e Colunas utilizando LINQ-to-SQL

    Recuperar nomes de tabelas e colunas a partir da estrutura do banco de dados é sempre útil no processo de desenvolvimento. Existem diversas técnicas utilizando diferentes tecnologias para isto. Este post mostra como obter uma lista com os nomes das tabelas e seus respectivos campos utilizando o LINQ-to-SQL. O exemplo foi implementado com 1 formulário contendo 1 botão e 1 controle ListBox. Essa construção é possível porque o LINQ-to-SQL mantém o mapeamento da estrutura do banco de dados armazenado no objeto DataContext. Veja abaixo a interface em tempo de execução mostrando a lista das tabelas e colunas:
     

    ListandoTabelasColunasLINQ

    Agora veja o código necessário para construir esta lista (é bem simples):

     

    using
    System.Data;
    using
    System.Drawing;
    using
    System.Linq;
    using
    System.Text;
    using
    System.Windows.Forms;
    using
    System.Data.Linq;
     
    namespace
    Testes
    {
       public partial class Form1 : Form
       {
      
          DBTeste db = new DBTeste();
     
          public Form1()
          {
             InitializeComponent();
          }
     
          private void Button1_Click(object sender, EventArgs e)
          {
             var DBEstrutura = db.Mapping;
     
             foreach (var Tabela in DBEstrutura.GetTables())
             {
                listBox1.Items.Add(Tabela.TableName);
     
                foreach (var Coluna in Tabela.RowType.DataMembers)
                   listBox1.Items.Add(" -" + Coluna.MappedName);
             }
          }
       }
    }
     
     
    January 20

    Criptografando dados com C# e MD5

    O exemplo abaixo demonstra como criptografar dados utilizando C# e o algorítmo MD5. O Namespace System.Security.Cryptography oferece os recursos necessários para esta implementação.
     
    using
    System.Security.Cryptography;
     
    ...
     
    public static string GetMD5Hash(string input)
    {
       MD5 md5Hasher = MD5.Create();
     
       byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));
      
       StringBuilder sBuilder = new StringBuilder();
      
       for (int i = 0; i < data.Length; i++)
       {
          sBuilder.Append(data[i].ToString("x2"));
       }
       return sBuilder.ToString();
    }

    Abrindo Formulários Dinamicamente C# (Windows Forms)

    Introdução
    Uma tarefa comum no desenvolvimento de soluções Windows Forms é a necessidade de instanciar formulários com base no nome da classe, ou seja, como o desenvolvedor pode abrir um formulário dinamicamente (programaticamente) passando o nome deste formulário (classe) como string. Isto é muito comum quando há necessidade de criarmos menus populados dinamicamente a partir de uma base de dados.
     
    Problema
    Apesar de representar uma necessidade comum em aplicações Windows Forms, ainda há muitas dúvidas entre os desenvolvedores de como implementar corretamente um procedimento para instanciar um formulário dinamicamente. Faltam exemplos sobre esse tipo prática e os que estão disponíveis na Web não são facilmente encontrados e na maioria das vezes são apresentados em outro idioma.
     
    Solução
    Uma construção simples com o método CreateInstance do objeto Activator permite implementar esta funcionalidade. Veja o código abaixo:
     
    public static void OpenForm(string Namespace_FormName, bool System_Modal)
    {
       Type t = Type.GetType(Namespace_FormName);
      
       if (t != null)
       {
          System.Windows.Forms.Form f = (System.Windows.Forms.Form)Activator.CreateInstance(t);
     
          if (System_Modal)
             f.ShowDialog();
          else
             f.Show();
       }
    }
     
    Instanciando um formulário implementado em outro assembly
    Com uma construção semelhante, é possível iniciar um formulário implementado eu outro assembly. Basta modificar o código acima para incluir informações sobre o assembly externo. O exemplo abaixo mostra como iniciar um formulário (MDIChild) contido em outro assembly e centralizá-lo no MDI:
     
    private
    void OpenChildFormFromExternalAssembly(
       string Full_Namespace_Class,
       string Root_Namespace,
       string Assembly_Version,
       string Assembly_Culture,
       string Assembly_PublicKeyToken,
       bool System_Modal)
    {
       Type t = Type.GetType(Full_Namespace_Class + "," + Root_Namespace
          + ", Version=" + Assembly_Version
          + ", Culture=" + Assembly_Culture
          + ", PublicKeyToken=" + Assembly_PublicKeyToken);
     
       if (t != null)
       {
          System.Windows.Forms.Form f = (System.Windows.Forms.Form)Activator.CreateInstance(t);
     
          f.MdiParent = this;
     
          int TopMargin = 0;
          int LeftMargin = 0;
     
          LeftMargin = ((this.Width - f.Width) / 2) + this.Left;
          TopMargin = ((this.Height - f.Height) / 2) + this.Top - 50;
     
          f.StartPosition = FormStartPosition.Manual;
          f.Top = TopMargin;
          f.Left = LeftMargin;
     
          if (System_Modal)
             f.ShowDialog();
          else
             f.Show();
       }
    }
     
     
    As linhas abaixo demonstram como invocar o procedimento acima passando os parâmetros necessários:
     
    OpenChildFormFromExternalAssembly(
       "EIS.Presentation.frmTipoEis", // Namespace completo
       "EIS", // Root Namespace
       "1.0.0.0", // Assembly Version (AssemblyInfo.cs)
       "neutral", // Cultura (Default=neutral)
       "null", // PublicKeyToken (Default=null)
       false
    );
    November 22

    Problema com ASP.NET AJAX 1.0 no Visual Studio 2008

    Cenário:
    Alguns desenvolvedores tem encontrado dificuldades para rodar projetos ASP.NET 2.0 que utilizam o AJAX Extensions versão 1.0.61025.0 no Visual Studio 2008. Muitos destes desenvolvedores, tentam apenas fazer a referência para a biblioteca  AjaxControlToolKit.dll diretamente a partir da janela Choose ToolBox Items. Contudo, o Ajax Control Toolkit utiliza o assembly System.Web.Extensions que é registrado no GAC (Global Assembly Cache). O que ocorre é que quando você instala o Visual Studio 2008, o assembly System.Web.Extensions registrado no GAC é da versão 3.5.0.0. Assim, quando você tenta abrir um projeto que utiliza o AJAX 1.0 a IDE do Visual Studio exibe uma mensagem de erro informando que o assembly System.Web.Extensions não pode ser carregado por que ele ou uma das suas dependências não foi encontrado.
     
    Solução:
    Instale o ASP.NET AJAX Extensions 1.0 a partir do arquivo ASPAJAXExtSetup.msi (disponível para download no site www.asp.net). Esta instalção adiciona e registra no GAC a versão 1.0.61025 necessária para seus projetos. As duas versões vão continuar funcionando normalmente pois o Global Assembly Cache gerencia de forma eficiente os assemblies de mesmo nome e com vesões diferentes.
     
    Alternativa:
    Se você não quiser instalar o ASP.NET AJAX Extensions 1.0 completo, basta copiar o assembly System.Web.Extensions de outro computador que tenha a versão 1.0.61025 e registrá-lo no GAC manualmente utilizando a ferramenta GACUtil.exe. O comando deve ser invocado a partir do prompt de comando do Visual Studio 2008 com a seguinte sintaxe GACUtil.exe -i <path>\System.Web.Extensions.dll. Esta prática é recomendada apenas para ambientes de desenvolvimento para ambientes de produção, o desenvolvedor deve instalar os componentes através do MSCORCFG.msc ou preferencialmente por um pacote do Windows Installer (.msi).
     
    Abaixo está o screenshot da pasta C:\WINDOWS\ASSEMBLY mostrando as duas versões do assembly System.Web.Extensions devidamente configuradas: GAC_SystemWebExt  
    November 20

    Nova linguagem Microsoft F#

    Colegas, gostaria de compartilhar com vocês o texto divulgado pelo colega Fábio Galuppo (MVP C++) sobre a nova linguagem F# anunciada pela Microsoft. Confiram o texto abaixo:

    ...

    Acho que temos uma ótima notícia a ser divulgada aos MVPs e programadores .NET em geral.

    Ontem fiquei muito contente em saber desta notícia: http://blogs.msdn.com/somasegar/archive/2007/10/17/f-a-functional-programming-language.aspx

    Blog do Don Syme (criador do F#): http://blogs.msdn.com/dsyme/archive/2007/10/17/s-somasegar-on-taking-f-forward.aspx#comments

    Já venho pesquisando e criando ferramentas de apoio com F# a uns 2 ou 3 anos. Sendo que a partir dela surgiu meu interesse em functional programming (OCaml, Haskell, ...).

    Interessante saber que desde a incepção de anonymous methods no C# 2.0 e agora com o LINQ e lambda, o .NET Framework traz um novo estilo de programação, totalmente influenciado pelo paradgima funcional. A teoria matemática do Lambda Calculus de Alonzo Church foi a percursora deste paradigma de programação.

    A saber, no ano passado, no evento sobre Linguagens de Programação realizado pela Tempo Real, eu falei sobre C++/CLI e C#. Porém introduzi a evolução do C# (3.0, lambdas e LINQ) e reforçei o poder dos anonymous methods - obviamente que introduzi superficialmente o F# e suas construções para contextualizar sobre a influência da programação funcional ao .NET em geral.

    Não aconselho ao programador mediano ou grandes projetos comerciais migrarem para F#. Mas conhecer o paradigma funcional possibilita que um programador com fundamentos em linguagens tradicional (JAVA, C#, VB, Delphi,...) venha a resolver problemas que seriam complexos no paradigma imperativo de forma diferenciada e eficaz.

    Vejo o emprego do F# nos segmentos de pesquisas em geral, aplicações visualização (2D ou 3D) e matemática aplicada, bem como na construção de ferramentas e bibliotecas da apoio e até mesmo como scripts para construção de jogos.

    Grande abraço,

    Fabio Galuppo
    MVP Visual C++

    Podcast com a entrevista sobre a liberação do código-fonte do .NET Framework

    O website Hansel Minutes (http://www.hanselminutes.com/default.aspx?showID=101) publicou o áudio da entrevista com Shawn Burke da Microsoft. Nesta entrevista, Scott Hanselman e Carl Franklin conversam com Shawn Burke sobre a nova versão do Visual Studio que possibilita que o desenvolvedor estenda a depuração de suas aplicações até as classes do .NET Framework. A entrevista está no idioma original (Inglês), mas vale a pena conferir.

    Liberado acesso ao código-fonte do .NET Framework 3.5

    A Microsoft hoje fez um importante anúncio sobre a próxima versão do Visual Studio 2008, que permitirá acessar o código fonte das bibliotecas do .NET Framework 3.5 para ajudar no processo de depuração de sua aplicação. Os arquivos disponibilizados incluem os comentários da equipe de desenvolvimento da Microsoft.


    Além de permitir o download dos arquivos-fonte separadamente (onde o desenvolvedor pode utilizar qualquer editor de texto para analisar o conteúdo), a Microsoft já anunciou que o Visual Studio 2008 oferecerá suporte completo para depuração do código-fonte do .NET Framework.

    A liberação do código-fonte inclui o BaseClassLibrary (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), and WPF (System.Windows).

    O código-fonte estará disponível sob o Microsoft Reference License (MS-RL).

    Além do impacto altamente positivo que esta abertura representa para todos os profissionais de desenvolvimento, penso que um impacto ainda maior será percebido junto à Comunidade Acadêmica, que receberá esta notícia com grande vibração!

    Mais apoio ao OpenXML

    O padrão OpenXML permite que qualquer aplicativo leia ou gere documentos compatíveis com o Microsoft Office, sem sequer precisar ter adquirido nenhuma cópia do MS Office. Ele é baseado em XML e arquivos .ZIP, ambos padrões abertos e amplamente disponíveis em qualquer plataforma.

    Ele atende a pedidos antigos da comunidade em geral (e ironicamente com peso na comunidade Open Source):

    - Garantia de que mesmo em futuro distante os documentos possam ser lidos;
    - Licença de usar o formato sem royalties ou problemas de patentes;
    - Facilidade de criar e ler arquivos sem ter que adquirir o aplicativo Office
    - Documentação formal do formato (que diga-se de passagem agora também existe para os formatos binários)

    Gostaria de solicitar aos amigos que cadastrem-se no site http://www.openxmlcommunity.org/joincommunity.aspx e manifestem seu apoio. É interessante suprir uma “quote” (frase) em Português. Este é um site mantido pela Microsoft. Não custa nada.

    Aproveitando: existe outro formado de documentos baseado em XML chamado ODF. Este formato é apoiado pela Sun e IBM, com óbvias conseqüências comerciais. Eu pessoalmente acredito que seja do interesse dos usuários que os dois formatos existam e prosperem:

    Os dois formatos foram feitos para resolver problemas diferentes e cada um tem pontos fortes e fracos. Por exemplo, o ODF é um padrão novo e conseqüentemente mais “limpo” e fácil de usar. Por outro lado, o OpenXML teve como pré-requisito a compatibilidade com Microsoft Office e é 100% compatível com este, mas é mais complexo;

    Ter mais de um fornecedor os “matêm honestos”, pois evita monopólios e abusos de poder e preço, especialmente em compras do governo – deixo os “problemas potenciais” ao cargo da imaginação de cada um.

    O Visual Studio 2008 já está disponível!

     A Microsoft liberou nesta segunda-feira, dia 19/11/2007, a versão comercial do Visual Studio 2008 (RTM). Os assinantes MSDN serão os primeiros a ter acesso ao produto, que deve chegar às prateleiras das lojas em breve! Visite o MSDN para maiores informações.

    Contagem regressiva para o Visual Studio 2008!

    Durante o TechEd Developers em Barcelona, Mr. "Soma" Somasegar anunciou que o Microsoft Visual Studio 2008 e o .NET Framework 3.5 chegará ao mercado ao final do mês de Novembro/2007. Esta nova versão permitirá aos desenvolvedores e empresas de desenvolvimento tornarem-se mais produtivos, explorar os mais novos recursos da plataforma Windows, do Microsoft Office 2007 e criar soluções inovadoras para a Web. Além disso o Visual Studio Team System 2008 oferece o ambiente perfeito para colaboração e gerenciamento eficaz do ciclo de desenvolvimento de softwares.

    Estudo de Produtividade com Microsoft Visual Studio 2005

    A Microsoft contratou a VeriTest, uma divisão da Lionbridge Technologies, para medir as potenciais melhorias relacionadas à produtividade no desenvolvimento de aplicações entre as plataformas ASP e ASP.NET 2.0.

    A abordagem utilizada neste estudo foi recrutar desenvolvedores experientes em ASP e ASP.NET 2.0. Foram formados dois grupos iguais com quatro desenvolvedores cada um. Os dois grupos receberam a mesma especificação para trabalhar. Durante o estudo as equipes tiveram cinco dias para implementar o máximo possível da especificação recebida.

    O resultado deste estudo revelou que os programadores ASP.NET 2.0 conseguiram realizar 113% mais tarefas do que a equipe ASP dentro do mesmo período. Também foi concluído que os desenvolvedores ASP.NET 2.0 conseguiram criar páginas com conteúdo 357% mais rápido do que a equipe ASP.