.NET Rocks - podcast 291 tot en met 300

Ingediend door Dirk Hornstra op 29-apr-2025 20:43

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 291: De opname is gemaakt bij Dev Connections. Daar wordt Kent Alstad geïnterviewd. Samen met Richard heeft hij een soort router gemaakt, "Strangeloop", welke zelf caching e.d. kan uitvoeren en daardoor voor een minder zware belasting van de server / snellere respons zorgt. Onderwerp van deze uitzending is het tegen problemen aanlopen met websites (bijvoorbeeld door hoge load) en hoe je dat aanpakt. Carl wil bijvoorbeeld caching uitbreiden, waarop Kent een beetje geïrriteerd reageert dat het zo niet moet. Je moet juist niets aanpassen, je moet de machine hetzelfde laten doorlopen en dan uiteindelijk zien wat de oorzaak is dat de boel down gaat. Is het geheugen, is het wat anders? Hij legt ook de nadruk op de impact van Javascript op de cliënt en hoe dat de boel (extra) kan vertragen. Hij heeft in hun code zaken toegevoegd, waardoor data naar de server teruggestuurd wordt, zodat ze kunnen monitoren hoe het zit met de response-tijden. Hij noemt ook het feit dat je zo weinig mogelijk calls op de lijn moet hebben om een pagina snel te laten laden. Carl noemt de Silverlight Tool "Downloader", die bestanden in een GZIP kan aanbieden en in de browser kun je dan die bestanden eruit halen: dat is 1 call naar de server. Kent noemt de tool ySlow van Yahoo (een plug-in) en Wireshark, om je netwerkverkeer te monitoren. Richard is hier ook zeer enthousiast over en raadt iedereen aan om daar eens mee aan de slag te gaan. Leveranciers leveren bestanden aan, zodat je makkelijk(er) het verkeer kunt filteren op "hun verkeer".

PC 292: Bij "better know a framework" noemt Carl System.Codedom. Hiermee kun je sourcebestanden van .NET talen inladen en ook compileren. De moeite waard om nog eens verder naar te kijken, want volgens Carl heeft Mark Miller dat ook in zijn DxCore gebruikt. Ook deze opname is gemaakt bij Dev Connections. In de zaal in Las Vegas zit het vol met mensen, op het podium zitten een 4-tal mensen van Dot Net Nuke. Ten tijde van deze uitzending is versie 4 actief en wordt gewerkt aan versie 5, codenaam Camebrin. Naast het feit dat ze een bedrijf opgezet hebben en het niet meer "als een groepje vrijwilligers doen" geeft aan dat het professioneler wordt. Dat zorgt nu ook voor de volgende stap, er wordt meer naar funding gekeken/acties op ondernomen, zodat het bedrijf niet alleen afhankelijk is van vrijwilligers die hun open-source code aanpassen (zoals Richard zegt, die doen "alleen" de coole features en de noodzakelijke punten blijven liggen).

PC 293: Bij "better know a framework" noemt Carl System.Math. Hiermee kun je rekenkundige acties uitvoeren. Carl noemt nog even expliciet de IEEERemainder. Ik weet niet of ik dat ooit nodig heb, maar het was wel even interessant om door te lezen. Je denkt namelijk eerst dat het een soort "modulo-actie" is. Als je 8 deelt door 3, dan kun je dat 2x doen (is 6), wat overblijft is 2. Maar hier zitten een paar extra regels op. Een goed voorbeeld hoe een klant een specificatie van eisen kan geven en je als developer er overheen leest en (dus) een foutieve implementatie in je code uitwerkt. Op bepaalde moment zal pas blijken dat de uitkomsten afwijken van het verwachte resultaat. En Carl meldt dat hij shrinkster.com overgenomen heeft, zodat de links weer werken. Inmiddels (in 2025) weten we dat dit domein niet meer online is... In deze uitzending hebben Carl en Richard het over F#. Voor de verandering 3 gasten, Don Syme (bedenker F#), Luke Hoban en Ralf Herbrich. Zo komen onder andere game-statistieken ter sprake. Dat zijn er duizenden/miljoenen, op basis daarvan wordt gekeken welke spelers "aan elkaar gewaagd zijn" en dus een potje tegen elkaar zouden kunnen spelen. Zoals Carl zegt: "niet alleen gebaseerd op hit-count". Nee dus. Ook wordt het gebruikt voor "banner-clicks", zoals je kunt begrijpen zijn dat ook miljoenen acties. F# is gebaseerd op Camel, in een blog werd genoemd dat F# onderdeel gaat uitmaken van XNA Game Studio. Don heeft samen met een paar anderen het boek Expert F# geschreven. En er is het boek van Jon Harrop F# for Scientists.

PC 294: In deze uitzending is Colin Miller te gast, hij heeft het over het .NET Micro Framework. Je hebt het "compact framework" wat een sub-onderdeel van het .NET Framework was. Dit is niet hetzelfde framework, het is namelijk meer bedoeld om op devices te draaien met weinig RAM, zoals een horloge en is dus ook een stuk kleiner qua requirements. Het bevat ook een soort eigen runtime waarmee je het systeem op kunt starten. Omdat Colin dit framework al "intern" gebruikte (Windows Sideshow, zodat je op een schermpje op je laptop kon zien of er e-mails op je stonden te wachten), ook voor klanten (op bepaalde settop-boxen waar weinig geheugen beschikbaar is), is de versie die straks op "de markt beschikbaar komt" versie 2.0. Een beetje vreemd dat een Framework wat gereleased wordt start met versie 2, maar dit is dus de uitleg. Ook horen we dat er een prima simulator is om in Visual Studio de boel te testen / te debuggen. Colin noemt dat de Express Edition niet ondersteund wordt en je minimaal de Standard Edition nodig hebt. Op de Wikipedia-pagina kun je lezen dat ook de Express-editie inmiddels de SDK ondersteunt. Ook lees je daar dat er geen actief onderhoud meer is, je hebt de code op Github en de info-pagina op Github. Op de Wikipedia-pagina zie je dat er nu gesproken wordt over het nanoFramework en tinyCLR OS. Carl had het nog over het horloge wat Microsoft hierop heeft laten draaien, de SPOT watch. Via wat zoekacties kwam ik uit op dit blog-item van Medium en dit artikel op neowin.net. Met een wel heel slechte commercial die toen het product moest ondersteunen: youtube-link :D Tijdens deze uitzending komen nog wat brainwaves voorbij, onder andere dat je dit met een MP3 speler zou kunnen gebruiken, bij hardlopers en het ritme van de muziek kunnen laten aanpassen naar het tempo van rennen. Richard noemt daarbij nog "couch to 10k", ik ben niet van plan om te gaan hardlopen, maar ik was toch even benieuwd wat het was. Via een Reddit-link kom ik via archive.org op de site 10k101.com

PC 295: Bij "better know a framework" noemt Carl deze keer System.WeakReference. Dit is voor iets wat de Garbage Collector (snel) op mag ruimen. Er is een functie "resurrect" om een instantie weer op te bouwen. Zoals Richard zegt, we krijgen nu wel veel "Bijbelse verwijzingen in onze code". De vraag is even waar je dit voor zou gebruiken. Richard kan alleen aan iets met cache denken. Naveen Yajaman is te gast om over Visual Studio Tools for Applications te praten. Het is de managed-code opvolger van VBA. Zoals ik het hoor kun je het ook in eigen applicaties toevoegen. En ook daar kun je een soort ALT-F11 actie inbouwen om "naar de code te gaan".

PC 296: Carl en Richard zijn bij DevTeach in Vancouver. In deze uitzending is er een Open Source Panel discussie. Onder andere over de type licenties (GPL, BSD, Apache) en de varianten die Microsoft heeft. Een aantal tools worden genoemd zoals DotnetNuke, Paint.net en de N-producten (Nant, NHybernate). SugarCRM wordt hier ook genoemd, zoals je op Wikipedia kunt lezen is de community-editie vervallen en is het product alleen nog tegen betaling verkrijgbaar. Ook komt gotdotnet.com ter sprake, dat was een site van Microsoft over .NET waar projectcode op stond. De beheerders van die code zijn opgeroepen om dit naar Codeplex ter verhuizen. Via archive.org kun je nog bekijken hoe die site eruit zag.

PC 297: Bij "better know a framework" wordt de Regex behandeld (kort). Die class is mij wel bekend. Maar ook wordt nog even een website genoemd: regexlib.com. Die site ziet er erg 1998 uit, maar heeft mogelijk nog wel wat handige regexen in voorraad! Gast in deze uitzending is Tomas Petricek uit Tsjechië (Praag) over PHP in ASP.NET en Silverlight. Hij heeft zich aangesloten bij een groepje wat al bezig was met dit project. Daarmee kun je PHP laten omzetten naar een .NET DLL en de boel zo onder IIS draaien. Ze hebben dit met phpBB getest en het werkte. De conversie was voor PHP 4, PHP 5 was toen ook al een tijdje uit. Daar hebben ze wat zaken mee getest, ging goed, maar dat was slechts de basis. Extensies e.d. konden nog niet werkend gemaakt worden. De tool hadden ze Phalanger genoemd. De code was open-source en stond op Codeplex, maar die is niet meer online. Via archive.org kon ik nog een versie terugvinden, daar stond dat het project inmiddels op Github staat. Lijkt niet actief meer aan ontwikkeld te worden, maar misschien wil je zelf nog eens kijken of je redelijk simpel phpBB (of een andere PHP web-applicatie) redelijk simpel naar een .NET implementatie over kunt zetten. Tomas is ook bezig geweest om PHP in Silverlight werkend te krijgen en dat is ook gelukt. Hij is een student, maar ook Microsoft MVP, bij een evenement stelde hij nogal wat vragen en werd hem gevraagd of hij zich ook wilde aanmelden voor een "internship". Dat heeft hij gedaan, hij werd uitgekozen, dus hij heeft 3 maanden stage gelopen op Cambridge. Ook is hij bezig geweest met F# webtools, in Visual Studio je F# code uitwerken en dat wordt dan omgezet naar Javascript. Via archive.org kun je de code nog op Codeplex vinden. Tomas heeft ook een website.

PC 298: Bij "better know a framework" noemt Carl deze keer de interface System.Resource.IResourceReader. Voor als je zelf data in een resource wegschrijft en dat weer wilt inlezen. Wederom een Tsjech als gast, Gael Fraiteur. Hij heeft het in deze uitzending over PostSharp. Het toevoegen van code aan je gecompileerde DLL op basis van attributen. Volgens mij is dit eerder genoemd, of heb ik het in een uitzending van Hanselminutes gehoord. Want het klinkt vet. Normaal als je code maakt ga je allemaal try-catch zaken toevoegen, loggen. Bij het gebruik van cache ga je controleren of het object al in cache staat, als dat nog niet zo is, dat aanmaken. Carl noemt het voorbeeld van de maker van DotnetNuke die het opbouwen van cache in een lock-actie zette zodat maar één persoon de cache opbouwde en anderen "wachten". Alleen moeten die dan controleren (nogmaals) of het cache object dan wel ingesteld is. In ieder geval, allemaal extra regels code "om je echte business-code heen". Dus het vertroebelt het beeld van wat er nu echt in je code gebeurt. Als je al die acties met attributen tijdens compile-time kunt laten toevoegen, dat lijkt me een perfecte oplossing. Wel wordt gezegd dat het niet "de oplossing voor alles" is, dus je moet wel kritisch kijken of je jouw "probleem" met AOP (aspect oriented programming) wilt/moet oplossen. Ten tijde van de uitzending was het postsharp.org, het is nu postsharp.net. En ook op de Microsoft Marketplace kun je Postsharp terug vinden. Je hebt Postsharp en Metalama, metalama wordt aangeraden voor nieuwe projecten. Ik moet hier eens naar kijken, want toen ik de uitzending beluisterde dacht ik: dit is een goeie tool en het feit dat de uitzending in 2007 was en de code "nog steeds actief wordt onderhouden" geeft aan dat het de moeite waard is om te gebruiken.

PC 299: Bij "better know a framework" noemt Carl de methode Response.TransmitFile. Als je een "snelle download" wilt aanbieden, kun je snel en simpel een bestand doorgeven en hoef je zelf geen code te bouwen. In deze uitzending is Jeff Palermo te gast die het over ASP.NET MVC gaat hebben. Het is 2007 en Scott Guthrie heeft een opzetje uitgewerkt voor MVC. In deze periode (eind 2007) is dat een losse download die je kunt installeren in Visual Studio. Tot deze tijd wordt er voornamelijk met WebForms gewerkt, dus met URL's shoppingcart.aspx, products.aspx. Jeff benoemt dat MVC niet nieuw is, veel programmeertalen gebruiken het al. Inmiddels is dit (als het goed is) de standaard om je project op te zetten, het maakt je code namelijk ook goed unit-testbaar. Ook legt Jeff nog even uit wat het verschil is met het MVP-pattern (Model-View-Presenter), daarbij is de start namelijk de View, waarbij MVC er soms geen View nodig is. Jeff had via mvccontrib.org zijn eigen projectpagina voor MVC (inmiddels niet meer online), via archive.org nog wel een versie van de codeplex-pagina. Jeff heeft een eigen website, maar daar gebeurt weinig. Hier nog het artikel van Scott Guthrie over MVC.

PC 300: Een feestje: de 300e aflevering! In deze uitzending interviewt Carl zijn co-host Richard Campbell. Leuk om te horen hoe hij zich ontwikkeld heeft tot wat hij nu is / wat hij nu doet. Zijn vader was elektrotechnicus en die had weinig met computers. Maar hij (Richard) was dus al op 5-jarige leeftijd aan het lassen en "bordjes in elkaar aan het zetten". Zo kwam hij bij de hardware store ook de eerste "computers" tegen en is zich daarin actief geworden. Spullen repareren, met dBase 2 pakketten ontwikkelen. Consultancy, later nog een boek gaan schrijven. Daarbij ook de behoefte gekregen om "meer interactie met mensen" te krijgen, dus gaan spreken op podia. Uiteindelijk vrouw en kinderen en de wens om "meer thuis te zijn". Dus hij heeft thuis een heel serverhok opgetuigd, bij zijn klanten gaat hij eerst wel persoonlijk langs, maar vervolgens gaan veel zaken online. Na de dotcom-bubbel een tijdje tussen banen in gezeten, een kennis gokte op paardenrennen en gaf hem een boek hoe je op basis van de specs van paarden kon voorspellen hoe ze bij een race gingen presteren. Daar heeft hij een stuk software voor gebouwd en in 40% heeft dat wel wat opgeleverd. Na een aantal maanden was hij er wel klaar mee, want hij wilde andere dingen gaan doen. In deze periode (2007) is hij met Kent Alstad bezig met StrangeLoop, een stukje hardware voor IIS wat het internetverkeer kan optimaliseren. Volgens de benchmarks kan deze 1000 requests per seconde afhandelen. De site is alleen nog via archive.org te bekijken. Ook heeft hij nog een mooi verhaal, een bedrijf had een connectie met de aandelenmarkt. De pc die het verkeer regelde stokte na 3 of 4 uur en moest dan herstart worden. Richard werd erbij gehaald en hij zei "ik kan dit fixen, dat kost je 3.000 dollar", een hoop geld in die tijd. Na 2 weken werd hij gebeld, 3.000 was prima, als hij het vandaag kon fixen. Hij ging terug... met een nieuwe pc. Software over zetten, zaken inregelen: het werkt. De vrouw van het bedrijf "wat was er nu aan de hand"? Richard: "geen idee, het werkt nu toch?". Wel een mooi voorbeeld van hoe je soms uren met een hardware- of software-issue bezig kunt zijn, maar ook de boel aan de kant kunt gooien, een "cleane start" en het probleem opgelost is. Richard geeft aan dat hij altijd wel een neusje heeft voor "waar geld verdiend wordt". Als hij kan zorgen dat software, management daar omheen goed werkt en de verkopen stijgen, dan valt daar ook een deel van zijn kant op.