AgendaIntroducció: AndorraDotNetAssentant lesbases:La evolució del Framework (FWK 1.1 to 3.5)Conceptes OOP (herència, interfases, col·leccions, etc.)Exemples evolució llenguatge (FWK 1.1 to 3.5)Exemples LINQ to SQLExemples LINQ to EF... si arribem, si no un altre dia .Dani: Pots fer 5 cèntims del DevCamp? Propers events (aporteu idees)Sorteig de goodies (i llicències!)Sopar (qui s’apunti :-P)
Novetats en elsllenguatgesNovetats en elsllenguatges:Inferencia de tipos locales (VB / C#)Inicializadores de objetos (VB / C#)Inicializadores de colección (C#)Tipos anónimos (VB / C#)Palabras clave de consultas (VB / C#)Métodos de extensión (VB / C#)Expresiones lambda (C#)Tipos nullables (per fi en VB!)Operador ternario (per fi en VB!)
11.
Inferencia de tiposlocales (VB / C#)Dim City = “Springfield”Dim Size = 36Dim PI = 3.1415927Dim date = DateTime.TodayDim someNumbers() = New Integer() {4, 18, 11, 9, 8, 0, 5}DimpList = Process.GetProcesses() var i = 5;varisnumeric = false;var s = "Hello";var a = new[] { 0, 1, 2 };varlist = new List<int>();var person = new { Name = "Terry", Age = 34 };
12.
Inicializadores de objetos(VB / C#)No és necessari un constructor per la clase (si no es serialitzable)Public Class Public Name As String Public City As StringEnd ClassDim cust As New Customer()cust2.Name = "Toni Poe"cust2.City = "Louisville“Ara equival a:Dim namedCust = New Customer With {.Name = "Terry Adams"}Tot i això, és recomamable (legibilitat del codi)
13.
Inicializadores de colección(C#)privateclassCat{publicintAge { get; set; }publicstringName { get; set; }}staticvoidcreateCat(){Catcat = new Cat { Age = 10, Name = "Sylvester" };}List<Cat> cats = new List<Cat> { new Cat(){ Name="Sylvester", Age=8 }, new Cat(){ Name="Whiskers", Age=2}, new Cat() { Name="Sasha", Age=14} };
14.
Tipos anónimos (VB/ C#)Permeten crear objectes sense escriure cap definició de clase per el tipus de dades. El compilador genera automáticament una clase,Dim product = New With {.Name = "paperclips", .Price = 1.29}Dim prod3 = New With {Key .Name = "paperclips", Key .Price = 1.29}Dim prod4 = New With {Key .Name = "paperclips", Key .Price = 1.29}Console.WriteLine(prod3.Equals(prod4)) //returns true if Keysvar v = new { Amount = 108, Message = "Hello" };varproductQuery = fromprod in productsselect new { prod.Color, prod.Price };
15.
Palabras clave deconsultas (VB / C#)LINQ al poder!Dim dc As New ContactsDataContext() Dim contacts = _ From c Indc.Contacts _ Wherec.FirstName.Contains("a") _Order By c.ContactID _Select cstring[] words = { "aPPLE", "BlUeBeRrY", "cHeRry" };varupperLowerWords =from w in wordsselect new { Upper = w.ToUpper(), Lower = w.ToLower() };varstudentQuery = from student in students group student bystudent.Last;