

Michiel Rotteveel is sinds 1986 werkzaam in de ICT, eerst als systeembeheerder, later als coördinator I&A, consultant, hoofd applicatieontwikkeling en informatiemanager.
Meer over Michiel RotteveelLeren programmeren in C#
Complete bundel
Paperback Nederlands 2018 2e druk 9789057523878Samenvatting
Deze 2e druk vervangt en verbetert de vorige druk (met ISBN 9789057523649).
De serie 'Leren programmeren in C#' is eerder verschenen in losse delen met de volgende titels:
- Deel 1: Introductie: 9789057523502
- Deel 2: Gegevens ISBN 9789057523700
- Deel 3: Databases ISBN 9789057523755
- Deel 4: Objectoriëntatie ISBN 9789057523533
Op verzoek combineren we de delen in één bundel, met een aantrekkelijke prijsstelling.
Deel 1: Introductie Met behulp van dit boek leer je de beginselen van het programmeren, aan de hand van de programmeertaal C# (C sharp). Behalve bij de taal C# wordt ook stilgestaan bij algemene programmeerprincipes.
Deel 2: Gegevens Dit boek behandelt hoe je binnen C# omgaat met gegevens. Hoe stel je lijstjes op en laat je deze gegevens zien aan de gebruiker? Hoe zoek je gegevens op? Eerst volgt het werken met Arrays: een oude techniek die omslachtiger is dan de List, die daarna wordt besproken. Vervolgens komen verschillende manieren om tekst op te slaan ter sprake. Na het aloude tekstbestand (.txt), en via .csv-bestanden en Windows registry worden .xml-bestanden geïntroduceerd. Behalve het omgaan met teksten is ook van belang hoe je videobestanden en afbeeldingen kunt inlezen en laten zien.
Deel 3: Databases In dit boek ligt de nadruk op het benaderen en verwerken van gegevens in databases met C#. Databases zijn programma's die gemaakt zijn om met grote hoeveelheden data om te gaan. Ze zijn snel, veilig en robuust, tenminste als je er goed mee omgaat.
Deel 4: Objectoriëntatie Objecten zijn stukjes programma die je makkelijk opnieuw kunt gebruiken. Door objectgeoriënteerd te programmeren wordt de ontwikkeltijd korter en je programma onderhoudbaar.
Specificaties
Lezersrecensies
Inhoudsopgave
U kunt van deze inhoudsopgave een PDF downloaden
Inleiding Deel 1: Introductie 3
Hoofdstuk 1 De programmeeromgeving (IDE) 5
Wat is een IDE? 5
Opstarten 5
Naam geven 7
Spelregels naamgeving 8
De IDE 9
Je eerste programma 9
De eerste handeling 10
Debuggen 11
Properties (Eigenschappen) 11
De Code Editor 11
Wat weet je nu? 13
Hoofdstuk 2 Controls 15
Button 15
TextBox 15
Label 16
RadioButton 16
Webbrowser 17
Opdracht Controls 1 17
Hoofdstuk 3 Variabelen 19
Wat is een variabele? 19
De tafel van X 19
Werking van een variabele 19
Typen variabelen 21
Getallen 22
Teksten 24
Logische variabele 27
DatumTijd-variabele 28
Voorbeeld Datum 28
Omzetten van variabelen: van teken naar getal 31
Omzetten van variabelen: van getal naar tekst 31
Bereik van variabelen 31
Opdracht Variabelen 1: Naam 32
Opdracht Variabelen 2: Invoer getallen 32
Hoofdstuk 4 Foutafhandeling 33
Wat is foutafhandeling? 33
Foutafhandeling met de MessageBox 33
Voorbeeld Foutafhandeling 34
Opdracht Foutmelding 1: Messagebox 37
Foutafhandeling met de ErrorProvider 37
Opdracht Foutmelding 2: ErrorProvider 38
Hoofdstuk 5 Selectie 39
Wat is een selectie? 39
Hoe maak je een selectie 39
Opdracht Selectie 1: Leeftijdchecker 1 39
Opdracht Selectie 2: Leeftijdchecker 2 40
Nesten 40
Opdracht Selectie 3: Nesten 40
Opdracht Selectie 4: CheckBoxen 40
Opdracht Selectie 5: AddYears 40
Opdracht Selectie 6: DateTimePicker 41
Opdracht Selectie 7: Motorrijbewijs * 41
Opdracht Selectie 8: Soort motor * 41
If ... else 42
Opdracht Selectie 9: Maandnamen met if ... else 43
Switch 43
Opdracht Selectie 10: Maandnamen met switch 45
Hoofdstuk 6 Herhaling 47
Wat is een herhaling? 47
Voorbeeld Strafregels schrijven 47
Opdracht Herhaling 1: Rij getallen zonder loop 48
Het gebruik van een loop (herhaling) 48
Opdracht Herhaling 2: Rij getallen met loop 49
Herhaling met behulp van een variabele 49
Opdracht Herhaling 3: Rij getallen met variabele loop 50
Herhaling 50
Opdracht Herhaling 4: De tafel van ... 51
Opdracht Herhaling 5: Meerdere tafels 51
Opdracht Herhaling 6: Machten 51
Opdracht Herhaling 7: Faculteit uitrekenen 52
Opdracht Herhaling 8: De rij van Fibonacci * 52
Meer loops 53
do ... while 53
Opdracht Herhaling 9: Do ... while-loop 53
for 53
Opdracht Herhaling 10: for ... 54
foreach 54
Hoofdstuk 7 Events 55
Wat is een event? 55
Het gebruik van events 56
Voorbeeld-event: waar ben ik? 56
Toepassing 59
Opdracht Event 1: Geheimschrijver 59
Opdracht Event 2: Kleurenwisselaar * 59
Hoofdstuk 8 Methoden 61
Wat is een methode? 61
Hoe maak je een methode? 62
Voorbeeld Methode 62
Opdracht Methode 1: Welkomstboodschap 63
Opdracht Methode 2: Oppervlakte 63
Opdracht Methode 3: Omtrek 63
Hoofdstuk 9 Arrays 65
Wat is een Array? 65
Hoe maak je een Array? 65
Opdracht Array 1: Hele getallen 66
Opdracht Array 2: Decimale getallen 66
Opdracht Array 3: Teksten 66
Toegang tot een element van de Array 66
Opdracht Array 4: Hele getallen 66
Opdracht Array 5: Teksten 66
Opdracht Array 6: Teksten en nummers 67
Bewerkingen met Arrays 67
Opdracht Array 7: Een element van een array bewerken 67
Opdracht Array 8: De elementen van twee arrays combineren 68
Herhaling en Arrays 68
Een Array sorteren 69
Opdracht Array 9: Getallen sorteren 69
Opdracht Array 10: Teksten sorteren 69
Opdracht Array 11: Bewerken 69
Problemen met Arrays 69
Opdracht Array 12: Resize 69
Opdracht Array 13: Te groot 70
Opdracht Array 14: Letters tellen * 70
Hoofdstuk 10 Tekenen 71
Waarom tekenen? 71
Eenvoudig tekenen 71
Voorbeeld Tekenen: Lijn trekken 71
Opdracht Tekenen 1: Verticale tralies 72
Opdracht Tekenen 2: Horizontale tralies 72
Opdracht Tekenen 3: Raster 72
Interactief tekenen met invoervelden 72
Opdracht Tekenen 4: Variabel raster 73
Interactief tekenen met events 74
Opdracht Tekenen 5: Een halve lijn 74
Opdracht Tekenen 6: De hele lijn 74
Andere objecten tekenen 75
Opdracht Tekenen 7: Rechthoek 75
Opdracht Tekenen 8: Rechthoek met diagonaal * 76
Opdracht Tekenen 9: Ellips 76
Tekenen door meerdere punten 76
Opdracht Tekenen 10: Lijnen 77
Opdracht Tekenen 11: Golven * 78
Hoofdstuk 11 Klasse (class) 79
Wat is een class? 79
Interface 79
Encapsulation 79
Herbruikbaar 80
Gebruik van een klasse 80
Het maken van de klasse (beschrijving) 80
Vormgeven van de klasse 81
Public versus Private 81
Eigenschappen (properties) 81
Opdracht Klasse 1: Rechthoek aanmaken 83
Gebruik van een klasse 83
Constructor 84
Opdracht Klasse 2: Rechthoekberekeningen 86
Opdracht Klasse 3: Rechthoek-constructor 86
Het invoerveld 86
Overloaden 87
Opdracht Klasse 4: Rechthoek overloaden 87
Het tekenen 88
Opdracht Klasse 5: Rechthoek tekenen 88
Uitbreiden van de klasse 88
Opdracht Klasse 6: Rechthoek uitbreiden 91
Afsluiting 93
Bijlagen 95
ASCII tabel deel 1: Besturingscodes 95
ASCII tabel deel 2: Tekens 96
Begrippen 97
Naming conventions C 98
Deel 2: Gegevens
Inleiding Deel 2: Gegevens 105
Hoofdstuk 1: Interne gegevens 107
Array 107
Voorbeeld Array 1: Smoothies met ingrediëntenlijst 107
Opdracht Array 1: Telefoonmerkenlijst 123
Wat heb je nu geleerd? 124
Value type versus Reference type 124
Voorbeeld Array 2: Smoothies met uitgebreide ingrediëntenlijst 125
Opdracht Array 2: Uitgebreide telefoonmerkenlijst 143
Wat heb je nu geleerd? 143
List<T> 144
Voorbeeld List<T> 1: Ingrediëntenlijst 144
Opdracht List<T> 1: Telefoonmerkenlijst 146
Wat heb je nu geleerd? 147
List versus Array 147
Enumerable (opsommingen) 147
Voorbeeld Enum 1: Landenlijst 148
Opdracht Enum 1: Telefoonmerkenlijst 153
Voorbeeld Enum 2: Uitgebreide enum 153
Wat heb je nu geleerd? 172
Eenvoudige objecten (Structs) 173
Voorbeeld Struct 1: Postcode 173
Opdracht Struct 1: 3D-punt 181
Opdracht Struct 2: Telefoonnummer 181
Opdracht Struct 3: Geografi sche coördinaten 181
Opdracht Struct 4: Geografi sche coördinaten aanvulling * 182
Wat heb je nu geleerd? 182
Hoofdstuk 2: Bestanden (externe gegevens) 183
Tekstbestanden 183
Voorbeeld Tekstbestanden 1: String-variabele opslaan 184
Opdracht Tekstbestanden 1: String Array wegschrijven 188
Voorbeeld Tekstbestanden 2: Gedeelte van een string Array opslaan 188
Opdracht Tekstbestanden 2: String Array meerdere selecties 190
Opdracht Tekstbestanden 3: Bewaren gebruikersinstellingen * 190
Wat heb je nu geleerd? 191
.csv-bestanden (Comma Separated Values) 191
Voorbeeld .csv-bestanden 1: .csv-bestand aanmaken vanuit formulier 192
Opdracht .csv-bestanden 1: Flexibele opslag 198
Opdracht .csv-bestanden 2: Klassenlijst 198
Voorbeeld .csv-bestanden 2: .csv-bestand inlezen 199
Opdracht .csv-bestanden 3: Klassenlijst inlezen 199
Opdracht .csv-bestanden 4: Klassenlijst inlezen Extra * 199
Wat heb je nu geleerd? 200
Afbeeldingen 200
Voorbeeld Afbeeldingen 1: Inlezen afbeeldingen 200
Opdracht Afbeeldingen 1: Liquid layout-form 205
Opdracht Afbeeldingen 2: Instellingen 205
Opdracht Afbeeldingen 3: Crashbestendig maken 206
Opdracht Afbeeldingen 4: Draaien en fl ippen 206
Opdracht Afbeeldingen 5: Kopiëren 206
Opdracht Afbeeldingen 6: Afbeeldingen en tekenen 207
Opdracht Afbeeldingen 7: Th umbnails * 207
Wat heb je nu geleerd? 207
Video 207
Voorbeeld Video 208
Opdracht Video 1: Extra knoppen en bestandsinformatie 215
Opdracht Video 2: Extra instellingen toevoegen 215
Opdracht Video 3: Meerdere bestanden selecteren en afspelen * 215
Wat heb je nu geleerd? 215
Hoofdstuk 3: Systeembestanden (externe gegevens) 217
Windows registry 217
Voorbeeld registry: Opvragen gegevens 218
Wat heb je nu geleerd? 221
XML-bestanden 221
Voorbeeld XML 1: Inlezen XML-bestand 222
Opdracht XML 1: ListBox vullen vanuit XML 229
Opdracht XML 2: Extra selectieveld 229
Opdracht XML 3: DataGridView 229
Opdracht XML 4: Weerstation * 230
Voorbeeld XML 2: Schrijven naar een XML-bestand 230
Opdracht XML 5: Landenlijst 233
Wat heb je nu geleerd? 233
Nawoord 235
Deel 3: Databases
Inleiding Deel 3: Databases 239
C# en databases 239
Benodigde voorkennis 239
Hoe werk je met dit boek? 240
Hoofdstuk 1 Introductie databases 241
Wat is een database? 241
Relationele databases 241
De databases in dit boek 243
Hoofdstuk 2 Hoe werkt het? 245
DataSets 245
Voorbeeld 1: Nieuwe DataSet aanmaken met één DataTable 246
Opdracht DataSet 1: Garage / tabel Auto’s 249
Opdracht DataSet 2: Landen, tabellen en werelddelen 249
Binding data aan controls 250
Voorbeeld 2: DataSet-koppeling (binding) met controls 251
Opdracht Binding 1: Koppelen van controls 254
Opdracht Binding 2: Garages 254
1-op-n master-detail-binding 255
Voorbeeld 3: 1-op-n (1:n) koppeling 255
Opdracht 1-op-n-koppeling 1: Facturen 264
Opdracht 1-op-n-koppeling 2: Wielerploeg 264
Opdracht 1-op-n-koppeling 3: Provincies 265
Look-up-tabellen in een DataGridView 265
Voorbeeld 4: Look-up DataTable 265
Opdracht look-up DataTable 1: Facturen 273
Opdracht look-up DataTable 2: Auto’s 273
Value & display members 274
Voorbeeld 5: Value & display members 274
Opdracht Value- & DisplayMembers 1: Auto’s 276
Opdracht Value- & DisplayMembers 2: Eigenaren 276
N-op-m (n:m) koppeling tussen DataTables 276
Voorbeeld 6: n:m-koppeling 277
Opdracht n:m-koppeling 1: Auto’s en eigenaren 290
Opdracht n:m-koppeling 2: Aanvullen voorbeeld 6 n:m-koppeling 291
Opdracht n:m-koppeling 3: Klassen en leerlingen * 291
Wat heb je geleerd? 292
Hoofdstuk 3 Database versus Dataset 293
Inleiding 293
Desktop-database: Microsoft Access 293
Voorbeeld 7: Microsoft Access 294
Opdracht Access 1: Rugbyteams 309
Opdracht Access 2: Auto’s en eigenaren 309
Opdracht Access 3: Klassen en leerlingen * 310
Opdracht Access 4: Politici en partijen 310
Hoofdstuk 4 Drag & Drop 311
Inleiding 311
Voorbeeld 8: Drag & Drop 312
Opdracht Drag & Drop 1: Vakantiewoningen 316
Opdracht Drag & Drop 2: Kastelen en pachters * 316
Wat heb je geleerd? 317
Hoofdstuk 5 Multiformulierapplicatie 319
Eén applicatie, meerdere formulieren 319
Voorbeeld 9: Gegevensoverdracht tussen formulieren 319
Opdracht Multiformulier 1: Rugbyteams 326
Opdracht Multiformulier 2: Auto’s en eigenaren 326
Meerdere formulieren bij start applicatie 326
Voorbeeld 10: Login-formulier 326
Opdracht Multiformulier 3: Login 336
Wat heb je geleerd? 336
Hoofdstuk 6 Online databases 337
MySQL 337
Voorbeeld 11: MySQL 337
Opdracht MySQL 1: Adressenlijst 345
Opdracht MySQL 2: Meerdere adressen 345
Opdracht MySQL 3: Voetbaluitslagen 345
Opdracht MySQL 4: Classic Models compleet * 346
Microsoft SQL Server Express 346
Opdracht SQL Server Express 1 * 346
Wat heb je geleerd? 346
Nawoord 349
Deel 4: Objectoriëntatie
Inleiding Deel 4: Objectoriëntatie 353
C# OO & UML 353
Benodigde voorkennis 354
Hoe werk je met dit boek? 354
Hoofdstuk 1 Voorbereiding 355
Objectoriëntatie 355
Kenmerken 355
UML 355
Voorbereiding voorbeeldprogramma 356
Wat heb je geleerd? 362
Hoofdstuk 2 Klassen (Classes) 363
Beschrijving 363
Inhoud (instantie) 363
UML 363
Vuistregels 364
Soorten klassen 364
Naamgeving 365
Voorbeeld 2.1: Aanmaken klasse Konijn 365
Opdrachten Klassen 366
Opdracht 2.1: Aanmaken klasse Gras 366
Opdracht 2.2: Aanmaken klasse Venijnboom 366
Opdracht 2.3: Aanmaken klasse Vingerhoedskruid 366
Opdracht 2.4: Aanmaken klasse Koe 366
Opdracht 2.5: Aanmaken klasse Lynx 366
Opdracht 2.6: Aanmaken klasse Beer 366
Wat heb je geleerd? 366
Hoofdstuk 3 Encapsulation, variabelen en eigenschappen 367
Encapsulation 367
Naamgeving variabelen én eigenschappen 368
Variabelen 368
UML 369
Voorbeeld 3.1: Interne variabelen 370
Visual Studio klassendiagram 371
Voorbeeld 3.2: Visual Studio klassendiagram genereren 371
Eigenschappen (properties) 372
Voorbeeld 3.3: Eigenschappen 373
Voorbeeld 3.4: ReadOnly-eigenschappen 374
Voorbeeld 3.5: Eigenschappen met een complex type toevoegen 375
Opdrachten Encapsulation, variabelen en eigenschappen 376
Opdracht 3.1: Voorbereiding klasse Gras 376
Opdracht 3.2: De klasse Gras implementeren 377
Verkorte schrijfwijze eigenschappen 378
Voorbeeld 3.6: Verkorte schrijfwijze eigenschappen 378
Opdracht Verkorte schrijfwijze 381
Opdracht 3.2: Verkorte schrijfwijze: de klasse Venijnboom 381
Wat heb je geleerd? 382
Hoofdstuk 4 Methoden 383
Beschrijving 383
Eisen 383
Overloaden 383
UML 384
Voorbeeld 4.1: Methoden toevoegen aan de klasse Konijn 385
Opdrachten Methoden 390
Opdracht 4.1: Methoden toevoegen aan de klasse Koe 390
Opdracht 4.2: Methoden toevoegen aan de klassen Gras en Venijnboom 390
Reflectie 390
Wat heb je geleerd? 390
Hoofdstuk 5 Constructor 391
Beschrijving 391
Eisen constructor 391
UML 391
Voorbeeld 5.1: Constructors voor Konijn 392
Opdrachten Constructor 393
Opdracht 5.1: Constructors voor Koe 393
Opdracht 5.2: Constructors voor Gras en Venijnboom 393
Voorbeeld 5.2: Konijn tekenen 394
Opdrachten Tekenen 395
Opdracht 5.3: Tekenen van Koe 395
Opdracht 5.4: Tekenen van Gras en Venijnboom 395
Wat heb je geleerd? 396
Hoofdstuk 6 Structs 397
Beschrijving 397
Stack 397
Heap 397
Eigenschappen struct 398
UML 399
Voorbeeld 6.1: NatSimII struct Snelheid 399
Wat heb je geleerd? 401
Hoofdstuk 7 Compositie 403
Beschrijving 403
Voorbeeld 7.1: Compositie klasse Rechthoek 404
Wat heb je geleerd? 407
Hoofdstuk 8 Overerving 409
Beschrijving 409
Voordelen 409
UML 409
NatSimII 411
Erven 412
Afspraken 413
Voorbeeld 8.1: Overerving 413
Opdracht Overerving 426
Opdracht 8.1: Klasse Vingerhoedskruid 426
Wat heb je geleerd? 426
Hoofdstuk 9 Abstracte klasse 427
Beschrijving 427
UML 427
Voorbeeld 9.1: Abstract maken van de klasse Grafi schObject 427
Opdrachten Abstracte klassen 428
Opdracht 9.1: Abstract maken van de klasse Leven 428
Opdracht 9.2: Abstract maken van de klasse Plant 428
Wat heb je geleerd? 428
Hoofdstuk 10 Oefening, uitbouwen van het project 429
Voorbeeld 10.1: Klasse Dier 429
Opdracht Typering object 431
Opdracht 10.1: IsDier() 431
Voorbeeld 10.2: Abstracte methode implementeren 431
Opdrachten Uitbouwen van het project 433
Opdracht 10.2: Vleeseter 433
Opdracht 10.3: Methode Eet() bij Vleeseter 433
Opdracht 10.4: Alleseter 433
Opdracht 10.5: Methode Eet() bij Alleseter 433
Voorbeeld 10.3: Aanpassen van de klasse Konijn 434
Opdracht Vernieuwde klasse 435
Opdracht 10.6: Nieuwe klasse Koe 435
Hoofdstuk 11 Interfaces 437
Beschrijving 437
UML 438
Voorbeeld 11.1: Interface IBewegendObject 438
Opdracht Interfaces 442
Opdracht 11.1: Klok toevoegen 442
UML-klassendiagram Dier 442
Wat heb je geleerd? 442
Hoofdstuk 12 Delegates 443
Voorafje 443
Beschrijving 443
UML 443
Aanmaken delegate 444
Voorbeeld 12.1: Delegate defi niëren, aanmaken en gebruiken 444
Waarom delegates? 448
Callback-functies 448
Voorbeeld 12.2: Callback delegate 449
Opdrachten Delegate 452
Opdracht 12.1: De ProgressBar 452
Opdracht 12.2: Spreektijd 452
Opdracht 12.3: Spreektijd met eindtijdwaarschuwing * 452
Multithreading 453
Wat heb je geleerd? 453
Hoofdstuk 13 Events 455
Beschrijving 455
UML 456
Voorbeeld 13.1: Timer event 457
Voorbeeld 13.2: Beweging 459
Opdrachten Completeren formulier 465
Opdracht 13.1: Toevoegen code 465
Opdracht 13.2: Test het programma 465
Voorbeeld 13.3: Het eerste zelfbouwevent 465
Voorbeeld 13.4: Event arguments 468
Voorbeeld 13.5: Keten van events 471
NatSimII tot nu toe 477
Opdrachten Events 478
Opdracht 13.3: Extra informatie tonen 478
Opdracht 13.4: Nog meer informatie tonen * 478
Collision detection 478
Voorbeeld 13.6: Collision detection 479
Opdrachten Collision detection 483
Opdracht 13.5: Red de Venijnboom 483
Opdracht 13.6: Vleeseter, Jaguar 483
Opdracht 13.7: Vleeseter, Lynx 483
Opdracht 13.8: Alleseter, Beer * 484
Opdracht 13.9: Red de Venijnboom opnieuw 485
Opdracht 13.10: Conversie van Leven naar Venijnboom 485
Opdracht 13.11: Conversie van Leven naar Vingerhoedskruid 485
Voorbeeld 13.7: Zaaien 485
Wat heb je geleerd? 486
Hoofdstuk 14 Oefening baart kunst 487
Opdrachten NatSimII 487
Opdracht 14.1: Venijnboom 487
Opdracht 14.2: Vingerhoedskruid 487
Opdracht 14.3: Zaaien 487
Opdracht 14.4: Over gras lopen * 487
Opdracht 14.5: Voortplanting 487
Opdracht 14.6: Voortplanten Planten * 488
Opdracht 14.7: Shooting game * 488
Opdracht 14.8: Snelheid wijzigen * 488
Opdracht 14.9: Plaatjes * 488
Opdracht 14.10: Geluid * 488
Opdracht 14.11: Collision detection * 488
Opdracht 14.12: Evenwicht * 489
Nawoord 491
Bijlagen 493
Cookbook Events 493
UML-diagram NatSimII 496
Naming conventions C# 498
Bronvermelding 499
Anderen die dit boek kochten, kochten ook
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