

Bill Wagner is co-founder of and .NET consultant for SRT Solutions. A nationally recognized independent expert on .
Meer over Bill WagnerHandboek Effectiever programmeren in C#
Verbeter je kennis van C# met 50 adviezen - Bijgewerkt voor C# 7.0
Paperback Nederlands 2018 9789463560412Samenvatting
In het 'Handboek Effectiever programmeren in C#' identificeert en belicht de internationale .NET-specialist Bill Wagner 50 gemiddeld-tot-geavanceerde technieken om robuuste en goedwerkende C# 7.0-code te schrijven. Met de groeiende verfijning van de C#-taal en haar ontwikkelaarsgemeenschap in het achterhoofd presenteert Wagner krachtige nieuwe oplossingen voor problemen waar u dagelijks tegenaan kunt lopen.
De duidelijke uitleg van Wagner in zijn eerdere boeken over C#, plus zijn experttips en realistische codevoorbeelden zijn onmisbaar gebleken voor honderdduizenden ontwikkelaars. In deze uitgave wordt daar op voortgeborduurd aan de hand van duidelijke uitleg, vele tips en zinvolle voorbeelden voor moderne C#-programma's. Dit boek is daarbij geactualiseerd voor de nieuwe functies van C# 7.0, opdat u vertrouwde taken efficiënter en effectiever kunt uitvoeren.
Op basis van zijn rijke C#-ervaring en voortrekkersrol in vele internationale C#-stuurgroepen gaat Wagner in op objectgeoriënteerde, functionele en servicegeoriënteerde aanpak van het beheer van gegevens in C#, betere manieren om uw ideeën op gebruikers en andere programmeurs over te brengen en nieuwe mogelijkheden om krachtige asynchrone en dynamische programmeertechnieken in te zetten.
De 50 adviezen zijn verdeeld over zes hoofdstukken, in de volgende categorieën:
- Werken met gegevenstypen
- API-ontwerp
- Taakgericht asynchroon programmeren
- Parallelle verwerking
- Dynamisch programmeren
- Deelnemen aan de C#-community
- Als u al een succesvol C#-programmeur bent, dan wordt u met dit boek een uitstekend programmeur!
Specificaties
Lezersrecensies
Inhoudsopgave
Voor wie is dit boek bedoeld? xiv
Over de inhoud xiv
Codeconventies xv
Feedback geven xvi
Dankwoord xvi
Over de auteur xvii
1. Werken met gegevenstypen 1
Advies 1: Gebruik eigenschappen in plaats van toegankelijke data members 2
Advies 2: Kies impliciete eigenschappen boven variabele data 8
Advies 3: Kies voor constante value-typen 12
Advies 4: Onderscheid maken tussen value-typen en reference-typen 19
Advies 5: Zorg ervoor dat 0 een geldige status voor value-typen is 24
Advies 6: Zorg ervoor dat de eigenschappen zich gedragen zoals gegevens 29
Advies 7: Beperk het bereik van een type met tuples 34
Advies 8: Definieer lokale functies op anonieme typen 40
Advies 9: Begrijp de relaties tussen de vele verschillende begrippen van gelijkheid 46
Advies 10: Begrijp de valkuilen van GetHashCode () 54
2. API-ontwerp 63
Advies 11: Vermijd conversieoperatoren in uw API’s 64
Advies 12: Gebruik optionele parameters om overloading van methoden te minimaliseren 68
Advies 13: Beperk de zichtbaarheid van uw typen 72
Advies 14: Geef de voorkeur aan het definiëren en implementeren van interfaces boven overerving 76
Advies 15: Begrijp hoe interfacemethoden verschillen van virtuele methoden 84
Advies 16: Implementeer het eventmodel voor meldingen 89
Advies 17: Vermijd het retourneren van verwijzingen naar interne klassenobjecten 95
Advies 18: Kies overschrijvingen boven eventhandlers 99
Advies 19: Overload geen methoden die zijn gedefinieerd in basisklassen 102
Advies 20: Begrijp hoe events meer runtimekoppelingen tussen objecten genereren 106
Advies 21: Declareer alleen nonvirtual events 109
Advies 22: Maak methodegroepen die duidelijk, minimaal en volledig zijn 115
Advies 23: Geef deelklassen deelmethoden voor constructors, mutators en eventhandlers 122
Advies 24: Vermijd ICloneable omdat het uw ontwerpkeuzen beperkt 127
Advies 25: Beperk arrayparameters tot params-arrays 132
Advies 26: Schakel directe foutrapportage in bij iterators en asyncmethoden met behulp van lokale functies 136
3. Taakgericht asynchroon programmeren 143
Advies 27: Gebruik async-methoden voor asynchroon werk 144
Advies 28: Schrijf nooit async void-methoden 148
Advies 29: Vermijd het samenstellen van synchrone en asynchrone methoden 154
Advies 30: Gebruik async-methoden om threadtoewijzingen en contextwisselingen te vermijden 158
Advies 31: Vermijd het onnodig ordenen van context 160
Advies 32: Asynchroon werk samenstellen met Task-objecten 164
Advies 33: Overweeg de implementatie van het taakannuleringsprotocol 170
Advies 34: Cache gegeneraliseerde async returntypen 177
4. Parallelle verwerking 181
Advies 35: Leer hoe PLINQ parallelle algoritmen implementeert 182
Advies 36: Construeer parallelle algoritmen met exceptions in het achterhoofd 194
Advies 37: Gebruik de threadpool in plaats van threads te maken 200
Advies 38: Gebruik BackgroundWorker voor cross-thread communicatie 206
Advies 39: Cross-thread aanroepen in XAML-omgevingen begrijpen 209
Advies 40: Gebruik lock() als uw eerste keuze voor synchronisatie 218
Advies 41: Gebruik het kleinst mogelijke bereik voor vergrendelhandles 225
Advies 42: Vermijd het aanroepen van onbekende code in
vergrendelde secties 229
5. Dynamisch programmeren 235
Advies 43: Begrijp de voor- en nadelen van dynamisch typeren 236
Advies 44: Gebruik dynamisch typeren om te profiteren van het runtimetype van generic type parameters 245
Advies 45: Gebruik DynamicObject of IDynamicMetaObjectProvider voor gegevensgestuurde dynamische typen 248
Advies 46: Begrijp hoe u de Expression API gebruikt 259
Advies 47: Minimaliseer dynamische objecten in public API‘s 266
6. Deelnemen aan de C#-community 273
Advies 48: Zoek het beste antwoord, niet het populairste antwoord 274
Advies 49: Neem deel aan specs en code 276
Advies 50: Overweeg om werkwijzen met analysers te automatiseren 277
Index 281
Rubrieken
- Advisering
- Algemeen management
- Coaching en trainen
- Communicatie en media
- Economie
- Financieel management
- Inkoop en logistiek
- Internet en social media
- IT-management / ICT
- Juridisch
- Leiderschap
- Marketing
- Mens en maatschappij
- Non-profit
- Ondernemen
- Organisatiekunde
- Personal finance
- Personeelsmanagement
- Persoonlijke effectiviteit
- Projectmanagement
- Psychologie
- Reclame en verkoop
- Strategisch management
- Verandermanagement
- Werk en loopbaan