.NET Rocks - podcast 441 tot en met 450

Ingediend door Dirk Hornstra op 11-aug-2026 22:31

Als je zelf de podcasts van .NET Rocks wilt beluisteren, die zijn hier te vinden: https://dotnetrocks.com/

Let op: dit zijn oude afleveringen. De meeste zaken zullen dus redelijk verouderd zijn. Laten we het erop houden dat je de afleveringen kunt overslaan en als er een echt interessante uitzending is, dan noem ik dat expliciet.

PC 441: In deze uitzending is Shawn Wildermuth te gast. Hij is fanatiek bezig met Silverlight, rond deze periode is Silverlight 3.0 uitgebracht. Niet heel veel nieuwe features, maar wat er toegevoegd is, is wel een hele verbetering. Zo noemt Shawn iets dat je anders allemaal zelf handmatig moest programmeren, maar dat heeft Microsoft nu ingebouwd in deze versie. Maar goed, Silverlight is uiteindelijk gestopt, dus je kunt de uitzending overslaan. In 2025 heb ik Shawn live zien presenteren in Groningen, bij DEVCAMPNOORD, georganiseerd door Devnetnoord (link).

PC 442: Dino Esposito is te gast (is eerder bij .NET Rocks geweest), onderwerp is architectuur. Kun je overslaan. Dino heeft veel boeken geschreven, het nadeel in onze "business" is dat die boeken snel verouderen. Een boek wat in 2014 geschreven is, is eigenlijk al niet meer interessant. Ik deel hier dan toch nog even het boek "Developer Reference- Clean Architecture with .NET", deze is namelijk uit 2024 en daardoor toch nog wel "redelijk recent" te noemen.

PC 443: Kate Gregory is te gast, ook een vaste gast van de show. Richard heeft deze show de titel gegeven dat "ze nog steeds in c++ programmeert". Kate geeft aan dat het voor sommige acties nog nodig is. Ook zit niet alles in .NET, daarvoor heb je de Windows API's nodig. Ook hier, een "praatprogramma", dus geen interessante zaken gehoord.

PC 444: In deze uitzending is Ted Neward te gast. Ter sprake komt dat Oracle Sun opgekocht heeft. Vooral veel speculatie "waarom" en uiteindelijk de conclusie dat "het maar goed is dat het gebeurd is", want het ging niet zo goed met Sun: dan waren de producten op straat komen te liggen en was de toekomst afhankelijk van hobbyisten geweest. Java, mySQL, PostgreSQL zijn een aantal producten waar het om gaat.

PC 445: Kenn Scribner is te gast, onderwerp is REST. Nu dagelijkse kost, maar toen nog redelijk nieuw. Ook wordt uitgelegd dat je niet alles met REST moet doen, als je transacties nodig hebt, dan zul je dat toch met SOAP moeten doen. Ken heeft ten tijde van deze uitzending 7 boeken geschreven. Zoals hij zelf zegt: "een boek over iets schrijven is een goed excuus om diep in de materie te duiken, zaken te onderzoeken hoe het werkt. En je verdient er ook nog geld mee.". In de uitzending wordt gezegd dat WCF een grote motor onder REST is. Dat Kenn destijds één van de weinige mensen is die MVC een goede basis vindt voor een REST-configuratie. Ken zijn eigen website was endurasoft.com, maar deze is niet meer online. Via archive.org kun je nog een oude versie bekijken. In deze uitzending wordt ook gesproken over de dissertatie van REST door Roy Fielding. Online kun je die hier lezen. Roy is ook betrokken geweest bij de start van HTTP, dus iemand die weet waarover hij spreekt.

PC 446: Te gast zijn Doug Turnure en Johanna White. Onderwerp is "ramping up!", een site van Microsoft waar MS probeert om developers op stoom te krijgen. Dus kom je "uit Java" en wil je .NET doen - volg dit pad. Ben je een VB6-developer en wil je nu .NET doen - volg dit pad. Verschillende soorten materiaal, je kunt theoretisch door zaken heenlopen, maar ook volledig of deels code-gebaseerd. De ramp-up site bestaat niet meer, die verwees toen ook al deels naar de "learn-site" van Microsoft, die site is uiteindelijk wel actief gebleven. Ik gebruik die om mijn certificeringen te halen, door een gebrek aan tijd zit ik niet meer op die site, want je kunt er heel veel informatie vinden: link. Doug doet ook veel met presentaties, dus Carl vraagt of hij een lijstje met "wel doen" en "niet doen" heeft. Dat blijft een beetje in het midden, wel het punt dat je niet al je tekst in de slides moet zetten: dan gaat het publiek lezen en niet meer luisteren naar wat je zegt. Je moet het gebruiken om je verhaal visueel te ondersteunen. Hierbij wordt ook nog verwezen naar de presentatie van David Byrne, zanger van de Talking Heads over "I love Powerpoint": link.

PC 447: In deze uitzending zijn Peter Debetta en Adam Machanic te gast, onderwerp is "het maken van goede SQL databases". Hoewel de uitzending al wat ouder is, wel de moeite waard om te beluisteren. Want zo hoor ik hier dat rond deze tijd het databasetype varchar(max) beschikbaar kwam, daarvoor gebruikte je altijd het TEXT type. De opzet van Carl en Richard is dat bij hun uitzendingen over SQL er vaak in de diepte gedoken wordt, deze uitzending moet de basis van SQL Server behandelen. Zo komen IDENTITY-velden ter sprake. Vaak voegen we een veld toe, dat wordt een auto-increment waarde en je bent klaar. 1 van de gasten geeft aan dat hij dat wel gebruikt, maar bij sommige tabellen de sleutel maakt op basis van echte unieke waardes (bijvoorbeeld naam, BSN (burger service nummer) en geboortedatum). Ook worden GUIDs genoemd. Die kun je als uniek veld gebruiken, maar de mannen raden dit af. Omdat dit totaal willekeurige waardes zijn, heeft dat impact op de paging van de data. Wel wordt gezegd dat je ook opvolgende GUIDs kunt genereren, misschien kan ik dat nog wel eens voor iets gebruiken (of nodig hebben). Ook komen indexen voorbij, in de systeem-tabellen geeft SQL Server aan welke indexen zouden kunnen vervallen (omdat ze geen toegevoegde waarde hebben) en welke juist toegevoegd zouden moeten worden. Wel moet je dit nog zelf valideren. 1 van de gasten noemt het voorbeeld van een klant die een script had gemaakt om automatisch al die "benodigde" indexen aan te maken. Hij had toen een tabel waarbij hij moest scrollen om alle indexen op die tabel te kunnen bekijken: dat is natuurlijk nooit goed! Blobs komen voorbij, eigenlijk zou je die niet moeten gebruiken. 1 van de gasten gebruikt het in een rapportage-database om kleine GIF-bestanden in op te slaan. Ook heb je het XML-veld. De gasten geven aan dat als je met auditing zit, je de data waarschijnlijk in een blob-veld wilt opslaan. Want in een XML veld wordt optimalisatie doorgevoerd, extra whitespace wordt verwijderd e.d. Hierbij valt ook de term CLOB, character large object. Ook wordt er gesproken over "in row" en "out of row". Als je over data een query uitvoert en alle (grote) teksten worden daarin meegenomen, dan kan dat vertragend zijn. Out of row geeft aan dat er een pointer is naar de locatie waar de tekst staat, zodat je query sneller uitgevoerd wordt. Je kunt zaken met een stored procedure configureren, volgens deze documentatie vervalt in nieuwere versies van SQL Server de optie "text in row". Peter wordt als co-founder genoemd van de website sqlblog.com, die site is helaas niet meer online (de link gaat naar een oudere versie op archive.org). Op die oude pagina staat een verwijzing naar angrypets.com en die site bestaat nog wel (alleen links- en toolspagina's doen het nog). 

PC 448: In deze uitzending is Miguel Castro te gast, onderwerp is "de tien dingen die hem irriteren". Een groot deel daarvan is dat hij een hekel heeft aan mensen die zeggen "dit is de enige manier hoe je iets moet doet en als je het anders doet, dan doe je het niet goed".

  • De mensen die zeggen dat je CSLA niet met SOA kunt gebruiken. SOA staat voor Server Oriënted Architecture. Dat kan wel degelijk, niet in het API deel "naar buiten", maar wel de interne processen.
  • Mensen die zeggen dat je "alles" met CSS moet doen. Er zijn genoeg mensen die nog niet alle CSS-mogelijkheden kennen. Het gebruik van tables op plaatsen waar ze gebruikt kunnen worden is prima, je hoeft niet alles met divs op te lossen.
  • Mensen die zeggen dat je code niet data centric moet zijn, maar het domain driven design moet volgen. Domain driven design volgt bepaalde regels, je moet weten hoe het werkt. Bij projecten van Miguel levert hij wel eens wat op, wat "andere mensen" dan later moeten doorontwikkelen. Dat zijn developers, maar hebben maar beperkte kennis van programmeren. In dat geval is data centric beter, omdat ze de code snappen en het kunnen onderhouden. 
  • Een punt wat ik erg interessant vond, dat was een irritatie van Marc Miller over Microsoft. Namelijk dat ze in .NET niet de mogelijkheid bieden om virtual static members te maken. In Delphi kan dat wel. Als je dit gebruikt, dan moet je het voor elke class implementatie uitwerken. Miguel geeft aan dat voor een project waar ze aan werken ze dat nu met Reflection oplossen, maar als iemand een eigen class toevoegt en daar van een member per ongeluk een typefout maakt, dan werkt dat niet: erg foutgevoelig dus. Volgens deze pagina op Microsoft Learn lijkt het erop dat deze mogelijkheid inmiddels wel beschikbaar is in .NET.
  • Mensen die zeggen dat je altijd een ORM moet gebruiken en dat Stored Procedures verleden tijd zijn. Miguel geeft het voorbeeld van projecten die hij voor banken moest doen en waarbij deze partijen absoluut niet willen dat developers in code willekeurige acties op de database uitvoeren, daarvoor is de DBA die verantwoordelijk is voor de databases.
  • Test driven design, je moet eerst al een test bouwen en dan pas bouw je de echte code. Testen aan je projecten toevoegen is goed, Miguel gebruikt veel NUnit, maar deze "overdreven aanpak" stuit hem tegen de borst.
  • De uitspraak dat Forms websites niet meer goed zijn en dat alles MVC moet worden. MVC is niet een opvolger van Forms, het is een alternatief. 
  • De frictie die er tussen VB en C# is. Redelijk veel C# developers zijn nogal "neerbuigend" over VB, terwijl dat een gelijkwaardige programmeertaal is.
  • Recruiters, Miguel noemt ze "the good, the bad and the ugly". De standaard-mailtjes, de recruiter die zegt dat het stoppen met je .NET baan beter is, zodat je dan als COBOL-developer aan de slag kunt gaan. Er zijn goede recruiters, maar de slechte verpesten het voor de rest.
  • De ALT .NET beweging. De groep die meer naar open-source, agile, pragmatisch software design wil gaan. Miguel heeft er met veel gesproken, ze hebben veel kennis, doen goede dingen, maar er zijn er ook veel die "hun manier van werken"  als "de enige waarheid" zien en mensen die het anders doen "afschrijven". Hij vindt dat jammer, want als ze wat meer open zouden staan voor mensen die het anders doen, zou de beweging een hele mooie toevoeging aan het .NET spectrum zijn.


PC 449: In deze uitzending zijn Niklas Gustafsson en Josh Phillips te gast. Onderwerp is Axum. Een soort framework om parallel programmeren makkelijker te maken. Het is een project wat nog in de onderzoeksfase zit (en ik hoorde deze term nu voor het eerst), dus ik vermoed dat het niet een echt product geworden is. En inderdaad, in het artikel van de podcast wordt verwezen naar deze pagina. Daar kun je lezen dat het project in 2012 gestopt is. De blogpost waar op die pagina naar verwezen wordt staat niet meer online. En is in het verleden niet door archive.org geïndexeerd, dus niet te lezen. Maar "met de kennis van nu" weten we dat Microsoft dit inderdaad wel opgepakt heeft. Als je functies maakt doe je dat (als het goed is) nu al standaard door deze te declareren als async Task<bool> functienaam en roep je deze aan met await functienaam. Axum was bedoeld om de ingewikkelde zaken van parallel en concurrency "achter de schermen" te regelen, zodat je als gebruiker op een redelijk simpele manier kunt zorgen dat je applicatie op een goede manier de juiste acties uitvoert.

PC 450: In deze uitzending is Nicholas Blumhardt te gast, hij is de maker van Autofac. Dat is een Inversion Of Control container. Ik had verwacht dat dit project er niet meer zou zijn, IOC zit al redelijk standaard in .NET Core. Maar de website is nog online, er wordt verwezen naar nuget.org waar je verschillende packages kunt bekijken en daar kun je dan weer de link vinden naar de Github-repo. En die wordt ook actief bijgewerkt. Dus ik moet binnenkort nog maar eens kijken "wat dit pakket extra biedt op de standaard functionaliteit". IOC betekent dat je niet in elke class die je maakt in je eigen code andere classes aanmaakt en configureert, deze krijg je allemaal binnen via de constructor of een functie in de class. Op deze manier heb je een centrale plaats waar je objecten aangemaakt worden, heb je invloed op de levensduur daarvan en kun je zaken ook op een betere manier vervangen. Bedenk dat je in het verleden misschien 50 classes had die elke een var x = new ObjectX().. uitvoerden en waarbij het nu een var x = new ObjectY().. moet worden. Als je niets van IOC weet en je bekijkt voor het eerst de code, dan kan het een beetje "hocus pocus" klinken, maar als je er één keer mee werkt, wil je niet meer anders. Nicholas heeft een eigen website, waar hij veel artikelen over Serilog geplaatst heeft. URL is nblumhardt.com