VSLive 2007
Report 2
Atualizado: 13 de Novembro de 2007, 19 hs horário local
Continuando nossa cobertura do VSLive 2007 Austin, hoje foi um dia de muitas sessões. Conferi novidades sobre grandes tecnologias emergentes, incluindo LINQ, DLINQ, XLINQ, Visual Studio 2008 e C# 3.0.
Na palestra de Ken Getz, “LINQ, DLINQ e XLINQ – What’s it all about? ” tivemos um overview desta que promete ser uma das tecnologias mais inovadoras da década. O LINQ (Language INtegrated Query) unifica em uma única linguagem consultas a banco de dados, documentos XML e objetos, disponível para C# e VB.NET. Podemos usar LINQ com Objetos, por exemplo, para extrair dados de uma coleção .NET que implemente a interface IEnumerable. Ou seja, objetos podem ser fontes de dados (imagine isso algo como o ObjectDataSource do ASP.NET). LINQ também funciona como ADO.NET, incluindo bancos de dados relacionais e DataSets. Com XML, LINQ é um DOM melhorado. A sintaxe do LINQ é muito similar à SQL, mas bem mais poderosa, inclusive temos apoio do IntelliSense do Visual Studio para criar consultas. Abaixo um exemplo de utilização do LINQ para dar uma idéia do seu uso. Note que temos uma coleção de strings e a seguir definimos uma query em LINQ para selecionar todos os nomes aonde o tamanho seja igual a 5.
using System;
using System.Linq;
using System.Collections.Generic;
class app {
static void Main() {
string[] names = { "Burke", "Connor", "Frank",
"Everett", "Albert", "George",
"Harris", "David" };
IEnumerable query = from s in names
where s.Length == 5
orderby s
select s.ToUpper();
foreach (string item in query)
Console.WriteLine(item);
}
}
Na palestra “VS2008 Deep Dive”, de Jeffrey Palermo, tivemos um overview das novidades da próxima versão do Visual Studio. Entre as novidades destacadas por Palermo, mostrou que é possível escolher a versão do framework na qual você deseja desenvolver (2.0, 3.0, 3.5). Os templates disponíveis são filtrados de acordo com a versão. Por exemplo, WPF Applications só está disponível se você escolher 3.5. O interessante é que o IDE desabilita/habilita opções de acordo com a escolha, como na caixa Add Reference. Inclusive, depois que você iniciar um projeto, pode trocar a plataforma destino indo nas propriedades do projeto. Além do suporte ao AJAX já embutido, também temos agora a habilidade de debugar código JavaScript de dentro do IDE! Isso mesmo. Com todas as opções do debugger disponíveis. Temos suporte a JavaScript também no IntelliSense, outra grade novidade. Palermo também criou uma aplicação WPF e mostrou que ela pode ser distribuída através do ClickOnce, com controle de versão e tudo mais. As aplicações são automaticamente atualizadas no cliente quando uma nova versão (build) estiver disponível no servidor.
Na palestra “Introduction to C# 3.0”, uma das que mais apreciei hoje, ministrada por Tim Rayburn, tivemos uma clara explanação de todas as novidades da principal linguagem do .NET Framework. Para dar uma idéia clara do que é possível fazer como C# 3.0, coloquei abaixo as principais novidades (algumas coisas até bem estranhas para quem está acostumado com C#2.0).
Automatically Properties
Podemos declarar propriedades da seguinte forma, sem implementar o get e o set e sem definir a variável privada:
public string MyName { get; set; }
Palavra-chave “var”
Permite omitir o tipo de uma variável:
var i = 1;
Object Initializer
Podemos inicializar todas ou algumas as propriedades do objeto no próprio construtor:
public class Numbers
{
public int x ;
public int y;
}
var myNumbers = new Numbers { x = 0, y= 0}
Collection Initializer
Podemos criar coleções e já inicializá-las na criação:
List Animals = new List {
"horse", "dog", "cat" } ;
Anonymous Types
Essa eu confesso que fiquei impressionado. Podemos criar objetos sem que o mesmo tenha um tipo definido! O compilador criará o tipo “on-the-fly”. Observe que criamos um objeto que não tem tipo algum, as propriedades serão definidas com base nos valores passados:
var Guinther = new {hair="black", skin="white", age=29}
Extension Methods
Permite estender tipos adicionando métodos a ele sem que para isso você tenha o código-fonte do mesmo. Você “injeta” um método na classe que você quiser, por exemplo, int32, string. Em C# a palavra-chave this deve ser colocada como primeiro parâmetro do método. Veja um exemplo:
public static int ToInt(this string s)
{
return Convert.ToInt32(s) ;
}
string s = "1";
int i = s.ToInt();
Por hoje é só, não perca o próximo report! Abaixo algumas fotos:

Ken Getz: LINQ

C# 3.0: Tim Rayburn