terça-feira, 29 de dezembro de 2009

Enfim Microsoft Certified Professional (MCP)

Nesses últimos meses estive lendo o livro MCTS Exam 70-562 Self-Paced Training Kit: Microsoft .NET Framework 3.5 - ASP.NET Application Development.

Aprofundei meus conhecimentos em ASP.NET conhecendo várias outras features de que nem fazia idéia. Durante esse período pude inclusive fazer uso dessas técnicas aprendidas em projetos em que estive trabalhando.

No momento estou de férias e aproveitei essa época para me aprofundar mais nos estudos. Dediquei a última semana praticamente só estudando e fazendo os testes preparatórios para o exame de certificação.

O exame estava marcado para às 13:00, estava um pouco nervoso e até pouco tempo após o almoço ainda tentava tirar do livro algum conhecimento que estivesse faltando.

Concluí a prova com bastante tempo de sobra, resolvi checar novamente algumas questões que achei mais confusas. Terminei o exame e esperei por alguns segundos até o resultado.

Por instantes achei que não havia estudado o suficiente, que podia ter me dedicado mais e que teria que fazer a prova novamente.

Congratulations dizia a página da Prometric, empresa responsável pelo exame. E demorei alguns instantes para perceber que havia me tornado um MCP.

A prova que fiz foi a 70-562, base do livro que estava lendo. Nos próximos posts vou dar algumas dicas que podem ajudar a você tirar a sua certificação, talvez até sem passar pela apreensão que passei.

terça-feira, 1 de dezembro de 2009

Silverlight 4 Beta

Quase uma semana após o lançamento oficial do Silverlight 4 beta no PDC2009 já pude tirar algumas conclusões. A equipe de desenvolvimento está de parabéns, estão entregando uma plataforma de desenvolvimento nunca antes vista.


Algumas das novidades vieram principalmente para suprir algumas necessidades que os programadores flash tiram quando migravam para Silverlight. Acesso a WebCam, microfone e suporte de impressão.

Além disso as aplicações Out Of Browser terão a possibilidade de rodar em um nível menor de segurança, com a autorização do usuário. Isso permite que muitas outras funcionalidades possam ser usadas, como exemplo a interoperabilidade com componentes COM, acesso Cross Domain sem arquivo de policy, acesso a pastas do computador do usuário e muito mais.

Para verificar a lista completa de funcionalidades acesse o Blog do Tim Heuer.

E aqui o impressionamente vídeo com a apresentação e lançamento do Silverlight 4 por Scott Guthrie. Ele apresenta um trecho no meio, por isso se quiserem acessar diretamente a sua apresentação pode ir direto ao minuto 00:54.

Pra quem quiser, ainda tem o Overview com Karen Corby que pode ser acessado aqui.

Recomendo a todas dar uma conferida neste e em vários outros vídeos do PDC2009.

domingo, 25 de outubro de 2009

Visual Studio 2010 Beta 2

Semana passada foi lançado tanto para os assinantes MSDN quanto para o público em geral a nova versão Beta do

Visual Studio 2010.

O Software conta com 3 versões diferenciadas, Professional, Premium e Ultimate.

O link oficial do download pode ser encontrado aqui, onde existe o download de um downloader e instalador do software.

Pra quem prefere baixar apenas versões express o link é esse. Nele encontram-se as versões para cada linguagem, como de costume nas versões Express.

Quem prefere baixar um ISO e queimar/emular a mídia, encontrei este link com o download do mesmo em duas quatro partes (Versão Ultimate).

Segundo a equipe de desenvolvimento, tanto o Visual Studio 2010 Beta 2 quanto o Framework .NET 4.0 Beta 2 podem ser instalados lado a lado com versões anteriores sem problema algum.

Aqui uma pequena lista com as features de cada versão:

  • Visual Studio 2010 Premium
Advanced Application Development & Debugging
Unit Testing with Code Coverage and Test Prioritization
Code Analysis, Metrics & Optimization
Database Development and Testing Tools
Read Only Architectural Diagrams
  • Visual Studio 2010 Professional
Application Development & Debugging
Unit Testing
  • Visual Studio 2010 Ultimate
IntelliTrace Historical Debugging
Comprehensive Testing Tools
Advanced UML Architecture Tools
Architectural Discovery Tools
Unit Testing with Code Coverage and Test Prioritization
Code Analysis, Metrics and Optimization
Database Development and Testing Tools
Test Case and Test Lab Management
Enjoy

[Editado]
Link para contornar o problema que pode ocorrer com SDK do Silverlight aqui.

quinta-feira, 1 de outubro de 2009

Acessando propriedades da MasterPage

Sei, não é nenhuma mágica acessar dados da MasterPage através de um WebContentForm (página de dentro da MasterPage) e todo mundo já deve ter feito.
protected void Page_Load(object s, EventArgs e)
{
    this.Master.SkinID = "GreenSkin";
}
Mas nem tudo é tão simples. Lembrando que a propriedade Master da classe Page é apenas outra Page logo damos de cara com a necessidade de um Cast em caso de criarmos algo mais personalizado. Imaginando agora que o nome da classe da minha MasterPage é "Site" e tem uma propriedade TituloMenu que preciso acessar na minha página de conteúdo. Pra isso geralmente fazemos o seguinte:
protected void Page_Load(object s, EventArgs e)
{
    ((Site)this.Master).TituloMenu= "Home";
}
Muito bem, assim o Cast nos ajuda a acessar nossa classe de MasterPage e assim podemos acessar nossa propriedade em nossa classe derivada. Agora que vem o pulo do gato. E se não precisássemos fazer o cast? É simples, basta informar logo abaixo da diretiva @Page da página aspx qual o tipo da nossa MasterPage:
<%@ MasterType TypeName="MasterPageSample.Site" %>
Com isso nossa página passa a reconhecer a propriedade Master como sendo do tipo da nossa MasterPage, no caso Site.
protected void Page_Load(object s, EventArgs e)
{
    this.Master.TituloMenu= "Home";
}
Se clicarmos em cima da propriedade Master vamos ver o que acontece por tráz disso tudo. Quando criamos a diretiva MasterType o Visual Studio cria no arquivos auxiliar designer.cs da página uma propriedade com o mesmo nome (Master) porém escondendo a propriedade da classe base:
public new Site Master
{    
get    {return ((Site)(base.Master));}
}
Sei que não é a coisa mais impressionante do mundo mas achei interessante essa "tipagem" que o Visual Studio faz pra nós. Lembrei de publicar isto porque ví no livro de certificação e ainda hoje acabei usando em um projeto. Enjoy

domingo, 20 de setembro de 2009

Novidades!

Mais um postzinho rapidinho só pra manter todos informados. Aqui na edição de Setembro da MSDN Magazine podemos conferir algumas das novidades do Framework 4.0, destaque para o namespace System.IO que ganha várias melhorias com ajuda de novos métodos que retornam IEnumerables. Pra quem ainda não viu, aqui tem um vídeo que mostra como está ficando o Office 2010 Live Application.

terça-feira, 1 de setembro de 2009

Cadê as sobrecargas no Silverlight?

Mais de um mês inteiro sem nenhuma postagem, estou com um pouco de falta de criatividade. Aliado a isto tive um problema de saúde que me deixou durante uma semana bastante preocupado, mas já me sinto melhor. Andei estudando Silverlight e WPF, inclusive estou participando de um projeto com ambas as tecnologias e posso dizer com certeza que a curva de aprendizado não é tão grande entre as duas. Uma das dificuldades que estou sentindo na programação em Silverlight é a falta de algumas (várias) sobrecargas de métodos. Isso não chega a ser um problema, mas incomoda quando se tenta utilizar um código antigo numa aplicação Silverlight. Vou colocar dois códigos bem simples, que provavelmente você já deva ter usado:
public bool IsConvertible(Type type)
{
    return type.GetInterface("IConvertible") != null;
}
public T ConvertEnum<T>(object src)
{
    Type type = typeof(T);
    return (T)Enum.Parse(type, src.ToString());
}
Pois bem, apesar de bem simples os dois métodos acima não funcionam exatamente como estão. Isso porque exatamente a sobrecarga utilizada não existe em Silverlght. Obviamente que se passarmos outro parâmetro a acessarmos a outra sobrecarga podemos ver que o Silverlight possui apenas uma forma de acesso, conforme abaixo.
public bool IsConvertible(Type type)
{
    return type.GetInterface("IConvertible", false) != null;
}
public T ConvertEnum<T>(object src)
{
    Type type = typeof(T);
    return (T)Enum.Parse(type, src.ToString(), false);
}
A lista de diferenças e bastante grande, inclui também coisas que se costuma usar com muita frequência até em WPF como é o caso do DependencyProperty.Register que também não tem nenhuma sobrecarga no Silverlight. É só com o dia a dia é que notaremos todas essas diferenças. Não pode-se culpar a equipe de deselvolvimento do Silverlight pois afinal de contas a diferença no tamanho do plugin para o framework .NET completo teria que estar em algum lugar. Mágica não existe. Enjoy

segunda-feira, 20 de julho de 2009

Um pouco mais de Silverlight 3

Vou postar aqui só alguns links importantes para quem está vindo do Silverlight 2 para o 3 ou do Beta para o RTM. Link para o quem vai começar com Silverlight: aqui. Tools para o Visual Studio 2008 (SDK): aqui. Toolkit com os novos controles para Visual Studio 2008: aqui. Página com as mudanças efetuadas pelo time da Microsoft: aqui. Listagem das novidades por Tim Heuer: aqui. Página referência com os principais vídeos. aqui. Por enquanto é isso, e esperar o Visual Studio 2010.

quarta-feira, 15 de julho de 2009

C# 4.0: Named and Optional Parameters

Vou falar hoje de novidades Visual Studio 2010/Framework 4.0. Mais especificamente dos parâmetros opcionais, que não existiam em C# até então. Por motivos de facilidade de interoperabilidade foram criadas algumas estruturas para que o C# pudesse trabalhar com construtores e métodos com parâmetros opcionais. Junto a isso já se criou um problema. Se você tivesse um método com vários parâmetros opcionais como faria para informar apenas o último, penúltimo e assim por diante? Nesse momento entram em campo os Named Parameters, que possibilitam que se especifique o qual dos parâmetros que se está passando. Muitos vão lembrar dos NamedParameters usados em atributos, mas temos que ter em mente que aqui estamos usando-os diretamente em métodos e construtores e definindo valores default. Não são os mesmo utilizados nos atributos e não devem ser confundidos. Bom, abaixo segue um trecho de código onde tenho meu construtor com parâmetros opcionais, todos eles com seus valores default:
class Person
{
    public Person(
        string firstName = "Noname",
        string lastName = "Nolastname",
        DateTime birthDate = new DateTime())
    {
        //Implementação...
    }
}
E aqui eu crio uma instância desta classe passando apenas o segundo parâmetro:
var person = new Person(lastName: "Canova");
Como pode ser visto, utilizo o nome da propriedade e após os ":" eu coloco o valor que quero. As outras propriedades assumirão os valores default. Claro que aqueles que quiserem consumir classes com esta funcionalidade mas que prefiram continuar passando todos os parâmetros, podem fazer como sempre fizeram, lembrando que só é preciso especificar nomes de parâmetros quando não se usa a ordem normal dos mesmos:
var person2 = new Person("Vitor", "Canova");
var person3 = new Person("Vitor", birthDate: new DateTime(1981, 3, 19));
Mas aqui fica uma observação: Use com sabedoria.

sexta-feira, 10 de julho de 2009

Silverlight 3 RTM

Finalmente o tão esperado release final do Silverlight 3 está disponível para download. Pra quem já tinha a versão beta instalada será necessário fazer a desinstalação primeiro e só após isso fazer a instalação na nova versão. Segue abaixo algumas das novidades acrescidas desde a versão beta:
  • Multi Touch: O Silverlight 3 será capaz de capturar eventos de multi touch enviados pelo sistema operacional.
  • Matrix3DProjection: Uma alternativa ao PlaneProjection para efeitos visuais 3D.
  • Mouse Wheel: Finalmente esta feature está incorporada nativamente, sem necessidade de implementação de hacks com javascript.
Aqui segue o link para instalação do novo plugin: http://www.microsoft.com/silverlight/resources/install.aspx Para quem ainda não começou a estudar, um livro bem interessante recém lançado pela Microsoft Press é Introducing Microsoft Silverlight 3. que já pode ser encontrado desde o mês passado. Enjoy

quinta-feira, 9 de julho de 2009

Office 2010: The Movie

Esta semana saiu oficialmente o vídeo promocional do Office 2010. Ele é semelhante a um trailer de filme e faz parte da campanha de divulgação para a nova versão da suite de escritórios da Microsoft. Não costumo fazer esse tipo de propaganda no meu blog mas realmente ficou muito bom o trailer. Você pode assisti-lo diretamente no site oficial do Office 2010 feito em Silverlight ou neste vídeo do YouTube.

domingo, 21 de junho de 2009

Windows 7: Boot de um Virtual Hard Disk

Só um postzinho rápido. Instalei o Windows 7 RC1 a uma semana atrás. Me pareceu bem mais rápido do que o Vista. Não tive problemas com Drivers, a não ser alguns botões especiais do Notebook que precisei instalar manualmente. Bom, mas este post é pra que eu possa passar um video que encontrei na Microsoft, sobre com fazer um pc com Windows 7 fazer boot através de um arquivo vhd de máquina virtual. Isso é bem interressante quando se quer fazer alguns testes em alguns ambientes um pouco diferente e é preciso um poder maior da máquino do que o que o Virtual PC nos entrega. aqui vai o link: Demonstration: Windows 7 VHD Boot

quinta-feira, 21 de maio de 2009

O que há de novo no .NET Framework 4

Não gosto muito de publicar posts apenas com link para outro lugar mas este com certeza mereceu. É a página do What's New in the .NET Framework 4. Nela podemos encotrar um resumo de tudo que está por vir junto com o Visual Studio 2010, como Tuples, DLR, e muito mais. Para conferir basta acessar What's New in the .NET Framework 4. Separei alguns tópicos para quem tem interesse em alguma área específica: Enjoy

quarta-feira, 20 de maio de 2009

Silverlight e Visual Studio 2010 Beta 1

Hoje foi lançado o release público do Visual Studio 2010, a próxima IDE de desenvolvimento da Microsoft. Dentre as novidades está que o Visual Studio 2010 é a primeira IDE com multi-targeted Silverlight development e editable design surface for Silverlight. Isso mesmo, é possível criar aplicações tanto para o plugin 2.x do Silverlight quanto para o 3.x. Além disso será possível (finalmente) desenhar a aplicação diretamente no Design ao invés de fazer tudo no XAML. Para tudo isso é necessário seguir os seguintes passos:
  1. Instalar o Visual Studio 2010 Beta 1
  2. Instalar o Silverlight 2 SDK (Se tentar instalar o Silverlight 2 tools ocorrerá um erro. Instale apenas o SDK).
  3. Instale o Silverlight 3 Beta SDK (Novamente, não deve ser instalado o tools)
  4. Instale o Silverlight 3 Beta Developer Runtime
Como isso será habilitada uma opção onde você mesmo escolhe a versão do Silverlight. Observações importantes: Por ser beta ainda, existem algumas limitações. A primeira é o fato de que o template do Silverlight Navigation fica no instalador do tools, como você não pode instalar o mesmo será necessário que você o exporte do Visual Studio 2008 e importe como um My Template no Visual Studio 2010. Além disso o .NET RIA Services não estará disponível. Se você pretende estudar mais sobre esta tecnologia é recomendável que permaneca ainda com o Visual Studio 2008. Ambas peculiaridades serão resolvidas até o release final do Visual Studio 2010, não se preocupem.

sexta-feira, 8 de maio de 2009

Mais sobre meta tag IE8: App_Themes

Após o meu post anterior sobre a tag X-UA-Compatible do IE8 comecei a verificar que em algumas páginas o comportamento era igual ao de uma página que não teria a tag. Vendo um pouco mais além, verifiquei que em algumas páginas o ASP.NET colocou duas tags antes da tag tag X-UA-Compatible. Elas são justamente as tags dos arquivos do App_Themes que são colocados antes do PreRenderComplete. Para contornar este problema é necessário que a tag tag X-UA-Compatible seja removida de onde está e colocado como primeira tag dentro do Head. Primeiro temos que criar em cada página o evento PreRenderComplete. Pra evitar de fazermos em cada uma das páginas manualmente podemos adicionar este evento a página no arquivo Global.asax conforme abaixo:

protected void Application_PreRequestHandlerExecute(object sender, EventArgs e)

{

 Page p = this.Context.Handler as Page;

 if (p != null)

 {

  p.PreRenderComplete += new EventHandler(p_PreRenderComplete);

 }

}

Após isto criamos este novo evento que buscará o header da página, tentará encontrar o tag que precisamos, removerá de onde estiver e colocará como primeiro elemento. Segue o código abaixo:

protected void p_PreRenderComplete(object sender, EventArgs e)

{

 Page page = sender as Page;

 if (page.Header != null)

 {

  var ctrl = page.Header.Controls.Cast<Control>().FirstOrDefault(

   c => c is HtmlMeta && ((HtmlMeta)c).HttpEquiv == "X-UA-Compatible");

 

  if (ctrl != null)

  {

   page.Header.Controls.Remove(ctrl);

   page.Header.Controls.AddAt(0, ctrl);

  }

 }  

}

Senão ficou bem formatado é porque usei a funcionalidade de postagem por e-mail do Blogger, que pode não ser 100% igual ao post normal. Enjoy

terça-feira, 5 de maio de 2009

Firebug no Silverlight?

Pois é, o título nos deixa um pouco curiosos, mas na verdade não é bem isso. É melhor que isso. O Holandes Koen Zwikstra criou uma aplicação muito interessante. O nome é Silverlight Spy. A aplicação é em parte um browser, a diferença é que com uma vasta gama de opções é possível fazer engenharia reversa nas aplicações carregadas. Isso mesmo, analizar o código fonte e tudo o mais que encontrasse dentro do pacote *.zap da aplicação. O Silverlight Spy tem opção para alterar on the fly as propriedades do aplicativo como se estivesse manipulando pelo Blend. Ainda é possível fazer rastreamento das requisições a internet que o aplicativo faz bem como navegar por toda a árvore de controles do Xaml. Ainda possui o recurso de fazer uso do .NET Reflector instalado na máquina do usuário para visualizar diretamente dentro da DLL do aplicativo. Esta ferramenta nos possibilita fazer uma grande análise de cada aplicação Silverlight sem necessitar propriamente baixar o código e executar em uma IDE. Melhor ainda que é compatível com Silverlight 3.

segunda-feira, 27 de abril de 2009

Silverlight 3 - Primeiro Demo

Acabo de publicar meu primeiro demo em Silverlight 3. Ele está publicado aqui. Nele eu utilizo grande parte das novidades do Silverlight 3 que ainda está por vir. Vale lembrar que ele ainda está em versão beta e muita coisa ainda pode mudar. Aconselho primeiro atualizar o plugin do seu browser aqui e reinicia-lo antes de executar o Demo. Foi utilizado o template padrão do Navigation Framework, utilizei a funcionalidade de UriMapping disponibilizando assim recursos de Deep Linking e SEO. Incluí dois simples Pixel Effects aplicados a uma imagem, o DropShadow e o BlurEffect. O vídeo utilizado nesta parte do demo pode ser visto aqui. Também pode ser visto aplicação de Out Of Browser, tratamento de Exception com ChildWindow e a integração do histórico do Browser.

quarta-feira, 22 de abril de 2009

Dynamic em C# 4.0

Sendo entregue com o Visual Studio 2010 e o Framework 4.0 o C# 4.0 promete, e muito. Dentre as novidades que estão por vir está o DLR, que possibilita linguagens dinâmicas como Iron Ruby e Iron Phyton serem compatíveis com .NET. Então estou postando aqui um vídeo que mostra como o dynamic pode nos ajudar bastante no desenvolvimento das aplicações do dia a dia. No vídeo é mostrado como interagir com XML com dynamics. Só pra se ter uma idéia um acesso como myElement.Attribute["lastName"].Value pode ser acessado apenas como myElement.lastName.

terça-feira, 21 de abril de 2009

Entity Framework 4.0

O Visual Studio 2010 já está no forno e junto com ele será entregue o Framework 4.0. Uma das novidades será o Entity Framework 4.0. Eu dei uma conferida no vídeo do Jonathan Carter, agora será possível criar o modelo de entidades e com ele gerar o banco de dados. Por enquanto ele só gera o script para rodar no SQL, mas em breve o próprio Visual Studio criará diretamente o banco de dados.

domingo, 19 de abril de 2009

Silverlight 2 & Silverlight 3

Um problema que se encontra ao se instalar o Tools e SDK do Silverlight 3 é que se precisarmos fazer uma aplicação Silverlight 2 teremos que ir na famoso "Adicionar e Remover Programas", encontrar e remover cada um deles e depois adicionar o da outra versão. No Visual Studio 2010 será possível fazer aplicações tanto para Silverlight 2 quanto para Silverlight 3 mas por enquanto ainda teremos que ter todo esse trabalho. Pra facilitar um pouco Shawn Wildermuth fez algumas alterações no bath criado por Amy Dullard para automatizar um pouco as coisas. Eu testei esse bath e funcionou tudo correto, mas antes desinstalei tudo que tinha de Silverlight, tanto SDK quanto Tools. Quer quiser tentar o mesmo pode fazer o download dos arquivos abaixo: Silverlight_Tools.exe Silverlight3_Tools.exe Silverlight.2.0_Developer.exe Silverlight.3.0_Developer.exe Bath Coloque todos na mesma pasta e rode o Setup_SLTools_Util.bat. Ele vai gerar dois outros Bath, um que vai de Silverlight 2 para o 3 e outro que faz o inverso. Abaixo um vídeo de como funciona:

sábado, 28 de março de 2009

compatibilidade do IE8

Como informado no meu post anterior o IE8 é o browser da Microsoft que mais segue as recomendações do W3C. Mais aí fica a pergunta. Como ele sabe em qual modo deve funcionar para cada caso? Pois bem, o time do Internet Explorer pensou nisso e criu uma nova meta tag para nos ajudar: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/> Esta tag diz ao IE8 que deve interpretar o site com o modo de compatibilidade para IE7, mas semelhante ao IE7. Isso pode resolver vários problemas com sites desenvolvidos para IE6 e que no IE8 aparecem com vários problemas, principalmente de layout. Seque aqui o artigo completo sobre esta tag, suas variações e alternativas. Edit:------- Só pra complementar, esta tem que ser a primeira tag dentro do HEAD, caso contrário não funcionará. Outras opções importantes para a tag são IE=7 e IE=8.

quarta-feira, 25 de março de 2009

IE8 x Acid2 & Acid3

Fiquei um pouco inconformado com a notícia de um colega de que o IE8 não passou no testes Acid2 e Acid3. Achei esquisito ficar tão parecido com o IE7 e fui atrás da história. Pois bem, o grande problema é que sempre foi do conhecido dos desenvolvedores do mundo todo que o IE6 foi o browser mais utilizado. E no mundo todo aconteceu a mesma coisa, ao invés dos desenvolvedores programarem nos padrões do W3C preferiram programar nos padrões do IE6, pois assim atingiriam uma fatia absurdamente maior de mercado, se fisessem pelos Web Standarts teriam vários problemas.
No IE7 já tentou-se colocar um pouco de padronização do W3C, mas ainda não era o foco da Microsoft para o browser. Com a chegada do IE8 a Microsoft parou e disse: "Chega do legado, vamos seguir o W3C". Me parece que foi exatamente o que aconteceu, o IE8 foi anunciado como o primeiro browser da Microsoft feito dentro dos Web Standarts. Mas ao que parece a solução, iniciasse o problema. E como fazer com que todos os milhares, senão milhões de sites que foram feitos especificamente para IE6 continuarem funcionando? Não podiam ser abandonados. Nesse momentos colocou-se no IE8 os modos de compactibilidade, uma para IE8 (que segue os últimos padrões W3C), um IE7 (com as semelhanças do IE7) e o lixo do universo conhecido como Quirks Mode, onde o browser faz a droga toda acontecer fazendo parse de estilhos semelhantes ao IE6. Depois de tudo isso fui procurar porque o IE8 não passava nos Acid. Primeiro cliquei no F12 e ví o modo que estava meu IE8. Para a minha surpresa não estava no modo mais avançado. Pois bem, troquei para Browser Mode IE8 e DocumentMode IE8 Stardats e voila, o Acid2 passou com perfeição (como mostra a imagem). Logo após fui para o Acid3, mas para a minha surpresa ví que não passou, e ficou ainda pior. Então fui atras do motivo. Primeiramente testei o próprio teste do Acid3 no validador do W3C e para a minha surpresa ele não passa no teste de CSS 2.0. Achei estranho e fui atrás novamente e descobri que os testes de Acid são feitos com base nas recomendações do W3C mais os Drafts standarts, que são os rascunhos que ainda não se sabe como vão ficar. IE8 Does Not Pass Acid3 Because Standards Not Official Pude comprovar nas minhas andanças que o IE8 já é compactível com CANVAS também. Enjoy

segunda-feira, 23 de março de 2009

O que ha de novo no Silverlight 3

Estou realmente maravilhado com as novidades trazidas pela equipe de desenvolvimento da Microsoft. O Silverlight 3 é realmente incrível, traz tantas inovações que praticamente não se acredita que se está trabalhando nisso a menos de um ano.

O Silverlight 3 vai se utilizar do GPU do computador cliente para fazer sua renderização final, deixando o processador mais livre para outras atividades. Com isso foi introduzido no Silverlight a capacidade de criação de vários efeitos 3D.

Outra novidade é que agora o Silverlight 3 tem a capacidade de fazer Binding UI para UI, como no WPF. Essa era uma das grandes queixas dos desenvolvedores que vinham do WPF para o Silverlight.

Mais uma das novidades que mais está gerando comentário é sobre a funcionalidade que está sendo chamada de OOB, Out of Browser, onde a aplicação pode rodar fora do browser e totalmente off-line. O aplicativo checa por atualizações no seu local de origem e faz o download em background.

Quanto aos controles o Silverlight 3 já conta com algumas novidades. Uma delas é a possibilidade de criar as validações com atributos junto as propriedades do objeto da classe de negócio. A interface fará a leitura desses atributos e fará a geração do formulário automaticamente e com uma rica experiência do usuário.

Você pode conferir essas e mais novidades no blog do Tim Heuer onde ele faz um pequeno resumo de tudo que a equipe preparou para os programadores .NET.

domingo, 22 de março de 2009

Silverlight 3

O Mix 2009 foi um grande sucesso. Cada session mostrando as maiores novidades na área de programação com as facilidades do framework .NET.

Um dos assuntos que mais me chamou a atenção foi sobre o Silverlight 3, que teve seu beta lançado a poucas semanas atrás.

Você pode conferir todos os videos das sessions deste ano e ainda conferir os videos de tutoriais específicos das novidades do Silverlight 3 diretamente do forum.

quarta-feira, 18 de março de 2009

Mix 2009

Hoje começa o Mix 2009, evento da Microsoft onde as novas tecnologias são mostradas. É um evento mais voltado a desenvolvedores e por isso tem bastante linguagem técnica. Você pode acompanhar o Mix 2009 diretamente do site ou ainda fazer o Download das Sessions aqui. Enjoy

quarta-feira, 25 de fevereiro de 2009

Código Fonte como HTML

Uma grande ajuda na hora de usar um tutorial de internet é poder copiar diretamente o código ou pelo menos ver o fonte exatamente como fica na IDE. O grande problema é que se copiarmos diretamente o fonte da IDE para o editor WYSIWYG da web a formatação fica toda perdida, e muitas vezes vemos que o criador coloca uma imagem do código, neste caso impossibilitando uma cópia fácil. Pois bem, foram nas minhas andanças pelos blogs dos grandões da MSDN que me deparei com o CopySourceAsHtml. Este Add-in para Visual Studio adiciona ao menu de contexto a opção de fazer uma cópia do código fonte como Html. Ao colar o código ele estará todo formatado com código html e ficará praticamente igual ao código na IDE. É esta ferramenta que tenho usado nos meus últimos posts e facilita bastante a vida do criador do post e do leitor também. Mais algumas maravilhas do cinto de utilidades de Scott Hanselman's podem ser encontradas aqui.

segunda-feira, 2 de fevereiro de 2009

Silverlight: Interoperabilidade

Mais um exemplo de Silverlight pode ser conferido aqui. E esse quase acertei no
Free Image Hosting at www.ImageShack.us
Design. Neste exemplo mostro como é possível interagir com a página HTML diretamente de dentro do Silverlight. Da mesma forma que podemos fazer com que o Silverlight responda a eventos disparados na página HTML.


    public HtmlElement HtmlDiv { get; set; }

    public HtmlElement HtmlButton { get; set; }

 

    public Page()

    {

      // Required to initialize variables

      InitializeComponent();

      this.HtmlDiv =

        HtmlPage.Document.GetElementById("myDiv");

 

      this.HtmlButton =

        HtmlPage.Document.GetElementById("btnId");

 

      this.HtmlButton.AttachEvent(

        "onclick",

        new EventHandler<HtmlEventArgs>(ToSilverlight_OnClick)); 

    }

Nesse caso, estou apenas escrevendo e lendo dentro do innerHTML de uma div na página através dos métodos da classe ScriptObject GetProperty e SetProperty. De dentro do Silverlight associo um evento de um botão HTML comum e digo que o Silverlight passará a responder a esse evento.

    public string DivInnerHTML

    {

      get

      {

        return this.HtmlDiv.GetProperty("innerHTML").ToString();

      }

      set

      {

        this.HtmlDiv.SetProperty("innerHTML", value);

      }

    }

Como podemos ver a forma como o Silverlight interage com a página através de código gerenciado torna a vida de nós desenvolvedores muito mais fácil.

domingo, 25 de janeiro de 2009

Download Assíncrono com Silverlight 2

Acabo de concluir um novo exemplo com Silverlight 2. É uma aplicação muito simples e o tempo de implementação foi bastante baixo comparado ao que teria que ser feito para fazer semelhante em HTML.

Tenho uma tela e nela carrego uma imagem com tamanho bem grande (6750 x 4200, 5,84 MB). Ela é carregada assincronamente, após ser carregado o controle.
Image Hosted by ImageShack.us
De posse do evento DownloadProgress do objeto BitmapImage podemos mostrar o progresso do download. O DownloadProgressEventArgs nos dá a propriedade Progress, um número de 0 a 100 com o percentual de download feito.

    public Page()

    {

      // Required to initialize variables

      InitializeComponent();

      var image = new BitmapImage();

      image.DownloadProgress += (sender, e) =>

        {

          this.ProgressTextBlock.Text = e.Progress.ToString();

        };

      //Objeto Uri com o endereço da imagem

      image.UriSource = this.ImageObsoluteUri;

      this.DownloadedImage.Source = image;

    }

Como podemos ver, com Silverlight temos uma maneira bem fácil e prática de mostrar download de arquivos.

Aproveitei e coloquei a funcionalidade de Full Screen, onde pode ser visto que todo o componente foi feito para que suas proporções e posicionamentos não se alterassem de modo que ficasse destorcido. Quem trabalha com HTML sabe os problema que existem em deixar algo bem centralizado e organizado em qualquer browser. Quem quiser dar uma conferida, aqui está o link do exemplo on-line.

quarta-feira, 21 de janeiro de 2009

Efeito de luz em Silverlight

Acabo de publicar um novo exemplo de Silverlight 2.0 em meu site. Tomei por base um exemplo em que temos uma Image e na sua frente um Rectangle com GradientBrush. Nesse GradientBrush temos de um lado a cor preta e do outro a mesma cor com transparência. Com o movimento do mouse é alterado o posicionamento do GradientBrush e dá impressão de ser uma lanterna focando a imagem. Este exemplo pode ser conferido aqui.

domingo, 18 de janeiro de 2009

Visual Studio 2010 - Focando no código

Mais um excelente vídeo sobre as novidades que estão por vir com o Visual Studio 2010 e o Framework 4.0. Neste vídeo Drew Robbins comenta sobre algumas features que já estão na versão CTP. Dentre elas posso citar as seguintes:
  • Referências para o código com Highlight
  • Hierarquia das chamadas a métodos
  • Quick Search com funções bem mais aprimoradas para encontrar código
  • Geração de testes de aplicações
  • Possibilidade de alterar o comportamento da IDE utilizando WPF
Espero que gostem do vídeo, logo em breve são prometidas ainda mais novidades.

sábado, 10 de janeiro de 2009

Código Fonte dos controles Silverlight 2

Mais uma novidade do Mundo Silverlight. Acabei de ler no blog de Tim Heuer que esta semana que passou a Microsoft disponibilizou o código fonte dos controles Silverlight inclusos no SDK e runtime. De posse desses códigos fonte os programadores Silverlight bem como os entusiastas pelas novas tecnologias de aplicativos ricos de Internet poderão saber um pouco mais sobre como os componentes foram criados. Com base no conhecimento adquirido também é possível uma otimização de aplicativos já publicados ou sendo feitos pois pode-se ver algumas das técnicas usadas diretamente pela Microsoft e sua equipe de desenvolvimento na criação destes componentes que facilitam tando o nosso trabalho. Pra melhorar ainda mais a Microsoft disponibilizou o código sobre a licença open source Ms-PL que garante que o código pode ser usado, alterado e disponilizado como quiser. Os controles disponibilizados com o runtime são os seguintes:
  • ButtonBase
  • Button
  • HyperlinkButton
  • CheckBox
  • RadioButton
  • ToggleButton
  • RangeBase
  • ProgressBar
  • Slider
  • ScrollBar
  • Thumb
E os controles do SDK são os seguintes:
  • Calendar
  • DatePicker
  • DataGrid
  • TabControl
  • GridSplitter
Também foram incluídos as Unit Tests para os controles do SDK. Enjoy

quinta-feira, 1 de janeiro de 2009

Framework 4.0 e Visual Studio 2010

Dentre as minhas várias leituras e pesquisas do feriado, dei uma passada no Channel 9 da Microsoft para conferir algumas das novidades que virão com o Visual Studio 2010 e o Framework 4.0. Um vídeo interessante que encontrei é o episódio 3 da série 10-4 que fala justamente sobre as novidades que estão para chegar. Já posso adiantar que a dor de cabeça em "adivinhar" o ClientID dos controles está com os dias contados. Bom, o resto você confere no próprio vídeo, que foi criado por Brian Keller, Technical Evangelist para Microsoft Visual Studio Team System.