As opniões contidas neste blog são as minhas próprias opniões e não representam de maneira alguma as opniões do meu empregador.
Esta semana realizamos na Microsoft o Innovation Days SP de Março. Este evento é para parceiros que fazem parte do programa de parcerias da Microsoft como desenvolvedores de software (ISV's) ou com desenvolvedores de soluções customizadas (CDS's)*. O tema deste mês foi LINQ.
Eu tive a oportunidade de apresentar o LINQ to SQL (antes DLINQ) que faz o mapeamento objeto relacional de um database em um SQL Server. E os objetos mapeados podem ser acessados por queries do LINQ. As queries do LINQ para SQL permitem que qualquer query que você pode fazer no SQL no banco de dados também sejam feitas.
Os outros palestrantes foram o Joel Pereira e o Roberto Santos, ambos fazem parte do primeiro time de desenvolvimento da Microsoft no Brasil. O Roberto deixou todo mundo de cabelo em pé enquanto mostrava o que acontence no compilador e como implementar algumas coisas em LINQ.
Mas, falando sobre LINQ to SQL pedi para ele mostrar uma das coisas interessantes de uso do LINQ. O LINQ permite que façamos joins entres objetos que representam tabelas. O mais interessante é que o join pode ser feito com entre um objeto que representa uma tabela um array de strings, por exemplo.
Vejo o que pode se feito. Vamos usar o database Northwind. Vamos fazer uma query na tabela customers para trazer todos os identificadores dos clientes com a cidade Londres.
var _result = from c in db.Customers where c.City == "LONDON" select c.CustomerID;
O resultado será:
Digamos agora que eu quero buscar apenas um subconjunto deste Id's. Podemos utilizar o array de strings abaixo como base.
var _ids = new string[] {"AROUT","BSBEV","CONSH"};
Podemos então fazer um join entre os dois objetos.
var _result = from id in _ids from c in db.Customers where c.CustomerID == id && c.City == "LONDON" select c.CustomerID;
E teremos como resultado:
Uma outra maneira seria:
var _result = from id in _ids join c in db.Customers on id equals c.CustomerID select c.CustomerID;
Isto é LINQ!!! Não é uma melhor maneira de manipular dados do que ficar mexendo com string para e para lá!?
Até mais!!!
* P.S: O Innovation Days são eventos focados em parceiros desenvolvedores de produtos e soluções. Em São Paulo estes eventos tem como objetivo tratar de um único assunto por mês e fazer um drill-down neste assunto, mostrando a arquitetura e dando dicas e truques. Eventos de nível 300.
Há algum tempo eu não falava sobre aplicacões em produção utilizando WPF. O tim Sneath tem em seu blog um série onde ele mostra diversas aplicações em WPF (algumas também mostradas aqui).
Hoje ele postou sobre uma aplicação para o aeroporto na Suíça. Esta aplicação roda sobre browse (XBAP). Mas, lembre-se que este tipo de aplicação requer que você tenha o .NEt 3.0 em sua máquina. Veja uma demo da aplicação e você vai achar bem interessante. Se quiser mais detalhes da aplicação, dê uma olhada de seu blog.
Até..
Recentemente falei sobre o conteúdo ensinando como fazer algumas coisas interessantes com ASP.NET, ASP.NET AJAX e SQL Server Express.
Para os que querem aprender a como fazer certas coisas com o Team Foundation Server devem dar uma olhada no blog do Meier. Ele publicou uma série de links bem legais, incluindo um para um guindance para VSTS. Estou colocando abaixo os links, mas se você quiser mais detalhes dê uma olhada no blog dele.
Excelente notícia para os usuários do Team Foundation Server! A Microsoft anunciou hoje pela manhã a aquisição da devBiz Business Solutions que faz o TeamPlain Web Access, uma interface web para oVisual Studio 2005 Team Foundation Serverr. Muitos solicitavam uma maneira de acessar as informações do Team Foundation por um cliente mais leve. Desta maneira, a Microsoft acelera a disponibilidade de uma interface web para os usuários do Team Foundation Sever.
Os clientes do Team Foundation Server já podem fazer o download gratuito da ferramenta e ela fará parte dos releases futuros do TFS.
Até mais!!
Scott Guthrie compilou todo o conteúdo que pode nos ajudar a utilizar o ASP.NET AJAX. Já falei de algumas delas aqui, mas será bom ter tudo compilado em um único local.
Faça bom proveito.
Até...
A Microsoft juntou-se a OpenAjax Alliance, uma associação de empresas focadas em desenvolver um padrão para o Ajax e garantir a interoperabilidade entre os diversos Frameworks.
A Microsoft preocupou-se desde o ínicio com a interoperabilidade do ASP.NET AJAX. Por exemplo, algumas classes e funções javascript do Microsoft Ajax Library para estar de acordo com outros frameworks. Certamente esta associação ajudará que a interoperabilidade seja ainda mais profunda trazendo benefícios para todos nós desenvolvedores em todas as plataformas.
Leia o post do Bertrand Le Roy, que será o representante da Microsoft na Alliance.
O meu amigo Eduardo Miranda, Software Developer Engineer na Microsoft, escreveu um post bem interessante em seu blog falando a respeito da necessidade de isolar o aceso a dados em uma aplicação.
Este é realmente um dos grandes dilemas na decisão de uma arquitetura. Nestepostt ele aborda o problema, as preocupações necessárias e algumas maneiras de resolver a questão.
Até!!!
Provavelmente você utiliza nas suas aplicações SQL Server ou a sua versão Express, muito boa por sinal. Mas, pode acontecer de você se deparar com uma cliente que queira utilizar o MySQL.
O pessoal do Porta25, esta desenvolvendo um documento com algumas considerações sobre a insalação e configuração do MySQL no Windows.
Se esta for a sua necessidade, não deixe de olhar este documento.
Qual seria o ambiente ideal de desenvolvimento para usar o "WPF/E"? Bem, vou tentar listar o ambiente ideal para mim e talvez isto ajude você a montar o seu.
Em primeiro lugar é fundamental termos o Visual Studio, com o SP1, instalado. Também faz parte do pacote fundamental termos o SDK do "WPF/E", o último CTP é o de feveiro. Muito importante é instalar o template de projeto para Visual Studio. Ele contém o básico que uma aplicação com "WPF/E" precisa. Quando você instala o SDK ele contém o arquivo de instalação do template. O SDK também traz a documentação e um pass-a-passo de como começar a utilizá-lo. E não se esqueça de instalar o runtime do "WPF/E". Se você esquecer de instalá-lo, será solicitado logo na primeira tentativa de testar o que você fez.
Com isto você já consegue desenvolver as suas aplicações com "WPF/E". Mas, para fazer as suas aplicações você precisará manusear bastanta códigos XAML. Então, eu tenho instalado o Expression Design e o Expression Blend. Com o Expression Design você pode criar os designs que você deseja e depois exportá-lo para XAML e entre as opções para "WPF/E". O Expression Blend é uma excelente ferramenta para acrescentar alguns objetos como caixa de texto, o controle de mídia e animações 2D. Neste ponto é importante tomar cuidado e lembrar que nem todas as animações suportadas pelo WPF são suportadas pelo "WPF/E".
Resumindo, o ambiente de desenvolvimento ideal para mim é:
Aproveite o "WPF/E"!
Se você ainda está em dúvida se vale a pena ir ao Mix, dê uma olhada em quem serão os Keynote Speakers: Ray Ozzie, Robert Bach e Scott Guthrie. Sensacional!! Só isto já vale o evento. Obviamente as breakout sessions também estão bem legais.
Além disto, todos os participantes receberão um Windows Vista Ultimate full.
E se você quiser ganhar a entrada e a hospedagem, não se esqueça do concurso.
Algum tempo atrás eu falei a respeito de uma ferramenta feita pelo Mike Swanson, nas suas horas vagas, para converter arquivos SWF para XAML. Estava torcendo para sair uma nova versão.
Pois bem, esta semana saiu a nova versão da ferramenta (0.2) e que corrigiu alguns bugs, mas principalmente, trouxe novas funcionalidades muito interessantes. Por exemplo, você pode escolher exportar o XAML para uma aplicação WPF ou para uma aplicação "WPF/E".
Vale a pena baixar a nova versão. E que venham novas versões!!!
Faltam apenas 48 dias para o MIX07. Este evento é voltados para osprofissionais envolvidos com a Web, sejam WebDevelopers, designers ou pessoas da área de negócioo. E o formato do evento é bem interessante, permitindo uma interação e conversas entre os participantes e os palestrantes.
Se você trabalha com Web e gostaria de participar deste evento ganhando a entrada e as despesas de hospedagem e mais uma graninha, veja o concurso que começou no dia 9 de março. Não perca tempo! (Não esqueça de ler as regras deste concurso)
Havia prometido colocar alguns exemplo de LINQ, mas ainda não havia feito. Bem, para quem não sabe o que é LINQ vou explicar rapidamente o conceito. O seu objetivo é facilitar a maneira como manipulamos os dados, independente de sua fonte (SQL Server, XML, coleção de Objetos) e permitir que façamos queries e trabalhemos com o seu resultado. Assim, você não precisa aprender diferentes maneiras de acessar dados, como T-SQL ou XPath ou qualquer outra coisa. O desenvolvedor ainda pode manter a mesma maneira racional de montar o código, por exemplo, orientação a objetos.
Vamos ver um exemplo simples para entendermos o que isto representa. Com o LINQ podemos fazer uma query, por exemplo, em um array. Digamos que tenhamos um array de inteiros:
int[] inteiros = {1,2,3,4,5,6,7,8,9,0};
Agora eu quero todos os números vezes 2 (x2). Com LINQ é fácil:
var result = from x in inteiros select x * 2;
Notem que a estrutura é muito semelhante a de uma query SQL que já estamos acostumados, só que ao contrário. Primeiro eu defino a fonte e depois determino o que desejo selecionar. O resultado é:
E se quisermos apenas os números maiores que 5.
var result = from x in inteiros where x > 5 select x * 2;
E isto é apenas o começo. Imagine o que podemos fazer com uma coleção de objetos!!
Hoje entrou no ar a nova cara do meu blog. Resolvi fazer esta mundaça por acreditar que esta nova cara facilita a sua leitura e também a maneira como as informaçoes e posts são exibido.
Espero que gostem. Feedbacks são bem vindos.
Nas próximas semanas estará nas bancas a 2ª edição da revista Mundo .NET. Na minha coluna desta edição estarei falando sobre o "WPF/E", sua arquitetura e ensindo a fazer um exemplo de um player de vídeo na internet.
Fique de olho nas bancas!!
[]s
Tudo bem que o IIS 7.0 tá chegando. Mas, muitos ainda não utilizam o IIS 6.0. Se você está pensando em migrar vale a pena dar uma olhada nesta ferramenta de migração.
Saiu o Service Pack 1 (SP1) do Visual Studio 2005 para os usuários do Vista. Este Service Pack inclui as versões express do produto. Você pode baixar o sp1 aqui.
A entrevista com o Somma, VP da divisão de ferramentas de desenvolvimento a respeito do SP1 está bem interessante.
Continuando a série: Como eu faço isto?, o site ASP.NET lançou uma nova série de vídeos para ensinar como utilizar o SQL Server 2005 Express Edition.
Para quem não conhece, o SQL Server 2005 Express é uma versão gratuíta do SQL Server. Ele é o mesmo engine do SQL Server, porém com pequenas limitações para o tamanho de banco de dados e quantidade de processadores. É uma excelente opção para pequenas aplicações ou para pequenas base de dados. E a sua limitação é pequena mesmo. Ele suporta uma base de até 4 GB. Isto atende a maoria, se não todas, as pequenas aplicações. Como ele você pode utilizar triggers, stored procedures e até o Reporting Service.
Já sei!! "Mas, o vídeo está em inglês!!??". Concordo com o Carlos Alberto, que no meu último post sobre os vídeos comentou que seria bem melhor se os vídeos estivessem em português. Mas, embora os vídeos sejam em inglês, eles são curtos e na sua grande maoria bem fáceis de entender.
Enquanto não o temos em português, recomendo dar uma olhada nestes mesmo!!!
Até....mais!!!
Este mês saiu o CTP (Community Technologu Preview) de março do "Orcas", a próxima versão do Visual Studio. Os que tem acompanhados os meus posts tem me "ouvido" (ou melhor, lido) falar sobre WPF (Windows Presentation Foundation) e LINQ.
Este CTP traz novidades interessantes para os que já estão ou pretendem mexer com o WPF. Dentre estas melhorias para o design das Experiências com o usuário, como o update do design pane a medida que altera o XAML, entre outras.
E para quem quer mexer com o LINQ ele não traz apenas o próprio LINQ, mas também o suporte para o VB.NET 9.0 e C# 3.0.
Se você quiser baixá-lo, clique aqui.
Sugiro que você baixe a VPC, pois assim você evitará ter alterar a sua máquina.