A partir de hoje, dia 10 de Fevereiro de 2010, está disponÃvel para download a versão RC (Release Candidate) do Visual Studio 2010 e do .NET 4.0. Os subscritores do MDSN já têm este download disponÃvel desde do dia 8. Esta Release Candidate, de acordo com os comentários dos utilizadores que já a experimentaram traz uma melhoria significativa na performance. Não existem novas funcionalidades nesta release.
Foi desenvolvido utilizando a framework .NET actual, e teve como principal foco de desenvolvimento a simplicidade, a extensibilidade e funcionalidades inovadoras.
Um dos problemas do desenvolvimento utilizando tecnologias Microsoft são os custos elevadíssimos de alojamento de sites com esta tecnologia, principalmente no que toca a Base de dados SQL Server. Recentemente descobri um site (através do ASPAlliance) na Roménia, o www.livehosting.ro que oferece pacotes de alojamento a partir de aproximadamente 22€, na versão mais básica.
Na MIX 08 foram lançadas oficialmente as "Silverlight Tools Beta 1 for Visual Studio 2008", que permitem desenvolver Silverlight 2.0 no Visual Studio 2008.
Este pacote contém vários items:
Silverlight 2 Beta 1
Silverlight 2 SDK Beta 1
KB949325 for Visual Studio 2008
Silverlight Tools Beta 1 for Visual Studio 2008
O download deste pacote de instalação pode ser feito através do link:
Hoje vou falar-vos de outra funcionalidade introduzida com o C# 3.0 que são os Object Initializers, que permitem inicializar objectos, de uma forma mais compacta e rápida que o tradicional.
Com esta funcionalidade podemos inicializar as propriedades de um objecto logo na declaração do mesmo, utilizando chavetas, como vão poder ver no exemplo seguinte.
Neste exemplo, criámos uma classe Citizen com algumas propriedades. Na função main, temos primeiro a declaração do objecto bill da maneira tradicional, e depois a declaração do objecto steve, através dos object initializers:
using System;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
Citizen bill = new Citizen();
bill.Age = 40;
bill.FirstName = "Bill";
bill.LastName = "Gates";
bill.Gender = Genders.Male;
bill.PrintInfo();
Citizen steve = new Citizen() {FirstName = "Steve", LastName = "Jobs", Age = 43, Gender = Genders.Male};
steve.PrintInfo();
Console.ReadKey();
}
}
public enum Genders
{
Male = 0,
Female = 1
}
public class Citizen
{
private string firstName;
private int age;
private string lastName;
private Genders gender;
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
public int Age
{
get { return age; }
set { age = value; }
}
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
public Genders Gender
{
get { return gender; }
set { gender = value; }
}
public void PrintInfo()
{
Console.WriteLine("Name: {0} \nLastName: {1} \nAge: {2} \nGender: {3}", firstName, lastName, age, gender);
}
}
}
As expressões Lambda usam o operador =>. O lado esquerdo do operador lambda especifica os parâmetros de entrada e o lado direito especifica a expressão. Por exemplo, a expressão Lambda x=>x*x .
Passemos a um exemplo prático:
using System;
namespace ConsoleApplication
{
//Declare a Delegate
delegate int Del(int x);
class Program
{
static void Main(string[] args)
{
//Create the Lambda Expression
Del AoQuadrado = x => x*x;
Console.WriteLine(AoQuadrado(4));
Console.ReadKey();
}
}
}
Como podem ver pelo exemplo anterior associámos a expressão Lambda a um delegate type criado.
Hoje enquanto andava pelo youtube à procura de vídeos sobre o Visual Studio 2008 encontrei um bastante "interessante/controverso", que resolvi partilhar convosco.
Top Ten Reasons you Shouldn’t Upgrade to Visual Studio 2008