.NET Rocks - podcast 421 tot en met 430

Ingediend door Dirk Hornstra op 14-apr-2026 20:28

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 421: Bij "better know a framework" noemt Carl de namespace System.Windows.MarkUp. Dit is de namespace van XAML, wat vooral in WPF gebruikt wordt. Mocht je daarmee aan de slag willen gaan, daar moet je dus zijn! In deze uitzending is Derik Whittaker te gast, onderwerp van de uitzending is NHibernate. Dat is een soort Entity Framework, wat we nu eigenlijk standaard gebruiken. NHibernate is een ORM, je moet daarin nogal wat zaken via XML aanpassen. Dat is redelijk hardcore, maar er zijn nu tools waarmee het leven wat makkelijk gemaakt wordt. Zo noemt Derik Fluent NHibernate voor het in code "fluent" kunnen werken met NHibernate en ook de tool Profiler die je query's debugt en je ook adviezen geeft. Voor het testen gebruikt Derek Rhino Mocks. Ook noemt Derek Structuremaps, dat is een soort "inversion of control". Zo te zien is dat project niet meer actief. In deze podcast geeft Richard nog wat adviezen over je "setup qua schermen". 4960 x 1600. 30 inch beeldscherm in het midden, dual link DVI, 2560 x 1600 en 2 20 inch LCD panels ernaast, 1600 x 1200 in portrait-positie. 1600 hoog geeft je flink wat regels om je code zichtbaar te houden. Woohoot!

PC 422: Bij "better know a framework" noemt Carl de namespace System.Windows.Documents. Hier kun je met documenten werken. Ook wordt de leverancier van laptoptassen genoemd, Tom Binh. Ze hebben nu een "checkpoint flyerbag", een tas waarmee je "zo" op het vliegveld door de controle heen kunt gaan. Doug Crockford is deze uitzending te gast. In het verleden heeft hij bij Lucas Art gewerkt. Hij is de uitvinder van JSON, maar geen enkel bedrijf wilde dat gebruiken "omdat ze al vast zaten aan XML". Hij heeft toen json.org online gezet, zodat hij kon verwijzen naar "die site alsof het een standaard was", daarmee is de boel gaan "vliegen". Ook is hij auteur van het boek: "Javascript, the good parts". Dough zijn website is te vinden op www.crockford.com. Op zijn site wordt ook de symbooltaal "Blissym" genoemd. Een Joodse wetenschapper kon aan de nazi's ontsnappen, maar moest daarvoor naar Shanghai. Waar hij probeerde de Chinese taal te leren, maar dat erg moeilijk vond. En ging kijken of dat met een soort "universele taal met symbolen" makkelijker kon. Er zijn testen met gehandicapte kinderen uitgevoerd, die konden zich verbaal niet goed uiten, maar met deze taal lukte het wel. Op de site van Doug verwijst hij naar een film hierover, Mr. Symbol Man. Doug is ook bezig met security en kwam daarbij met een goed punt. Zaken "in je browser draaien" is een stuk veiliger dan een executable opstarten vanaf je bureaublad, want in de browser zit je in een "sandbox", vanaf je desktop mag het programma ineens alles wat jij ook mag/kunt. Maar... de scripts die in de browser uitgevoerd worden, daar kunnen geen "gradaties" aan gegeven worden. Je zou bijvoorbeeld aan willen geven dat "jouw scripts" alles mogen, maar dat bepaalde "externe ingeladen scripts" beperkte mogelijkheden hebben. Doug heeft het erover dat hier aan gewerkt wordt.    Rond 1.03 wordt er nog een boek genoemd.

PC 423: Titel van de uitzending is "Catching up with Pablo Castro". In aflevering ... is ook al eens met Pablo gesproken. Dat ging toen om Astoria, wat betrekking had op services voor ADO.NET. In deze uitzending is het voornamelijk Azure waarover gesproken wordt. Azure staat nu (in 2009) nog in de kinderschoenen. Deze uitzending kun je overslaan. Enige interessante was dat Carl nog even iets noemt wat op een blog van Pablo stond, over een bug die al 2 jaar "onopgemerkt" in Astoria zat. Als er ergens een actie niet uitgevoerd kon worden, dan werd dat niet goed afgevangen en werd er alsnog een call uitgevoerd naar een onbereikbare locatie. Wat uiteindelijk een time-out opleverde. Dat werd niet netjes afgevangen, maar gaf je een NULL-exception terug. 

PC 424: In deze uitzending is Andrew Brust te gast. Andrew heeft een boek over SQL Server geschreven, Programming Microsoft SQL Server. Onderwerp van deze uitzending is "Business Intelligence, BI". Onder andere over SQL Server en hoe je daar gebruik kunt maken van OLAP (Online Analytical Processing). Microsoft heeft dat redelijk snel hernoemd naar SQL Server Analysis Services (SSAS). Hier worden vaak begrippen als "cube/kubus" gebruikt, je werkt namelijk met data in meerdere dimensies. Voor veel bedrijven is het "moeilijk" om uit de losse pols te zeggen hoe het met de huidige verkopen gaat. De systemen zijn ingericht als Online Transactional Processing (OLTP) databases, genormaliseerde databases om order, orderregels, klanten, adressen en andere zaken te verwerken. Maar als er een groepering uitgevoerd moet worden, om "de totale omzet van dit jaar" te berekenen, dan is dat vaak een zware actie. Met OLAP kun je zaken samenvoegen naar die data-kubussen. Andrew geeft ook nog aan dat sommige velden niet "de data" bevatten, maar de formules om de data bij het opvragen te berekenen. Je hebt ook nog reporting services. En je kunt ook met OLAP in Excel werken, Andrew heeft het erover dat je vanaf Excel 2007 een aantal formules die met "cube" beginnen kunt gebruiken. Ik heb de Nederlandse versie (moet dat misschien toch eens aanpassen) en krijg inderdaad 7 functies die met KUBUS beginnen te zien. Richard geeft hier het voorbeeld wat wel eerder in een uitzending naar voren is gekomen, op de werkvloer draaide een proces wat 24 uur duurde om alle gegevens uit databases op te vragen. Dat werd allemaal geprint, een dikke 500 pagina's. Dat werd in de inbox van de controller neergelegd. Hij bleef wachten tot de controller kwam. Die pakte het laatste blaadje en gooide de rest bij het oud papier. Richard: heb je alleen die laatste pagina nodig? Controller: ja. Richard: zal ik dan zorgen dat alleen die laatste pagina uitgeprint wordt? Controller: is dat mogelijk dan? 

PC 425: Bij "better know a framework" noemt Carl de namespace System.Windows.Controls.WebBrowser. Een web-browser die je met WPF kunt gebruiken. Misschien nog wel eens interessant om te kijken wat we daarmee kunnen. Te gast in deze uitzending is Lee Zuckett over het Customer Care Framework. Net als Carl had ik bij de omschrijving van dit product het idee dat dit iets is wat gebruikt wordt bij de klantenservice van een bedrijf, maar dat is het niet. Het is een soort tegenhanger van SAP. In SAP worden allemaal eigen applicaties ingericht die de software die de klant gebruikt vervangt: je maakt gebruik van het SAP framework. Het Customer Care Framework is een soort schil om jouw applicaties. Stel, je hebt een bedrijf en je hebt 4 verschillende applicaties die gebruikt worden. In het ERP staan klantgegevens, in een ander systeem zit een koppeling met de gegevens van de website. Op dit moment is er een medewerker die in een scherm door de gegevens van de website gaat, daar een order van een klant ziet, met ALT-TAB naar een ander scherm gaat waar de ERP-applicatie draait en daar gaat zoeken naar de klant. Hierbij kan het op dezelfde PC, maar mogelijk heb je "nog een oudere applicatie" die niet meer op je huidige besturingssysteem draait, dus je hebt er nog een pc naast staan waar je dan naar moet switchen. Dan komt het Customer Care Framework kijken. Die kan met eigen "wrappers" een soort schil vormen om deze applicaties en ze op de achtergrond uitvoeren. Lee noemt het Adapters, waarmee je bij web-applicaties de DOM bewerkt, en met bijvoorbeeld ID's bepaalde velden kunt benaderen. Bij Windows applicaties vaak met de WIN32-API op basis van hexadecimale waardes bij de inhoud van tekstboxen kunt komen. 

Je kunt op Wikipedia lezen dat Microsoft gestopt is het met Customer Care Framework. Wel dat bepaalde zaken in Microsoft Dynamics gebruikt zijn. Wat ik mooi vond wat dat Lee aangaf dat alles configurabel is. Dus als de app bijgewerkt werd en je niet meer het 2e invoerveld, maar het 3e moest hebben, dan kon je dat aanpassen. Hij gaf ook aan dat de agent mailtjes bij fouten kon versturen. Dan ging iemand on-site kijken wat er aan de hand was. Maar hij/zij kon dan ook instellen dat het loggen van fouten "tijdelijk" lokaal was, dus het werd weggeschreven naar een bestand en er werden geen mailtjes meer verstuurd. 

PC 426: Na better know a framework noemt Carl nog even een grappig incident. Hij heeft een shrinkster-URL (die werken niet meer) naar een audio-fragment van 911 die gebeld worden door een vrouw, omdat de McDonalds geen nuggets meer heeft. Het verhaal is op NBC te lezen. In deze uitzending is Rob Boucher te gast, onderwerp is Application Architecture Guidance. Een groep mensen bij Microsoft heeft dit document gemaakt, onder andere J.D. Meier, zijn website is te vinden op shapingsoftware.com. Deze PDF staat op Codeplex, Codeplex is er niet meer, maar gelukkig is er archive.org die nog een kopie van de pagina heeft. Helaas lukt het downloaden daar niet, omdat het downloaden met een "post-back" werkt. Even via Google verder gezocht en uiteindelijk kom ik bij archive.org op een pagina waar wel de PDF staat!

PC 427: In deze uitzending is Tess Ferrandez te gast, onderwerp is debugging. Haar blog zat eerst op MSDN, maar is nu gewoon via haar eigen domein te bereiken, met de geweldige titel "if broken it is, fix it you should". Ten tijde van deze uitzending is Tess escalation manager bij Microsoft. Klanten die tegen problemen aanlopen, komen bij haar. Carl legt een redelijk grote nadruk op "memory-leaks". Bijvoorbeeld doordat mensen controls in session-state zetten en daardoor die data maar niet vrijgegeven kan worden door de Garbage Collector. Op zich is de uitzending niet heel interessant, maar ik steek er toch wat van op. Want Carl zegt een beetje schamper "hoeveel mensen baseren hun geheugengebruik op de taskmanager" en je hoort Tess zuchten. Dat is dus schijnbaar niet "de goede manier om te monitoren wat je applicatie doet". Ik weet niet in hoeverre dat voor web-apps geldt, Tess geeft wel het goede voorbeeld van een forms app. Als je alle schermen minimaliseert is er bijna geen geheugengebruik, restore je het scherm dan loopt het geheugengebruik flink op. Je zou kunnen denken dat er "dan" een memory-leak is. Tess adviseert om Proces Explorer van SysInternals te gebruiken, omdat je dan er "echt" induikt. Ik moet toegeven dat ik (bij gebrek aan andere zaken) inderdaad het geheugengebruik van de taskscheduler gebruik om te kijken hoeveel geheugen websites gebruiken. Misschien moet ik toch maar eens kijken of we via de Proces Explorer een betere weergave van het gebruik kunnen geven.

PC 428: Bij "better know a framework" noemt Carl de namespace System.Windows.Controls.ListBox. Dit is weer een WPF-namespace. In deze periode heeft Carl ook een soort online TV-uitzending. Daarin laat hij samen met iemand anders zien wat je met die listbox kunt doen. Want je kunt er meer mee dan alleen een simpele lijst, in die uitzending doen ze iets met memo-blaadjes. In deze uitzending is Mike Nash te gast, onderwerp is IE 8 en Windows 7. We zitten in de periode dat Windows Vista "de" Windows-versie was, niet de meest populaire versie. Mike geeft een goed voorbeeld, als je bijvoorbeeld met F# wilt starten, dan is het handig dat je wat voorbeelden hebt waar je mee zou kunnen starten. Daarvoor zou je kunnen kijken op de site van project Euler. Dat zijn allemaal wiskundige problemen. Mike noemt "webslices" en "accelerators" in IE8 die het voor gebruikers makkelijker moeten maken. Hiermee kun je snel bepaalde delen van sites bekijken en ook snel zaken kopiƫren / plakken (hij geeft het voorbeeld dat je op een website naar het adres zoekt, dat kopieert en in Google Maps plakt om de locatie te vinden - dat kan hiermee sneller). Volgens deze pagina is dat nu niet meer beschikbaar. Mike noemt ook de mogelijkheid om een "per ongeluk gesloten tab" weer snel te kunnen openen. Ook komt bepaalde telemetrie ter sprake, zo bleek een bepaalde site een oude versie van software als download aan te bieden, wat zorgde voor crashende computers. Dat kon herleid worden en op die manier ook hersteld.

PC 429: Michael Foord heeft het in deze uitzending over Iron Python, de Python-versie die in het .NET Framework draait. Michael heeft hier ook een boek over geschreven: Iron Python in Action. Zo liepen gebruikers tegen wat problemen aan, de "normale" Python maakt gebruik van packages die in C gecompileerd worden, zoals NumPi, een code-bibliotheek om met getallen te werken. Python-developers die met Iron Python aan de slag gingen misten dat. Michael en zijn collega's hebben hiervoor code gemaakt, waardoor er een soort "laag" in de applicatie kwam waardoor dit alsnog gebruikt kon worden. Het product van Michael is ResolverOne, een soort spreadsheet-programma. Via de site van .NET rocks kwam ik uit op resolversystems.com, maar zoals je daar kunt lezen is het bedrijf overgenomen. Op pythonanywhere.com is daar het project doorgezet. Dat lijkt een commercieel product, via resolversystems kun je nog op deze Github-pagina komen met de code van project Dirigible. Misschien nog wel eens leuk om te downloaden en te onderzoeken wat je ermee kunt.

PC 430: Bij "better know a framework"  noemt Carl de namespace System.Windows.Controls.InkCanvas. Hier kun je met een stylus op/in tekenen. In deze uitzending zijn Brad Abrams and Nikhil Kothar te gast, ze bespreken wat er op mix09 besproken gaat worden. Zo wordt er gewerkt aan Silverlight 3 en is Ria (rich internet application) services een onderwerp waar deze uitzending zo'n beetje volledig over gaat. Zo komt ter sprake dat een Silverlight-site nu niet echt SEO-vriendelijk was (je had maar 1 URL, je kon niet doorlinken naar onderdelen). In je HTML had je alleen de object-tag. In deze versie van Silverlight kun je wel URL's delen en komen er ook verwijzingen naar een soort HTML-versie van de pagina, waardoor SEO wel werkt. Ook geeft dat de mogelijkheid om pagina's te printen. Meer uitleg over RIA kun je hier op learn.microsoft.com vinden. Je kunt deze aflevering overslaan.