SlideShare a Scribd company logo
1 of 15
Assentant les bases{...o com hem arribat fins aquí.} Lluís Franco Speaker AndorraDotNet Microsoft
Agenda Introducció: AndorraDotNet Assentant 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 SQL Exemples 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
AndorraDotNet I ara… 		…Començal’acció!!!
Assentant les bases Evolució de la plataforma .NET
Assentant les bases Evolució del Framework
{Codi… Codi…			… i méscodi} Demo
Novetats en els llenguatges Noves característiques en C# i VB
Novetats en els llenguatges Novetats 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 = 36 Dim PI = 3.1415927 Dim date = DateTime.Today Dim 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 String End Class Dim 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 Keys var v = new { Amount = 108, Message = "Hello" }; varproductQuery =  fromprod in products select 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 c string[] words = { "aPPLE", "BlUeBeRrY", "cHeRry" }; varupperLowerWords = from w in words select new { Upper = w.ToUpper(), Lower = w.ToLower() }; varstudentQuery =  from student in students group student bystudent.Last;

More Related Content

Similar to Andorra Dot Net Event4 Assentant Bases

Pyxel, una llibreria per a l’anotació automàtica de fotografies
Pyxel, una llibreria per a l’anotació automàtica de fotografiesPyxel, una llibreria per a l’anotació automàtica de fotografies
Pyxel, una llibreria per a l’anotació automàtica de fotografiesUniversitat Politècnica de Catalunya
 
Programació Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació  Web - PAC 2 correcció - Multimèdia (UOC) - Paquita RibasProgramació  Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació Web - PAC 2 correcció - Multimèdia (UOC) - Paquita RibasPaquita Ribas
 
Turbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions WebTurbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions WebTomàs Reverter
 
Pdi : Principis i metodologia
Pdi : Principis i metodologiaPdi : Principis i metodologia
Pdi : Principis i metodologiaJosep Manuel
 
El framework Cakephp
El framework CakephpEl framework Cakephp
El framework Cakephpherotyc
 
somUPC: Integració de les intranets de la UPC
somUPC: Integració de les intranets de la UPCsomUPC: Integració de les intranets de la UPC
somUPC: Integració de les intranets de la UPCinLabFIB
 
Fll tecnologia
Fll tecnologiaFll tecnologia
Fll tecnologia22verd
 
Tractament i publicació d'imatge i vídeo practica2
Tractament i publicació d'imatge i vídeo practica2Tractament i publicació d'imatge i vídeo practica2
Tractament i publicació d'imatge i vídeo practica2Marcos Baldovi
 
Programem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robóticaProgramem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robóticaemunoz341
 
Itineraris IT Academy (2020)
Itineraris IT Academy (2020)Itineraris IT Academy (2020)
Itineraris IT Academy (2020)Barcelona Activa
 
14. Incrustar Elements Web
14. Incrustar Elements Web14. Incrustar Elements Web
14. Incrustar Elements Webmnicolau
 

Similar to Andorra Dot Net Event4 Assentant Bases (20)

Presentacio Eprojectes Web
Presentacio Eprojectes WebPresentacio Eprojectes Web
Presentacio Eprojectes Web
 
Pyxel, una llibreria per a l’anotació automàtica de fotografies
Pyxel, una llibreria per a l’anotació automàtica de fotografiesPyxel, una llibreria per a l’anotació automàtica de fotografies
Pyxel, una llibreria per a l’anotació automàtica de fotografies
 
Python
PythonPython
Python
 
Programació Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació  Web - PAC 2 correcció - Multimèdia (UOC) - Paquita RibasProgramació  Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
Programació Web - PAC 2 correcció - Multimèdia (UOC) - Paquita Ribas
 
Turbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions WebTurbo Gears, Framework De Python Per Aplicacions Web
Turbo Gears, Framework De Python Per Aplicacions Web
 
Pdi : Principis i metodologia
Pdi : Principis i metodologiaPdi : Principis i metodologia
Pdi : Principis i metodologia
 
Full stack R
Full stack RFull stack R
Full stack R
 
Pong 1
Pong  1Pong  1
Pong 1
 
El framework Cakephp
El framework CakephpEl framework Cakephp
El framework Cakephp
 
somUPC: Integració de les intranets de la UPC
somUPC: Integració de les intranets de la UPCsomUPC: Integració de les intranets de la UPC
somUPC: Integració de les intranets de la UPC
 
Fll tecnologia
Fll tecnologiaFll tecnologia
Fll tecnologia
 
Tractament i publicació d'imatge i vídeo practica2
Tractament i publicació d'imatge i vídeo practica2Tractament i publicació d'imatge i vídeo practica2
Tractament i publicació d'imatge i vídeo practica2
 
DBBDD_practica1
DBBDD_practica1DBBDD_practica1
DBBDD_practica1
 
Programem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robóticaProgramem la placa Arduino - Presentación para la asignatura de robótica
Programem la placa Arduino - Presentación para la asignatura de robótica
 
UD3 Programació
UD3 ProgramacióUD3 Programació
UD3 Programació
 
Itineraris IT Academy (2020)
Itineraris IT Academy (2020)Itineraris IT Academy (2020)
Itineraris IT Academy (2020)
 
Firefox
FirefoxFirefox
Firefox
 
2.2. Curs Utilització de dades obertes reals (2)
2.2. Curs Utilització de dades obertes reals (2)2.2. Curs Utilització de dades obertes reals (2)
2.2. Curs Utilització de dades obertes reals (2)
 
T10 questionari
T10 questionariT10 questionari
T10 questionari
 
14. Incrustar Elements Web
14. Incrustar Elements Web14. Incrustar Elements Web
14. Incrustar Elements Web
 

Andorra Dot Net Event4 Assentant Bases

  • 1. Assentant les bases{...o com hem arribat fins aquí.} Lluís Franco Speaker AndorraDotNet Microsoft
  • 2. Agenda Introducció: AndorraDotNet Assentant 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 SQL Exemples 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)
  • 5. AndorraDotNet I ara… …Començal’acció!!!
  • 6. Assentant les bases Evolució de la plataforma .NET
  • 7. Assentant les bases Evolució del Framework
  • 8. {Codi… Codi… … i méscodi} Demo
  • 9. Novetats en els llenguatges Noves característiques en C# i VB
  • 10. Novetats en els llenguatges Novetats 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 tipos locales (VB / C#) Dim City = “Springfield” Dim Size = 36 Dim PI = 3.1415927 Dim date = DateTime.Today Dim 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 String End Class Dim 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 Keys var v = new { Amount = 108, Message = "Hello" }; varproductQuery = fromprod in products select new { prod.Color, prod.Price };
  • 15. 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 c string[] words = { "aPPLE", "BlUeBeRrY", "cHeRry" }; varupperLowerWords = from w in words select new { Upper = w.ToUpper(), Lower = w.ToLower() }; varstudentQuery = from student in students group student bystudent.Last;
  • 16. Métodos de extensión (VB / C#) Alguns dels més puristes de la OO no ho veuen amb bons ulls. Jo si  ImportsSystem.Runtime.CompilerServices Module StringExtensions <Extension()> _ Public Sub Print(ByValaString As String) Console.WriteLine(aString) End Sub End Module Imports StringExtensions Dim example As String = "Hello” example.Print()
  • 17. Expresiones lambda (C#) Representa una funció anònima que pot contenir expressions i instruccions i es pot utilitzar per crear delegats o tipus d’arbres d’expressions. Totes les expressions lambda utilitzen l’operador lambda = >, que es pot llegir com “va a”. delegateint del(int i); del myDelegate = x => x * x; int j = myDelegate(5); //j = 25 customers.Where(c => c.City == "London"); int[] nums = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 }; var parells = nums.Where(n => n % 2 != 1); foreach (var n in parells) { MessageBox.Show(n.ToString()); }
  • 18. Per fi a VB! Funcionalitats que fins ara només eren a C# (int?, ?:) Tipus nullables Dim k As Integer? = Nothing If Not k.HasValue Then k = 9 End If Operador ternari de veritat Dim r = If(5 < 10, "menor", "major")
  • 20.
  • 22. AndorraDotNet Dubtes? Lluís Franco lfranco@uyssoft.com © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  • 23. Microsoft DevCamp ¿ Qué es el {dev_camp} ? Es un evento de dos días (fin de semana de 8 y 9 de Noviembre) donde haremos de todo un poco. Habrá sesiones técnicas y habrá momentos de ocio… Resum del Dani: http://andorradotnet.com/blogs/cdani/archive/2008/11/09/dev-camp-2008.aspx El Dani es famós : http://www.navarradotnet.com/post/navarradotnet-en-el-7bdev_camp7d.aspx
  • 24.
  • 25. Sorteig de llicències Una mà innocent? :-P