Visual Studio 2008 SP1 e .NET Framework 3.5 SP1

by Fujiy 11. agosto 2008 23:36

Em menos de um ano desde o lançamento da versão RTM do VS2008 já temos disponível o SP1 do Visual Studio 2008 e .Net 3.5

Esse Service Pack é especial pois além das correções de bugs também das novas funcionalidades:

  • .NET Framework Client Profile: um subconjunto do .NET Framework 3.5 voltado para aplicações desktop;
  • ASP.NET Dynamic Data: possibilita o scaffolding para aplicações ASP.NET;
  • Suporte ao SQL Server 2008, lançado recentemente;
  • ADO.NET Data Services, conhecido antigamente pelo codinome Astoria;
  • ADO.NET Entity Framework;

Entre outros...

Infelizmente o ASP.NET MVC não está incluso e continua ainda em Preview, que porteriormente vai passar por Beta só então chegará na versão final.

Links para o download:

http://msdn.microsoft.com/en-us/vstudio/cc533448.aspx

http://go.microsoft.com/fwlink/?LinkId=122095

Tags: ,

Notícias

Computação Paralela - CTP de Junho

by Fujiy 3. junho 2008 08:48

Saiu o Community Technology Preview da Extensão para Computação Paralela para .Net 3.5.

"Parallel Extensions to the .NET Framework is a managed programming model for data parallelism, task parallelism, and coordination on parallel hardware unified by a common work scheduler. Parallel Extensions makes it easier for developers to write programs that scale to take advantage of parallel hardware by providing improved performance as the numbers of cores and processors increase without having to deal with many of the complexities of today’s concurrent programming models.

Parallel Extensions provides library based support for introducing concurrency into applications written with any .NET language, including but not limited to C# and Visual Basic."


Download

Mais Informações

Tags:

Notícias

Disponível ASP.NET Dynamic Data Preview

by Fujiy 10. abril 2008 08:07
A meses atrás foi liberado um Preview do ASP.NET 3.5 Extensions que continha novas funcionalidades que estão por vir este ano (incluindo melhorias no ASP.NET AJAX, ASP.NET MVC, Suporte ao ASP.NET Silverlight e ASP.NET Dynamic Data).

O ASP.NET Dynamic Data adicionou várias novas funcionalidades que permitem que você construa rapidamente uma página de acesso a dados que funcionam com LINQ to SQL ou LINQ to Entities. ASP.NET Dynamic Data permite que você automaticamente tenha uma página totalmente funcional de entrada de dados e relatórios que são dinamicamente construídas a partir dos meta-dados do seu modelo ORM. Além disso, você pode opcionalmente sobrescrever e customizar qualquer um dos templates usando HTML ou o código que você quiser, dando um controle total ao desenvolvedor.

ASP.NET Dynamic Data Preview

Hoje foi liberado uma atualização do ASP.NET Dynamic Data Preview. Para saber mais e fazer o download clique aqui.

Este novo dynamic data preview agora funciona com os controles de dados padrão do ASP.NET (GridView, ListView, FormView, DetailsView, etc). O suporte ao Dynamic Data permite que esses controles possam manipular automaticamente relacionamentos com chave-estrangeira. Por exemplo, um gridview irá automaticamente mostrar o nome do registro na coluna de chave estrangeira em vez do código dela:


O novo dynamic data também suporta validações automáticas (tanto no lado cliente quanto no servidor) levando em consideração as constraints que você tem no seu modelo de dados. Por exemplo, se uma coluna no banco de dados é limitada em 50 caracteres, e está marcada como non-nullable, controles de validação apropriados serão aplicados à página para garantir que essas regras serão seguidas. Se você mudar as constraints dentro das suas classes LINQ to SQL ou LINQ to Entities, a interface gráfica irá automaticamente fazer essas mudanças na próxima vez que for chamada, para garantir que as novas constraints serão obedecidas.

Todas as funcionalidades acima estarão presentes para o LINQ to SQL e LINQ to Entities.


Visual Studio Dynamic Data Project Wizard

Outra novidade foi adicionada ao ASP.NET Dynamic Data, o "Time de Ferramentas Web do VS" também terminou um primeiro preview de um novo assistente para projetos usando dynamic data que permite criar rapidamente um site para manipular dados. O assistente permite que você selecione um banco de dados, e então as tabelas, views e sprocs que você deseja construir no seu modelo LINQ to SQL:



Depois de criar um modelo de dados, o assistente deixa você escolher facilmente o template das páginas para manipular os dados:



Você pode então escolher qual tipo de interface é suportada em cada página:

Tags:

Notícias

Biblioteca de Código Fonte do .NET Framework disponível

by Fujiy 17. janeiro 2008 07:07

O recurso que já havia sido anunciado a meses, mas era restrito à equipe da Microsoft está agora disponível ao público em geral. Para ativar o recurso você pode seguir as instruções dessa página: http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx que explica detalhadamente todo o processo. As bibliotecas disponíveis por enquanto são:

  • .NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc).
  • ASP.NET (System.Web, System.Web.Extensions)
  • Windows Forms (System.Windows.Forms)
  • Windows Presentation Foundation (System.Windows)
  • ADO.NET and XML (System.Data and System.Xml)

E outros serão adicionados brevemente: LINQ, WCF e Workflow.

Já tive a oportunidade de fazer pequenos testes e está funcionando, não vou postar uma screen porque a licença de uso não permite.

Tags:

Notícias

Novos recursos no C#3.0

by Fujiy 14. dezembro 2007 08:22

Vou falar sobre alguns novos recursos que vieram na nova versão do C#.

Começando pelas Propriedades Automáticas.
Antigamente quando a gente criava as propriedades das nossas classes, faziamos um código como esse:

7 public class Carro

8 {

9 private string _modelo;

10 private string _marca;

11 private int _ano;

12 private string _cor;

13

14 public string Modelo

15 {

16 get { return _modelo; }

17 set { _modelo = value; }

18 }

19

20 public string Marca

21 {

22 get { return _marca; }

23 set { _marca = value; }

24 }

25

26 public int Ano

27 {

28 get { return _ano; }

29 set { _ano = value; }

30 }

31

32 public string Cor

33 {

34 get { return _cor; }

35 set { _cor = value; }

36 }

37 }

Como você pode notar, as propriedades não tem nenhum tratamento lógico, servindo como se fosse um acesso direto aos campos. Então porque não expor os campos diretamente? Basicamente porque no futuro você pode querer implementar algum tratamento, assim se você tiver usado propriedades, as classes que usam suas propriedades não precisarão ser recompiladas.

Sendo muito comum o uso de propriedades como as que vimos acima, no C#3.0 foi implementado as Propriedades Automáticas, que substituem esse código "padrão". O código anterior ficaria assim:

7 public class Carro

8 {

9 public string Modelo { get; set; }

10 public string Marca { get; set; }

11 public int Ano { get; set; }

12 public string Cor { get; set; }

13 }

Quando o compilador encontrar um get/set vazio como estes, ele automáticamente criará os campos privados para a classe e implementará as propriedades públicas get/set.

Diferentemente de criar campos públicos, poderemos no futuro criar as implementações lógicas, sem ter que mudar nenhum componente externo que referencia nossa classe.

Inicializadores de Objetos

Usamos muitas propriedades quando estamos programando e é muito comum códigos como esse:


13 Carro car = new Carro();

14 car.Modelo = "Punto";

15 car.Marca = "Fiat";

16 car.Ano = 2007;

17 car.Cor = "Azul";

Agora podemos escrever isso de outra forma, mais simples e concisa, usando os "object Initializers". Seu código pode ser escrito assim:


Carro car = new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Azul" };


E o compilador irá se encarregar de instanciar a classe e setar as propriedades.

É interessante que podemos inicializar objetos aninhados, como mostrado:


Carro car = new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Azul", Fabric = new Fabricante { Nome = "Industria Metal", CNPJ = "12312" } };

Inicializadores de Coleção

Os inicializadores de objeto também facilitam a maneira como adicionamos itens a uma coleção. Se quisermos adicionar objetos Carro a uma List devemos escrever o seguinte código:



14 List<Carro> Carros = new List<Carro>();

15

16 Carros.Add(new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Azul" });

17 Carros.Add(new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Vermelho" });

18 Carros.Add(new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Preto" });


Economizando muitas linhas de código. E podemos diminuir ainda mais, usando Inicializadores de coleção, não precisamos escrever vários métodos Add:


14 List<Carro> Carros = new List<Carro>{

15 new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Azul" },

16 new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Vermelho" },

17 new Carro { Modelo = "Punto", Marca = "Fiat", Ano = 2007, Cor = "Preto" }

18 };

Tags: ,

Notícias

LINQ to Object

by Fujiy 12. dezembro 2007 08:54

Agora com o Visual Studio 2008 estou fazendo alguns testes com os novos recursos do Framework 3.0 e 3.5.

Vou colocar aqui um exemplo de página que mostra os números pares, usando o LINQ e como fonte de dados um array.

Crie um novo WebSite, sem esquecer de usar o Framework 3.5:

Adicione um Button e um Label:

De dois cliques no Button para gerar o método do evento Click. Dentro do método insira o seguinte código(usei comentários para explicar o código):

21 //Nossa fonte de dados

22 int[] numeros = { 1, 2, 3, 4, 5, 6 };

23

24 //Query do Linq, depois da keyword in, especificamos a fonte de dados

25 //Usamos where para filtrar os resultados

26 //retornando só os que tiverem resto da divisão por 2 igual à 0

27 //o select serve para o Linq saber o que deve retornar

28 //daqueles que passarem pelo filtro

29 //no caso o proprio numero, mas poderiamos

30 //por exemplo retornar num.ToString()

31 var query = from num in numeros

32 where num % 2 == 0

33 select num;

34

35 //Passa cada numero retornado pro Label

36 //Perceba que a variavel query é definida como IEnumerable<int>

37 //var é um novo recurso do Framework 3.5

38 //O tipo da variável é definido na compilação

39 //A variavel continua sendo tipada

40 foreach (var numero in query)

41 {

42 lblResultado.Text += numero.ToString() + "<br>";

43 }

Agora tecle F5 para abrir o website e clique no Button, vai aparecer os números 2, 4 e 6:

Tags: ,

Artigos

Visual Studio 2008 e .NET Framework 3.5 RTM - Versão final liberada

by Fujiy 19. novembro 2007 15:18

Já saiu a versão final do Visual Studio 2008!

Quem quiser fazer o download da versão express pode pegar nesses links:

Visual C# 2008 Express
Visual Basic 2008 Express
Visual C++ 2008 Express
Visual Web Developer 2008

Ou pode baixar a instalação offline: Download

E aqui a versão Team System Trial(90 dias): Visual Studio Team System 2008 Team Suite

Finalmente o Runtime do .Net3.5: Download

Tags: ,

Notícias

Usando o LINQ

by Fujiy 17. outubro 2007 10:51

O .Net 3.5 traz uma novidade chamada LINQ(Language Integrated Query), que pretende integrar em uma linguagem de query uma forma de fazer pesquisas em fontes de dados.

Vou mostrar aqui como fica mais simples de gerar XML, e muito mais fácil de ler também:

//Inclua esse namespace
using System.Xml.Linq;

//Dentro do método Main
XDocument DocXml = new XDocument(
                               new XElement("Clientes",
                                      new XElement("Cliente",
                                           new XAttribute ("Nr", 1),
                                           new XElement("Nome", "Maria")
                                           )
                                      )
                                );

Console.WriteLine(DocXml);
Console.Read();

É bem mais intuitivo criar o elemento Pai e no construtor criar os filhos, do que fazer como no .Net2.0 em que você tinha que criar o elemento Filho, então criar o Pai, e adicionar o Filho no elemento Pai.

Uma diferença interessante entre o novo C#3.0 e o Visual Basic 9.0 é que o VB aceita literais XML, exemplo:

Dim ElementoXml As XElement =
     <clientes>
        <cliente nr="1">
            <nome>Maria</nome>
        </cliente>
     <clientes>
Sendo um literal, será interpretado em tempo de compilação e não uma string que vai ser convertida em runtime, assim evita-se erros inesperados. Por enquanto o C# não tem essa implementação e talvez seja assim na versão final também.

Você também pode criar elementos XML da seguinte maneira, usando uma Query Expression:

  List<int> MegaSena = new List<int>();

  MegaSena.Add(13);
  MegaSena.Add(21);
  MegaSena.Add(27);
  MegaSena.Add(33);
  MegaSena.Add(39);
  MegaSena.Add(43);

  XElement elementoNumeros =
     new XElement("Numeros",
        from Numero in MegaSena
        select new XElement("Numero", Numero)
     );

Tags: ,

Artigos

Powered by BlogEngine.NET 1.6.1.0 - Eco Theme by n3o Web Designers