.NET Rocks - podcast 271 tot en met 280

Ingediend door Dirk Hornstra op 09-apr-2025 22:35

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

Let op: dit zijn oude afleveringen over .NET 3.5. 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 271: Don Demsak (oftewel Don XML!) over Linq to Xml. Onder andere wordt genoemd dat je een soort inline XML kunt gebruiken. Dat begint een beetje op classic ASP te lijken, dus de eerste reactie van Don was "nee, niet doen!", maar inmiddels vind hij het wel een goede manier. Je kunt deze uitzending overslaan.

PC 272: Scott Cate bespreekt in deze uitzending het MVP Pattern. Dit staat voor Model-View-Presenter. Scott is de eigenaar van myKB.com (als je daar nu heen gaat kom je op zendesk.com). Een IT bedrijf gespecialiseerd in ASP.NET applicaties. Hij heeft kbAlertz.com van iemand anders overgenomen, hiermee kun je allemaal Microsoft Knowledge Base artikelen in de gaten houden, komt er wat bij, dan krijg je een seintje van kbAlertz. Rond de 350 producten meende ik (misschien nu wel meer?). Ook die site is niet meer beschikbaar, de link wijst naar een oude archive.org weergave. Hij heeft het boek Linq in Action geschreven en met nog iemand een soort "Big Brother boek", te vinden op surveillance-the-novel.com, ook die is alleen nog maar via archive.org te vinden. In zijn projecten gebruikt hij Castle (castleproject.org) om onder andere ioc (inversion of control) door te voeren. Hij was bezig met een project, shoop of iets dergelijks, waarmee je datasets / lijsten kon beheren, structuren en data kon delen.

PC 273: Deze aflevering heeft 2 gasten, namelijk Mike Azocar en John Cook over testen met Virtuele Machines. Wat sinds kort mogelijk is: je kunt een "fysieke machine" omzetten naar een virtuele machine. Carl is laaiend enthousiast hierover, want zo kun je "exact" zien waar iets wel of niet goed gaat. Ook wordt het punt genoemd dat je eerst altijd een soort start-image had, maar je kunt nu snapshots nemen, waardoor je terug kunt naar een eerdere status, maar niet elke keer vanaf 0 hoeft te beginnen.

PC 274: Carl en Richard zijn liefhebbers van een stevig drankje. Zo noemt Carl dat hij van Richard een Macallan heeft gekregen en daarvan geniet. Misschien ook nog maar eens kopen: gall&gall. In deze uitzending zijn Charlie Calvert en Beth Massi te gast. Hierin wordt gesproken over vb.net, Orcas, en het FoxPro "brei-gilde". Tenminste, volgens de omschrijving. Het gaat voornamelijk over Linq, deze uitzending kun  je overslaan. Het enige wat ik van deze uitzending leer is dat je eerst DBase had (heb ik op de HAVO-MBO nog mee gewerkt), daarna kwam FoxPro. En ook Clipper. Termen welke ik wel eens gehoord heb, maar zelf niet mee gewerkt. Toevallig kwam FoxPro een tijdje geleden wel ter sprake, één van de klanten van TRES maakte namelijk gebruik van een systeem van een andere leverancier wat nog met FoxPro werkte. Zo blijkt maar weer dat "oude software" nog steeds actief kan zijn. In de uitzending komt ook Visual Basic 6 ter sprake, het kan best zijn dat er nu ook nog VB6 programma's in gebruik zijn. Die zou je eigenlijk moeten "upgraden" naar VB.NET. Omdat Microsoft ook wel inzag dat je niet kunt verlangen dat mensen 3 jaar lang bezig zijn om de code van hun programma's om te bouwen naar .NET, is er een Interop Forms Toolkit gemaakt, waardoor je bepaalde onderdelen  kunt omzetten naar .NET en dat naast VB6 code kunt laten werken.

PC 275: Jack Herrington over browser coding. Jack doet van alles en is niet alleen .NET gericht. Hij noemt Google Gears. Hiermee kon je aan de "cliënt-side" een soort SQL Lite database hebben om daar gegevens op te slaan. Volgens Wikipedia is dit later hernoemd naar Gears en is het later uitgefaseerd omdat HTML5 dit kon implementeren. Jack heeft een blog, maar die is in 2020 voor het laatst bijgewerkt. De Github van Jack, daar wordt wel actief op gewerkt! En Jack is een actieve Youtuber, zoals je op zijn kanaal kunt zien. Net als Carl is Jack een gitaarspeler. Hij heeft de website ultimatechordbook.com opgezet, die is alleen nog via archive.org te bekijken.

PC 276: In de categorie "better know a framework" komt Carl deze keer met LoadViewState en SaveViewState. In web-forms wordt de staat van jouw pagina (status invoervelden, knoppen en de rest) meegestuurd in een verborgen variabele, de viewstate. De waarde is een base64-encoded waarde. Deze kan behoorlijk groot worden. Hoewel Microsoft het afraadt kun je deze zelf in beheer nemen, bijvoorbeeld via SessionState, waardoor de variabele in je pagina leeg wordt: dat scheelt wel weer extra dataverkeer, wat mogelijk een oplossing kan zijn als je een hele krappe connectie hebt en moet bezuinigen op de hoeveelheid data die over de lijn gaat. In deze uitzending is Mike Griffin te gast die het over zijn product EntitySpaces heeft. In eerdere uitzendingen zijn codegeneratie-tools voorbij gekomen, zoals CodeSmith. Het is best wel zonde dat elke developer iedere keer bij het opstarten van een project een hele tijd bezig is om de basis "weer" op te zetten, voornamelijk de CRUD-acties. Met EntitySpaces kun je een datamodel genereren op basis van een bestaande database. En flink uitgebreid qua providers, Microsoft SQL Server, Oracle, mySQL, Acces. Carl vraagt of je met deze tool ook een database kunt genereren op basis van de objecten, dat zit er niet in, is wel gevraagd, maar gaat er volgens Mike niet komen. In de tool zit veel functionaliteit, het ondersteunt transacties en ook een eigen transactiemodel. Mike heeft het ook kunnen gebruiken om de datalaag van DotNetNuke te vervangen, de Data Access Layer die erin zit is volgens hem een rommeltje. De sites die genoemd worden zijn allemaal niet meer online of tonen niet meer de informatie die we zouden willen zien. Dus codegeneration.net, easyobjects.net, entityspaces.net. Mike is eerst begonnen met MyGeneration, een open-source tool. Omdat hij in de uitzending Sourceforge noemde heb ik die nog wel terug kunnen vinden: link. Mike heb ik als "gebruiker" EntitySpaces op Github gevonden, maar ook daar gebeurt niets meer. Link naar zijn homepage, die werkt niet meer (overgenomen door een partij die domeinen koopt/verkoopt).

PC 277: In de categorie "better know a framework" noemt Carl dit keer de namespace System.Web.Management. Je kunt hier zaken koppelen aan events, zodat je zaken kunt loggen in het Windows Eventlog of bijvoorbeeld een e-mail kunt sturen. Bij de uitzending 274 wordt gevraagd of Carl en Richard wensen hebben voor .NET. Dat is een onverwachte vraag, ze konden niets bedenken. In uitzending 275 reageert een luisteraar dat ze een "spellingscontrole" in Visual Studio hadden moeten vragen. Een andere developer reageert in deze uitzending, dat zit er al in. Dat zat eerder al in FXCop, is daar weer uit gehaald, maar komt er nu wederom in. In deze uitzending is Venkat Subramanium te gast. Volgens mij is hij wel eens eerder in een uitzending geweest. Thema van deze uitzending is "de onvermijbaarheid van dynamische talen".  In eerdere uitzendingen is al ter sprake gekomen dat je IronRuby en IronPython er zijn, die worden ondersteund in .NET. Die talen zijn dynamisch, je kunt "on the run" functies en eigenschappen toevoegen. Dat in tegenstelling tot statische programmeertalen zoals C# en VB.NET. Je compileert eerst de code en als je iets doet wat "ongeldig" is, krijg je een foutmelding van de compiler. Ik vind de insteek van Venkat wel goed, want ook als code "wil compileren" wil dat nog niet zeggen dat de code "goed" is. Omdat je met dynamische talen altijd meer op je hoede bent en zorgt voor testcode, zo zou je dat ook met statische code willen doen. Venkat is voorstander van 100% code-coverage, niet alleen met de unit-testen, maar ook in combinatie met handmatige testen. Hij geeft het voorbeeld van testen waarbij elke keer de "if-tak" van een controle in gegaan wordt en nooit de "else-tak", zodra het product uitgebracht wordt zul je zien dat klanten het wel voor elkaar krijgen om dat deel van de code uit te voeren. Omdat het nooit getest is, weet je dus niet of de resultaten goed zijn (de kans is groot dat alles kapot gaat). Ik weet niet de exacte relatie met deze podcast, maar David Thomas zijn boek "The Pragmatic Programmer" wordt nog even genoemd, een aanrader voor developers. Venkat noemt de tool Guantanamo die alle code die niet getest is verwijdert. Zo ver durfde hij niet te gaan met zijn code en ik ook niet ;) De code van Guantanamo kan ik niet vinden, nog wel dit blog-artikel. Vankat noemde ook dat er een implementatie voor LISP voor .NET kwam, IronLisp, ik zie dat dit inmiddels IronScheme geworden is.

Via-via kwam ik ook nog bij dit artikel op Github en dat lijkt me de moeite waard om hier nog even te delen. Stel, je hebt een foutje gemaakt en bepaalde data die je niet openbaar wilde maken staat in je repository. Misschien heb je een private repository, maar dan nog, API-keys e.d. wil je niet in je source-control-systeem hebben. Op deze pagina van Github staat hoe je "de historie kunt herschrijven". Mocht het je het ooit nodig hebben, bookmark voor de zekerheid even deze pagina :)

PC 278: In deze uitzending is Eli Lopian te gast, wederom een gast uit Israel. Het product wat hij gebouwd heeft/verkoopt is typemock.net. Hiermee kun je objecten "mocken", goed voor unittesten. Eli zijn eigen site is niet meer online, alleen nog via archive.org te bekijken.

PC 279: In de vorige uitzending noemde Carl bij "better know a framework" de namespace System.IO.IsolatedStorage. Carl vroeg zich toen af wat je daarmee kon doen. Een luisteraar heeft gereageerd, het is vooral handig bij click-once applicaties. Als je data "ergens" wilt opslaan, zit je vaak met rechten e.d. Met deze namespace kun je rechten toekennen aan users, gebruikersgroepen, etc. Degene die gereageerd heeft, is Tim Heuer. Hij had ook iets in zijn BMW ingebouwd om de podcasts van .NET Rocks te beluisteren, op zijn blog stond een foto. Die foto kan ik niet vinden, maar het blog is wel goud: timheuer.com. Tim werkt namelijk bij Microsoft, doet veel onderzoek, is bezig met voorbeelden uit te werken, dus zo kun je er screenshots van oude iphones vinden, code/componenten van Silverlight. Die dingen zijn er nu niet meer/werken niet meer, maar wel leuk om nog eens door te lezen. Een heel uitgebreide site, maar ik zie nu dat de laatste blogs van 2023 zijn. Dat is dan weer spijtig, heb je een blog gevonden om te volgen, is de maker gestopt met bloggen... Ken Getz is in deze uitzending te gast. Ken is eerder te gast geweest (13 en 105), dat is alweer wat jaren geleden. Naast de (flauwe) grappen in deze uitzending wordt er ook veel serieus materiaal besproken, waaronder VSTO (Visual Studio Tools for Office). Dat is wel eerder genoemd, maar in deze versie (2008?) hoef je er niet meer extra voor te betalen, is het onderdeel van Visual Studio en kun je er heel veel dingen mee doen. Zo noemt Ken het aanpassen van de ribbon in Word. Items weghalen kan dan weer niet, dat moet je dan weer met één of ander XML-bestand doen. Richard en Ken hebben vroeger met VBA gewerkt (dat is VB code in Word, Access, Excel) en ook voor mij waren dat de eerste stappen "om te programmeren". Met VSTO heb je nu een "managed code alternatief". Ik had het al eerder gezegd, ik moet hier ook mee aan de slag. Kijken of ik een soort test-project hiermee kan starten.

PC 280: Carl en Richard waren in Bulgarije bij DevReach. Daar waren nogal wat Amerikaanse sprekers, in deze uitzending zitten ze in een panel en hebben ze het over WPF. De mensen die er zitten zijn nogal sceptisch, het gaat namelijk ook over design, waar Blend voor gebruikt wordt. De structuur is allemaal in XAML (een soort XML). Het panel heeft er geen vertrouwen in dat designers daarmee aan de slag gaan. Het advies van alle panelleden is dat je eerst de documentatie moet lezen en dan pas moet starten. Namen die genoemd worden zijn Adam Nathan, Chris Sells, Chris Anderson en Petzold, zij hebben boeken hierover geschreven.