Essensiell LINQ dekker alle de grunnleggende

I løpet av de siste par årene har få teknologier interessert meg så mye som LINQ, og ennå så det ut som et svart hull for meg. Jeg visste at LINQ var bygd på mange ideer, inkludert lambdas, utvidelsesmetoder og type inferanse (var), som alle måtte legges til C # bare for å støtte det. Og selv om jeg kunne snakke om noen av fordelene med LINQ, trodde jeg ikke at det gjaldt arbeidet mitt, siden jeg ikke har jobbet på datadrevne nettsteder i det siste.

Etter å ha lest Essential LINQ av Charlie Calvert og Dinesh Kulkarni, har jeg et helt annet syn på LINQ. Faktisk er de to første kodekonseptskolonnene mine, kodekonsepter: C # 's var nøkkelord og kodekonsepter: C #s utvidelsesmetoder, inspirert av boken.

I denne anmeldelsen vil jeg trekke frem noen ting jeg lærte om LINQ, noen få av mine mindre klager på boka, og som ville ha mest utbytte av å lese den. (Last ned et eksempel på et kapittel fra boken om essensen av LINQ.)

På et øyeblikk

Essensiell LINQ er ganske begrenset i omfang til tross for størrelsen (den er litt mer enn 500 sider). Som en del av forfatternes oppgave å fokusere på de essensielle elementene, forutsetter de ikke annet enn at leseren har en grunnleggende kunnskap om C # og .NET Framework. Selv om informasjonen i boka er relevant for VB.NET, har VB.NET begrensninger, for eksempel de tvungne enlinjede lambdas som gjør det vanskelig å jobbe med LINQ i VB.NET. Du kan forvente at dette endres med versjonen av VB.NET som vil bli utgitt i .NET 4.

Etter å ha gitt en god forståelse av ideene bak LINQ, bruker forfatterne et helt kapittel til alle de underliggende teknologiene du trenger å forstå for å jobbe med LINQ. Dette var en kjærkommen tempoendring fra noen bøker jeg har lest som prøvde å "raskt spore" deg til å lære hovedemnet, uten å legge det rette grunnlaget først. Faktisk vurderte jeg denne delen av boken for å være en utmerket grunning på mange av de nye C # 3-språkfunksjonene, som jeg ønsket å lære. Informasjonen forfatterne ga om disse emnene var så grundig at jeg i mitt første LINQ-aktiverte prosjekt fant meg selv å bruke mange av ideene utenom LINQs krav.

Forfatterne diskuterer LINQ to Objects først, siden det er det minst komplekse av standard LINQ-leverandørene. Denne delen inspirerte meg til å skrive mitt første LINQ-aktiverte prosjekt. Basert på ideene jeg lærte, kunne jeg øyeblikkelig bruke LINQ på en lang rekke oppgaver som jeg aldri visste at den kunne brukes. Og jeg trengte sjelden å konsultere boka eller. NET-dokumentasjonen, som er en av de sterkeste anbefalingene jeg kan gi til en utdanningsressurs.

Deretter går forfatterne videre til LINQ til SQL og deretter LINQ til entiteter. Noen lesere kan kanskje si at diskusjonen om LINQ til SQL var for lang, eller at ikke nok tid brukt på LINQ til enheter, gitt at Microsoft har gitt inntrykk av at LINQ til SQL bør fases ut til fordel for LINQ til enheter. Jeg tror det var riktig plass å gi til LINQ til SQL, hovedsakelig fordi Entity Framework er altfor tungt og sammensatt for mange prosjekter. I tillegg er Entity Framework veldig nytt, og det forventes å endre seg betydelig etter hvert som tiden går, noe som gjør en grundig diskusjon om det utsatt for foreldelse. Når det er sagt, ville jeg gjerne sett litt mer oppmerksomhet viet LINQ til enheter. Forfatterne gir god oppmerksomhet til problemstillinger som datakonsekvens, å gjøre CUD-databaseoperasjoner og jobbe med lagrede prosedyrer.

LINQ til XML blir diskutert neste. Selv om dette sannsynligvis er den mest komplekse delen (gitt de komplekse behovene til mange utviklere som jobber med XML), er den fremdeles lesbar. Selv om noen av temaene er utenfor min erfaring (jeg forstår fortsatt ikke hvorfor så mange utviklere bruker mer tid på å "transformere" XML enn å faktisk bruke informasjonen i den), hadde jeg ingen problemer med å forstå hva som ble diskutert. Hvis det å jobbe direkte med XML kommer inn i en prosjektspesifikasjon for meg, føler jeg meg trygg på at jeg ikke har noen problemer med å anvende LINQ på oppgaven.

Boken avsluttes med informasjon om LINQs beste praksis, informasjon om resultater, detaljer om andre LINQ-leverandører og et sammendrag av LINQ. Jeg føler at mye av denne delen er litt disponibel, spesielt kapittelet om andre LINQ-leverandører; alle elementene er pre-versjon 1 og forandrer seg fortsatt raskt, så jeg følte ikke at informasjonen var relevant eller nyttig for mange utviklere. Imidlertid var det hyggelig å se andre mulige bruksområder for LINQ.

Sammendrag

Totalt sett var jeg helt fornøyd med den usedvanlig velskrevne Essential LINQ . Det er en av få tekniske bøker jeg har lest, og som ikke føltes som en oppgave å lese. Jeg satte en sidekvote til meg hver dag for å sikre at jeg leste boka raskt, og i mange tilfeller leste jeg mye mer enn jeg planla. Jeg dyttet først inn i et prosjekt som brukte LINQ mens jeg var i midten av å lese boka, og jeg hadde ingen problemer med å få ordentlig arbeid med LINQ eller de andre temaene jeg lærte fra boken. Alle kodeprøvene i boka var passende og enkle å forstå, noe som er ganske sjelden i verden av programmeringsbøker. I tillegg så jeg nøye på hver kodeeksempel, og jeg så ingen feil.

Jeg har riktignok noen få mindre klager. Boken har noen få uviktige, men åpenbare skrivefeil. Og ett ledd ble feilplassert av omtrent to ledd. Mens jeg satte pris på kapitlet "LINQ Everywhere", tenker jeg at det å diskutere så mange elementer som ikke er stabilt, sannsynligvis ikke var nyttig for de fleste lesere. Til slutt ville jeg elsket å ha sett noen få kapitler viet til en "LINQ kokebok" med vanlige "oppskrifter" (si, tokenizing en streng, noen datavalidering, analysering av en CSV-fil, etc.).

Hvis du jobber med .NET (spesielt C #) og ikke vet noe eller veldig lite om LINQ, foreslår jeg at du leser denne boken så snart som mulig. Selv om du ikke tror at LINQ vil være nyttig for arbeidet ditt, er jeg sikker på at du har minst ett aha-øyeblikk etter å ha lest det. Hvis du allerede bruker LINQ, kan denne boken være litt for grunnleggende for dine behov. Selv om forfatterne gjør en så god jobb med å gi kritisk basiskunnskap, hvis du lærte LINQ i en "hopp rett i" -modus, kan du få virkelig verdi ut av essensiell LINQ .

J.Ja

Avsløring av Justin's tilknytning til bransjen: Justin James har en arbeidsordning med Microsoft for å skrive en artikkel for MSDN Magazine . Han har også en kontrakt med Spiceworks for å skrive produktkjøpsguider.

-------------------------------------------------- -------------------------------------

Få ukentlige utviklingstips i innboksen Hold utviklerferdighetene dine skarpe ved å registrere deg på TechRepublics gratis nyhetsbrev for Web Developer, levert hver tirsdag. Abonner automatisk i dag!

© Copyright 2020 | mobilegn.com