Assentant les bases{...o com hem arribat fins aquí.}Lluís FrancoSpeaker AndorraDotNetMicrosoft
AgendaIntroducció: AndorraDotNetAssentant les bases: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)
AndorraDotNet
AndorraDotNet
AndorraDotNetI ara…		…Començal’acció!!!
Assentant les basesEvolució de la plataforma .NET
Assentant les basesEvolució del Framework
{Codi… Codi…			… i méscodi}Demo
Novetats en els llenguatgesNoves característiques en C# i VB
Novetats en els llenguatgesNovetats 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!)
Inferencia de tipos locales (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 };
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)
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} };
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 };
Palabras clave de consultas (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;

Andorra Dot Net Event4 Assentant Bases

  • 1.
    Assentant les bases{...ocom hem arribat fins aquí.}Lluís FrancoSpeaker AndorraDotNetMicrosoft
  • 2.
    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)
  • 3.
  • 4.
  • 5.
  • 6.
    Assentant les basesEvolucióde la plataforma .NET
  • 7.
  • 8.
  • 9.
    Novetats en elsllenguatgesNoves característiques en C# i VB
  • 10.
    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;