Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Gincsai Gábor Dávid Zoltán MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási.

Hasonló előadás


Az előadások a következő témára: "Gincsai Gábor Dávid Zoltán MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási."— Előadás másolata:

1 Gincsai Gábor (gincsai@aut.bme.hu) Dávid Zoltán (dzoli@aut.bme.hu) MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási és Alkalmazott Informatikai Tanszék LINQ to Xml és Visual Basic 9 újdonságok

2  Xml kezelés LINQ-val  A megújult Visual Basic Tartalom

3 3 Xml mindenhol van  Konfigurációs állományok  Webszolgáltatások, RSS  Hierarchikus adatok tárolása  Platformfüggetlen kommunikáció

4 4 Korábbi módszerek  XmlReader / XmlWriter Hatékony, de nehézkes Hatékony, de nehézkes  DOM  Sok adatnál lassú  XSLT Kevésbé mély struktúrájú adatokra Kevésbé mély struktúrájú adatokra  Nehéz megtanulni  Sok adatnál

5 5 Elvárások…  XML támogatás C# és VB szinten  Kevés tanulás  Átmenteni a meglévő tudást, eszközöket  Letisztult, világos felhasználás  XQuery, XSLT támogatás  IDE támogatás

6 6 LINQ to Xml  Megmaradnak a DOM, Xml könyvtárak  Új API az „Orcas”-ban  Nyelvbe ágyazott lekérdezés ( C# / VB 9 )  XML támogatás XPath, XSLT ismeret nélkül  VB 9 még többet nyújt  XML közvetlenül VB-ből  Lekérdezések VB szintaktikával System.Xml.LinqSystem.Xml.Linq

7 7 Fontosabb osztályok  XDocument  XElement  XAttribute  XComment  XDeclaration  XProcessingInstruction

8 8 Xml létrehozása XElement xml = new XElement("contacts", new XElement("contact", new XAttribute("contactId", "1"), new XElement("firstName", "Gábor"), new XElement("lastName", "Gincsai") ), new XElement("contact", new XAttribute("contactId", "2"), new XElement("firstName", "Zoltán"), new XElement("lastName", "Dávid") ) ); Console.WriteLine(xml); XElement xml = new XElement("contacts", new XElement("contact", new XAttribute("contactId", "1"), new XElement("firstName", "Gábor"), new XElement("lastName", "Gincsai") ), new XElement("contact", new XAttribute("contactId", "2"), new XElement("firstName", "Zoltán"), new XElement("lastName", "Dávid") ) ); Console.WriteLine(xml);

9 9 Gábor Gincsai Zoltán Dávid Az elkészített Xml

10 10 XDocument létrehozása XDocument doc = new XDocument( new XDeclaration("1.0", "utf-8", "yes"), new XComment(„RSS Feed"), new XElement("rss", new XAttribute("version", "2.0"), new XElement ("channel", new XElement("title", "RSS csatorna címe"), new XElement("description", "RSS csatorna leírás"), new XElement("link", "http://example.com"), new XElement("item", new XElement("title", „Első cikk"), new XElement("description", „Első leírás"), new XElement("pubDate", DateTime.Now.ToString()), new XElement("guid", Guid.NewGuid())) ) ) ); doc.Save(@"c:\sample.xml");

11 11 RSS csatorna cím RSS csatorna leírás. http://example.com Első cikk címe Első leírás 2007-05-21 15:12:30 11e7e86b-1ad6-465a-8f74-cf00be28aaba Az elkészített Xml doksi

12 12 // Lekérdezés összeállítása és eredmény kiírása var q = from c in xml.Descendants("contact") where (int)c.Attribute("contactId") < 2 select (string)c.Element("firstName") + " " + (string)c.Element("lastName"); foreach (string name in q) Console.WriteLine("Név = {0}", name); // Lekérdezés összeállítása és eredmény kiírása var q = from c in xml.Descendants("contact") where (int)c.Attribute("contactId") < 2 select (string)c.Element("firstName") + " " + (string)c.Element("lastName"); foreach (string name in q) Console.WriteLine("Név = {0}", name); Xml lekérdezés C# Név = Gincsai Gábor Név = Dávid Zoltán

13 13 13 Xml kezelés LINQ-val  Xml létrehozása  Xml lekérdezés készítése  Mindez Visual Basic-ben

14 14  Xml kezelés LINQ-val  A megújult Visual Basic Tartalom

15 15 Implicit típusú lokális változók  Nem kell “feleslegesen” kiírni a típusokat  A változó típusa a jobb oldalon álló kifejezés típusa lesz  Visual Studio támogatás Dim szam = 3 Dim szoveg = “Sziasztok” Dim tort = 1.9 … Dim tomb() = { egyik, masik } Dim szam = 3 Dim szoveg = “Sziasztok” Dim tort = 1.9 … Dim tomb() = { egyik, masik }

16 16 Objektumok inicializálása  A With-hez hasonló szintaxis  De egy kifejezés! Dim orszag = New Country With { _.Name = "Magyarország", _.Area = 93000, _.Population = 10000000 _ } Dim orszag = New Country With { _.Name = "Magyarország", _.Area = 93000, _.Population = 10000000 _ }

17 17 Tömbök inicializálása Dim countries() = { _ New Country With {.Name = "Palau",.Area = 458,... }, _ New Country With {.Name = "Monaco",.Area = 1.9,... }, _ New Country With {.Name = "Belize",.Area = 22960,... } _ New Country With {.Name = "Madagascar",.Area = 587040,...} _ New Country With {.Name = "Magyarország",.Area=... } _ } Dim countries() = { _ New Country With {.Name = "Palau",.Area = 458,... }, _ New Country With {.Name = "Monaco",.Area = 1.9,... }, _ New Country With {.Name = "Belize",.Area = 22960,... } _ New Country With {.Name = "Madagascar",.Area = 587040,...} _ New Country With {.Name = "Magyarország",.Area=... } _ }

18 18 Lekérdezések – Query Expressions  SQL-szerű lekérdezések a nyelvben  Gyűjteményeken használható  Alapvetően a fordító szolgáltatása Dim smallCountries = From country In countries _ Where country.Population < 100000 _ Select country For Each country In smallCountries Console.WriteLine( country.Name ) Next Dim smallCountries = From country In countries _ Where country.Population < 100000 _ Select country For Each country In smallCountries Console.WriteLine( country.Name ) Next

19 19 Névtelen típusok  A fordító készít osztályt ha szükséges  Osztálynév = Név + típus + sorrend Dim smallCountries = From country In countries _ Where country.Population < 100000 _ Select country.Name, country.Population Class _Name_As_String_Population_As_Long_ Public Property Name As String Public Property Population As Long... End Class Dim smallCountries = From country In countries _ Where country.Population < 100000 _ Select country.Name, country.Population Class _Name_As_String_Population_As_Long_ Public Property Name As String Public Property Population As Long... End Class

20 20 Tömör metódusreferencia Sub OnClick(sender As Object, e As EventArgs) Handles btn.Click MessageBox.Show("Hello World from" & btn.Text)) End Sub Sub OnClick(sender As Object, e As Object) Handles btn.Click MessageBox.Show("Hello World from" & btn.Text)) End Sub Sub OnClick Handles btn.Click MessageBox.Show("Hello World from" & btn.Text)) End Sub Sub OnClick(sender As Object, e As EventArgs) Handles btn.Click MessageBox.Show("Hello World from" & btn.Text)) End Sub Sub OnClick(sender As Object, e As Object) Handles btn.Click MessageBox.Show("Hello World from" & btn.Text)) End Sub Sub OnClick Handles btn.Click MessageBox.Show("Hello World from" & btn.Text)) End Sub

21 21 Erős XML támogatás  ASP.NET-szerű XML összeállítás  Csak a VB! Dim countryXml As XElement = _ <%= From country In countries _ Select Area= > _ %> Dim countryXml As XElement = _ <%= From country In countries _ Select Area= > _ %>

22 22 Erős XML támogatás  Nagyon könnyű XML feldolgozás For Each country in countryXml. Console.WriteLine( country.@Name ) Console.WriteLine( country.@Area ) Next For Each country in countryXml. Console.WriteLine( country.@Name ) Console.WriteLine( country.@Area ) Next

23 23 Összefoglalás  Xml kezelés egyszerűen és hatékonyan  Implicit típusú lokális változók  Objektumok és tömbök inicializálása  Lekérdezések  Névtelen típusok  Tömör metódusreferencia  Nagyon erős XML támogatás a VB-ben

24 24 24

25 25 25

26 26 © 2007 Microsoft Corporation. Minden jog fenntartva. Az előadás csupán tájékoztató jellegű, a Microsoft Magyarország a benne szereplő esetleges hibákért vagy tévedésekért semmilyen felelősséget nem vállal.


Letölteni ppt "Gincsai Gábor Dávid Zoltán MSDN Kompetencia Központ Budapesti Műszaki és Gazdaságtudományi Egyetem Automatizálási."

Hasonló előadás


Google Hirdetések