.NET Rocks - podcast 301 tot en met 310

Ingediend door Dirk Hornstra op 13-may-2025 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 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 301: In deze uitzending is Joe Duffy te gast om te praten over de Task Parallel Library. Zo heb je in LINQ-query's het statement .AsParallel() waarmee bepaalde instructies over cores verdeeld kunnen worden. Goed om te horen hoe de ontwikkeling daar gaat. Zo noemt Joe een voorbeeld van een lijst waarbij je bepaalde waardes als input hebt en bepaalde waardes als output. Als de input 1, 2, 3 is en in de actie wordt een vermenigvuldiging met 2 gedaan, dan zou je verwachten dat de output 2, 4 en 6 is. In eerste instantie behield hun code die sortering niet, het was een opt-in, want het team koos voor "de snelste oplossing". Maar na reacties van gebruikers ("wij" verwachten dat de volgorde behouden blijft) is het nu een opt-out geworden, maakt de volgorde niet uit, maar snelheid wel, dan kun je dat nu aangeven. Ook wordt software transactional memory genoemd, wat ook eerder in een uitzending behandeld is. Luke Hubin heeft een blog over een raytracer. Het was even zoeken, maar ik heb het blog gevonden. In 400 regels code een raytracer maken... cool! De link naar de code werkt ook nog. En ook hier zit je met limieten, volgens de code die gebruikt wordt kan een windows-pc maximaal 64 processors hebben.

PC 302: Bij "better know a framework" noemt Carl de namespace System.Speech.Synthesis. Nog nooit mee gewerkt, maar nu even snel een console-app opgezet volgens dit voorbeeld van Microsoft. Dat je geluid via je speaker kon laten afspelen met Quick Basic heeft mijn interesse voor programmeren gestart ;) Jeff Prosise spreekt in deze uitzending over Silverlight. Zoals we inmiddels weten is Silverlight "niet meer". Ten tijde van deze uitzending is versie 1.1 hernoemd naar versie 2.0. Bij versie 1.0 was heel veel media, geluid, video, maar dat was niet het enige. Maar wel de reden dat developers/bedrijven afwachtend zijn en zeggen: "We wachten wel op versie 2.". Maar misschien is het wel één van de start-acties voor het huidige Blazor. Daarmee laat je ook code aan de client-side draaien. Ook de Surface wordt nog genoemd. Dat was een hele grote tafel waar je met touch op kon werken. Supervet ding. En waarschijnlijk ook superduur. Volgens Wikipedia heeft het later de naam PixelSense gekregen. De link naar die site is een archive.org link, dus ik ga er vanuit dat dit niet meer een actief project is.

PC 303: In "better know a framework" noemt Carl de System.VisualBasic.Compatibility.VB6 namespace. Deze ga je waarschijnlijk gebruiken als je een VB6-applicatie hebt en wilt updaten naar VB.NET. Op learn.microsoft.com staat meer informatie over deze namespace. In deze uitzending is Ken Levy te gast die het heeft over Visual Studio Extensibility (vsx). Je hebt ook nog de Visual Studio SDK waarmee je binnen Visual Studio zaken aan kunt passen. De oude verwijzingen in de show werken niet meer (msdn.com/vsx), via archive.org kun je nog wat informatie terugvinden. Ik ben naar de pagina van Visual Studio gegaan, daar is een link "Developer Tools - Extensions". En op die vervolgpagina staat een "build your own". Je komt dan op learn.microsoft.com waar je ook een verwijzing vindt naar de SDK. Op Ken zijn blog kunnen we lezen dat hij in 2008 weggegaan is bij Microsoft en een eigen bedrijf gestart is. In de uitzending noemt Ken de Focus-edities van Code Magazine. Dat zijn magazines toegespitst op 1 onderwerp, online hier te vinden.

PC 304: Bij "better know a framework" noemt Carl de namespace Ssytem.Drawing.Printing. Hij heeft dit zelf gebruikt om muziekpapier te printen (dus de 5 notenregels, de G-sleutel). Dit is de tijd dat niet alleen Silverlight er is, maar ook Flash! Ik heb het altijd jammer gevonden dat Flash verdwenen is. Een luisteraar deelt nog even de flex.org website, waar je coole voorbeelden kunt vinden van wat je met Flash kunt doen. Deze luisteraar noemt ook CSS garden, ik neem aan dat het CSS Zen Garden is. In deze uitzending is Kathleen Dollard te gast en spreekt met Carl en Richard over de evolutie van Software Development. Ze heeft op haar blog een lijst met items gemaakt welke spelen in het huidige tijdperk. Tijdens het behandelen van die punten ontdekt ze dat er nog een item toegevoegd kan worden, namelijk de obsolete tag. Daarmee geef je aan dat een functie eigenlijk niet meer gebruikt zou moeten worden en mogelijk in een volgende versie (of later) verwijderd gaat worden. Aan het einde van de uitzending komt ze ook nog met een bug die ze had gevonden en die het team van Microsoft opgelost heeft. En dat was een hele "nasty bug"! Als je een Visual Basic solution had, met meer dan 5 projecten en iets met "constrained generics" deed, dan kon er een conflict zijn met een DLL. Als je kiest voor "clean solution" dan was het waarschijnlijk gefixt, maar kon het probleem later toch weer terug komen. Kathleen liep er tegenaan bij een project toen een combobox niet met waardes gevuld werd. Ze zette een breakpoint op het stuk code en zag tijdens het debuggen... dat het breakpoint verschoof! Dat mag/kan niet, dus het betekent dat er een stuk code mist. Met Reflector zag ze vervolgens dat die regel miste uit de intermediate code! Haar advies: zip je code en stuur het naar het team van Microsoft, want je hebt nu een heel goed voorbeeld. Er is een KB-update doorgevoerd, zodat de bug opgelost is. Kathleen loopt al wat "langer" mee, ze programmeerde al in 1972. De uitzending gaat er dus over wat er allemaal anders is. Kathleen komt bijvoorbeeld met het punt dat haar klanten/projecten nu vaak 200 of meer databasetabellen hebben, "vroeger" was 50 toch al "heel veel". De lijst is via archive.org nog na te lezen. En op de site van Microsoft is nog een blog van Kathleen, loopt nu (april 2025) tot november 2024.

PC 305: In deze uitzending zou Steven Lees het over Feedsync hebben, maar er is blijkbaar wat fout gegaan, op de site krijg je namelijk de podcast van aflevering 1305. feedsync.org is niet meer online, alleen nog via archive.org te bekijken. Er is een Wikipedia-entry over gemaakt, die verwijst nog naar codevoorbeelden. Het ging dus om Atom en RSS, waarbij die niet 1-richtingverkeer zijn, hier is een feed, maar ook zaken teruggekoppeld kunnen worden.

PC 306: In "better know a framework" noemt Carl kort de namespace System.IO.Ports. Deze is bedoeld voor seriële communicatie. Ik heb hier volgens mij ook nog ergens een cardreader die via een seriële poort verbonden wordt. Richard zegt dat veel computers al zonder seriële aansluiting geleverd worden, Carl gelooft dat niet, maar bekijkt zijn eigen pc en komt tot de conclusie dat die daar dus ook al niet meer op zit... Bij de ingekomen mail is een mail van iemand die een IT-professional is en Carl en Richard raden hem aan om ook te luisteren naar runasradio.com, de podcast van Richard die op IT-professionals gericht is. Is nog steeds online, dus ik moet nog meer podcasts gaan beluisteren... In deze uitzending is David Aiken te gast. David is aangesloten bij een team wat een demo-applicatie voor WPF, WCF en andere technieken heeft gemaakt, dinnernow.net. Nu niet meer online, via archive.org nog terug te vinden. David heeft het in deze uitzending over het overbruggen van de ruimte tussen ontwikkelaars en IT. Hij heeft wel eens bij een bedrijf gewerkt waar 80% van het werk het fixen van bugs/opsporen van problemen was. In deze uitzending komen dus het loggen van fouten voorbij, maar ook warnings (de hoeveelheid schijfruimte is nog maar 10%, dat gaat straks problemen opleveren). Met de tool van David, System Operation Manager kun je die logs veel makkelijker bekijken/uitfilteren. Via dit artikel op theregister.com vond ik nog een pagina hierover (via archive.org). Volgens Wikipedia is het nog steeds een actief product. Ook komt WMI voorbij, de Windows Management Instrumentation. Tot .NET Framework 3.5 was het read-only, maar vanaf 3.5 kun je ook data schrijven. Zo komen XML-bestanden voorbij, die wil je daar kunnen tonen en (deels) kunnen bewerken: en dat is nu mogelijk.

PC 307: In deze uitzending spreken Carl en Richard met Sahil Malik over Sharepoint. Volgens hem is Sharepoint 2007 een "game-changer" omdat deze echt op het .NET Framework gebouwd is. Je kunt dus heel snel een soort prototype opzetten. Waar je anders 3 maanden bezig was om "een eerste scherm te tonen" kun je dat nu in een aantal dagen (of sneller) doen. Sahil zijn website is hier te bekijken, Sahil zit ook nog op X.

PC 308: Bij "better know a framework" noemt Carl de "yield"-methode. Die heb ik ook al eens genoemd, het is handig voor enumeraties van lijsten, waarbij losse resultaten "tussendoor" teruggegeven moeten worden aan de aanroepende functie. In deze uitzending is Aaron Skonnard te gast. Aaron is één van de mensen die Pluralsight opgezet hebben. Onderwerp is voornamelijk BizTalk en de mogelijkheden die WCF daarbij biedt. BizTalk is een product waarmee je poorten/diensten aan kunt bieden waar data aangeleverd kan worden (FTP, REST services) en outputs. Het eerste idee wat ik daarbij heb is dat het nogal duur was en dat is iets wat Richard ook ter sprake brengt. Want "voor BizTalk" had je EDI en andere systemen en die waren nog veel duurder. Als je die wetenschap niet hebt, dan lijkt het duur, maar Microsoft heeft dus wel degelijk een goed prijskaartje hieraan gehangen. In BizTalk had je een Mapper-component waarbij je zaken aan elkaar kon koppelen en daar XSLT's van kon maken, volgens Aaron één van de redenen waarom mensen een abonnement op BizTalk namen. BizTalk heeft workflow, in .NET is nu ook een workflow-component, maar lang niet zo toereikend als deze bestaande component in BizTalk. Ik had het idee dat BizTalk een product was wat niet meer actief was, maar als ik op de pagina met documentatie kom, zie ik dat er een BizTalk Server 2020 is. Zoals in de uitzending al gezegd wordt, er zou een soort "Express Edition" moeten zijn waarmee mensen kunnen testen en uiteindelijk zo enthousiast worden dat ze het volledige product gaan gebruiken of gaan adviseren aan klanten. Bij een zoektocht kom ik op een downloadpagina van Microsoft, toch maar eens in een virtuele machine gaan testen wat je hiermee kunt.

PC 309: In "better know a framework" noemt Carl de "inferred types". In VB kun je nu de Dim x = new StringBuilder() doen en in C# de var x = new StringBuilder(); Het type wordt dus bepaald op basis van het aangemaakte type. Ik dacht dat dit iets meer recenter was, maar schijnbaar zit dat al ongeveer 17 jaar in .NET... In deze uitzending is Les Pinter te gast. Een "oude gast". Hij heeft namelijk in het verleden met een team een tekstverwerkingsprogramma gemaakt wat Bill Gates later gekocht heeft, dat is het latere Word geworden. Zijn geld heeft hij voornamelijk met Foxpro verdiend. Hij heeft ook voor George Lucas gewerkt. En zo heeft hij nog wel meer smeuïge verhalen. Geen uitzending om iets te leren, maar wel interessant om te horen hoe hij zich ontwikkeld heeft. Net voor hij voor George Lucas ging werken werkte hij in Texas, doordat de olieprijzen inzakten was daar geen werk meer en had hij bijna geen geld meer. Het schijnt dat Bill ooit gezegd heeft dat elke verkoop van FoxPro ervoor zorgde dat er minder SQL Server licenties gekocht werden, dat zou een reden kunnen zijn dat langzaam maar zeker Fox Pro de nek omgedraaid is. Ik heb gezocht of Visual Fox Pro 9 nog ergens verkrijgbaar is, mocht iemand ondersteuning nodig hebben. En ook daar biedt archive.org de helpende hand, op de site kun je een .RAR of Torrent-bestand downloaden. Mocht je er dan nog meer mee willen doen, Microsoft heeft nog hun downloadpagina (niet getest of de linkjes nog werken) en er was een CodePlex-omgeving die via archive.org nog te bekijken is en via een archiefdomein. Ook is er nog een WIKI, die heb ik volgens mij eerder al eens gezien (en gedeeld), die toont geen info omdat de beheerder een excuus verwacht van een bezoeker/spammer. Les Pinter zijn website is te bekijken op lpinter.com (HTTP, niet HTTPS).

PC 310: Simon Peyton Jones is te gast, het onderwerp in deze uitzending is Haskell en Functioneel Programmeren. We beginnen met Lazy Programming. Bij veel programmeertalen wordt voor de start van een functie de waarde al berekend. Een voorbeeld:



public int TestGetal(int x, bool calculate) {
  if (calculate == false) return 10;
  return x;
}

TestGetal(10+20+30+40+50,false);
 

Op het moment dat je bij de "if (calculate..." bent, is de binnengekomen waarde x al ingesteld op 150, dat is al berekend. Maar.. omdat je calculate parameter "false" is, doe je niets met die waarde. Het berekenen daarvan is dus zinloos geweest. Dat kost machinetijd en in dit geval is het een redelijk simpele actie. Simon geeft ook het voorbeeld van een schaakbord waarbij je via een boom-contructie en nodes er doorheen gaat lopen. Daar heb je een splitsing voor het opstellen van het bord en het berekenen van de mogelijkheden. Het doet me een beetje denken aan het verhaal van de koning en het schaakbord. De koning vindt het een stoer spel en vraagt de uitvinder wat hij ervoor wil hebben. Hij wil 1 rijstkorrel op vakje 1, 2 rijstkorrels op vakje 2, 4 rijstkorrels op vakje 3 en zo verdubbelt dit zich tot en met vakje 64. Als je zo start denk je: is te doen. Maar het zijn triljoenen rijstkorrels, zoals je hier kunt lezen. Dus je kunt je voorstellen dat als je door een hele boom qua mogelijkheden gaat en alle "takken" worden al uitgerekend, dan gaat dat niet lukken. Als je alleen binnen je huidige functie de berekening doet hou je zaken beheersbaar.

Bij Lazy Programming wordt dit pas gedaan op het moment dat het nodig is.

Carl noemt nog even  dat Simon erg lijkt op Michael Palin en daarbij komt ter sprake dat ze de "cheese sketch" geweldig vinden. Via Youtube terug te kijken.