.NET Rocks - podcast 81 tot en met 90

Ingediend door Dirk Hornstra op 27-feb-2023 21:05

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 1.0, .NET 1.1 en .NET 2.0. 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.

N.B. Carl, Rory en Richard Campbell gebruiken shrinkster.com URL's om lange URL's in verkorte versie te kunnen delen... maar de site werkt niet meer. Via Google gezocht en ik zie dat dit sinds 2011 al zo is. Anders had ik die links hier kunnen delen, maar dat heeft weinig nut nu dat niet meer werkt. Update: sommige zijn via archive.org nog te vinden, dus als de link er nog is voeg ik die toe.

PC 81: Carl en Rory behandelen eerst de mail en het nieuws, zo vraagt iemand hoe hij bij Microsoft kan werken. Er was een blog van Microsoft-recruiters, en via het archief gevonden, maar dit is wel heel oud dus: link. Dus zelf maar even gezocht, mocht je bij Microsoft aan de slag willen gaan, dan lijkt me dit de pagina om te starten: link. Een luisteraar komt terug op een eerdere mail van iemand die met de TRS-80 aan de slag was gegaan, die had iets bedacht en gebouwd en dacht er flink geld mee te verdienen: en toen hoorde hij in de winkel dat versie 2 die eigenschappen al standaard had. In deze uitzending gaat het over een developer die iets voor een tandarts wilde doen, omdat je geen grafische zaken kon gebruiken heeft hij de teken-set aangepast zodat je geen letters/cijfers typte, maar verschillende soorten tanden (!!).  Joe Stagner spreekt over hacking and other lost arts. Joe noemt dat Microsoft niet "anti open-source" is, maar "anti GPL". Als je bestaande code gebruikt en daar zelf iets op toevoegt, dan moet je dat ook "terug delen"en kun je het niet zelf commercieel uitgeven. Rory geeft aan de daar de BSD-licentie geschikter voor is. Hoe VB.NET bepaalde zaken "gebroken" heeft en niet een simpele conversie van VB 6 naar .NET geweest is, omdat er anders zaken fout gebouwd zouden zijn. Tussendoor komt Kirk Webb met een nieuw item "the weird wide webb", websites die ... "vreemd" zijn. Informatie over semi-conductors met Britney Spears: link, "die screaming with things in your head": tuinkabouters die een mes tussen de ribben hebben e.d.: link, badcookie.com (werkt niet echt meer): een willekeurige "fortune-cookie" maar dan met een slechte voorspelling. Bepaalde security-zaken van Microsoft heeft Joe herschreven om het beter leesbaar te maken. Zo heeft hij het over het aanroepen van URL's e.d. om te kijken of er meer gegevens getoond worden dan gewenst (locatie database). SQL injection, waarbij hij zegt dat ook bepaalde scenario's ervoor zorgen dat ook de aanroep met parameters niet alles afvangt. Het voorbeeld van een hacker die het voor elkaar krijgt om een bepaalde overflow in een floating-point veld te krijgen en daardoor een bestelling kon uitvoeren waarbij niets betaald hoefde te worden. Cross-site scripting, waarbij mensen ingelogd zijn en bepaalde zaken doorgestuurd worden naar andere sites. Als je ergens een copy-paste van een wachtwoord, waarbij dat op het klembord blijft staan, een stukje javascript die dat uit je klembord haalt en het door stuurt naar een "bad server". Phishing. Hierna komt Richard aan het woord. Hij zit in Kuala Lumpur en heeft een winkelcentrum gezien, 6 verdiepingen hoog voor de gadget-fans: link. Een Canadees is met een experiment bezig, je gebruikt je neus als "muis" om de cursor op je scherm te bewegen, met je ogen knipperen zorgt voor klik/dubbelklik: link.

PC 82: Bij het nieuws noemt Rory "arenawars.net". De URL is niet meer beschikbaar, het was een spel gemaakt in C#. Op deze site kun je nog wel een filmpje bekijken, als je dit in C# kunt maken, dan doe je het goed!: link. De gast van deze aflevering is Richard Hale Shaw. Richard geeft training, heeft een bootcamp opgezet. De uitzending gaat over .NET, patterns en practices. Richard noemt een collega, Martin Shumaker die Tablet UML gemaakt heeft, intuïtief, werkt alleen op een tablet. Ik kan die software niet vinden, maar ik zie wel op Amazon dat hij schrijver is en een boek "UML applied" geschreven heeft, uitgebracht in 2004. Rational Rose hebben we bij onze Hogere Informatica-opleiding ook wel gebruikt. In dit boek maakt Martin de koppeling met .NET. Zo te zien is dat zijn enige "serieuze" boek en heeft hij voor de rest alleen maar science-fiction boeken geschreven. Het Cache-object komt voorbij, het Session-object. Richard geeft aan dat het geen probleem is qua data-verkeer om allemaal zaken uit de Sessie te halen: dat object heb je beschikbaar. Maar je hebt ook het Profile-object, om losse zaken aan de ingelogde persoon te koppelen. Maar dat staat in een database. Dus vraag je 50 losse onderdelen op, dan heb je ook 50 database-calls. Kirk heeft weer wat vage sites gevonden, zoals petsorfood.com. Deze is wel fantastisch trouwens, site werkt nog steeds, je krijgt een foto te zien en moet dan beslissen of het een IT-er is of een seriemoordenaar!: link. Richard komt weer met wat "toys". Zo is er een muis van Logitec, de MX1000. Deze heeft geen LED, maar laser en is daardoor heel exact qua positionering. De "bad toy" is een binair horloge, de link van Richard verwijst naar www.thinkgeek.com, maar zo te zien is die site overgenomen door gamestop.com, normale gadgets: link. De originele pagina is hier te bekijken: link. Deze uitzending had een hoog "patterns" gehalte. En niet alleen design-patterns, maar ook zaken die je toepast en eigenlijk een soort standaard worden. Carl noemt nog even het voorbeeld van het Singleton-pattern: hiermee dwing je af dat er altijd maar 1 instantie is van een object. Zo wil een student iets met sessies en een event doen, Carl geeft hem de tip om het Singleton-pattern te gebruiken.

PC 83: Bij de binnengekomen mails wordt "The Binary Song" genoemd, opgedragen aan programmeurs. Via de shrinkster-URL kom ik uit op https://skynetsoftware.com/media/BinarySong.wma, maar die geeft nu een 404.  Er wordt een stukje gedraaid, klinkt wel grappig, maar helaas niet meer online te vinden. Een andere mail is van Luke Hutteman, die heeft beschreven hoe hij de audio-bestanden omzet naar ipod-bestanden, zodat je kunt pauzeren en later verder kunt gaan, linkje werkt nog steeds: link. Luke is degene die SharpReader geschreven heeft. Je had in die tijd reclames van "I am a MAC and I am a PC", zoals deze: link. Carl laat een parodie daarop horen: link. Carl en Rory spreken met Fritz Onion over ASP.NET. Fritz is co-founder van Pluralsight: link. Heeft ook het boek "Essential ASP.NET" geschreven. HTTP-handlers en HTTP-modules komen voorbij. Hoe je extensies kunt koppelen aan een handler en hoe je de data-flow via een module wilt kunnen beïnvloeden. Ook de pijplijn (wat gebeurt er bij een call naar een web-pagina) komt voorbij. Fritz noemt het voorbeeld wat hij zelf altijd gebruikt, in System.Web.Hosting-namespace kun je een eigen instantie van de HTTPRuntime aanmaken, een Request, eigen app-domain en met een paar regels code kun je alles tonen wat er in ASP.NET hosting gebeurt in een console-applicatie. Ik vermoed hoe het nu ook in .NET Core werkt. Rory vraagt wat de "nummer 1 fout" is die gemaakt wordt. Fritz heeft die niet, maar noemt wel dat "beginners" gauw van alles en nog wat in de session-state gaan opslaan. Het zorgt voor grenzen op deployments en schaalbaarheid. Voordat je sessie-data gebruikt, waarom gebruik je niet een user-tabel in de database? Het doorgeven van data tussen pagina's daarbij wordt vaak gebruik gemaakt van sessie-data. Dat kan ook via een query-string, maar ook met een Server.Transfer, in de HttpContext.Items-collectie blijft je data dan bewaard. "round-trips" is niet van toepassing, want je sessie-data is altijd beschikbaar in het geheugen van het app-domain. Als je via een database werkt, gaat het dus wel over de lijn! Masterpages worden nog even genoemd, dit is ten tijde van deze uitzending wat nieuws. Ook Profile-data wordt genoemd, maar ook hier ziet Fritz het probleem dat mensen teveel dingen in het profiel gaan opslaan/opvragen. Een luisteraar vraagt hoe hij aan de kennis over ASP.NET komt. Fritz gebruikt daar inderdaad Reflector voor. Dat was een gratis tool, maar nadat Red Gate het product overgenomen heeft is het een betaald programma geworden. Fritz heeft ook Anakrino gebruikt (nu niet meer beschikbaar zo te zien: link). Carl noemt Salamander van RemoteSoft, deze bevat een linker en kan in jouw applicatie de DLL's toevoegen die uit het .NET Framework gebruikt worden: daardoor hoef je op de doel-machine waar de applicatie geïnstalleerd gaat worden geen .NET Framework te hebben. Maar volgens deze post op StackOverflow is dat geen actief product meer: link. Richard komt met een paar tools: de Apple Airport Express. Hiermee kun je makkelijk internet delen. Zo te zien is Apple in 2018 daarmee gestopt: link. De andere link is dat in een MAC iemand een Windows pc geïnstalleerd heeft. XP erop en ... weer een MAC skin daar overheen: link.

Peter Bloom (?) komt nog even in de uitzending (is eerder in de uitzending geweest). Ik kan zijn site zo niet vinden, hij heeft ASP.NET tools gemaakt. Carl noemt dat Scott Mitchel over zijn producten geblogd heeft. Onder andere over een security-component. Visual Input Security: de 7 security-aspecten zijn: knowledge, auditing, detection, logging, blocking, neutralization en impeding. De 4 types waar VISE wat tegen kan doen: SQL Injection, Cross-site-scripting, input-tampering en brute-force.

PC 84: Carl noemt in het nieuws dat "podcasting" een nieuw fenomeen is. Hij heeft ook wat uitspraken gedaan voor Wired, dat is hier na te lezen: link. Aanjager van podcasts is... Adam Curry! In de mails van luisteraars komt vaak hetzelfde verhaal voorbij (geweldig programma, ik luister altijd in de auto naar het werk), nu heeft 1 van de luisteraars een "Dotnet Rocks praise-generator" gemaakt: link. Bij de weird wide web komt de "Soluble Song" voorbij: link. Volgende link is over een moeder die ebay-verslaafd is, de zoon heeft allemaal foto's gemaakt van het overvolle huis: link. En deze link is wel echt grappig, dat is dat mensen in een plastic bal zich van een heuvel af laten rollen: link. Daar is ie weer eens: Chris Sells! Chris legt nog even uit hoe hij leert. Zo heeft hij in het verleden trainingen gegeven over COM en had daar zelf de grootste moeite mee. Maar door het uit te leggen en er volledig in te duiken bouw je jouw kennis op. En ook door zelf eigen projecten te doen, ga je concreet met code aan de slag en leer je hoe het werkt. Een aantal mensen kan dat door alleen de documentatie door te nemen, maar dat is wel exceptioneel. Ook het Compact Framework wordt nog even genoemd. Daarmee kun je op mobiele devices .NET uitvoeren, maar het is een sub-sub-subset, dus als je bestaande code hebt zul je dat allemaal moeten ombouwen en zien hoe je zaken die missen moet omzeilen om toch een werkende applicatie te maken. Dan komt er nog een gebruikersvraag voorbij. De .Content eigenschap, waarmee je zaken kunt stijlen. Chris heeft het over listboxes die hij maakt, maar door die te stylen kun je ze er als speelkaarten uit laten zien. De werking blijft hetzelfde. Het andere deel is de .Context, waarbij je alleen vanuit de eigen thread bij het windows-form kon komen, dat kan nu via de context.

PC 85: De Whidbey show. Whidbey is wat later "Visual Studio 2005" genoemd wordt. Bij de start van de uitzending noemt Carl nog even dat podcasting steeds populairder wordt en verwijst daarbij naar ipodder.org. Die site is niet meer online, het is een verzamelplaats voor linkjes naar podcasts. En ook tools om podcasts te downloaden? In ieder geval, er wordt gesproken met Scott Burmester, Steve Cellini, Carter Maslan en Jeff Sandquist. Niet echt interessant.

PC 86: Juval Löwy over .net 2.0. Zo komt onder andere System.EnterpriseServices voorbij (voor transacties over meerdere servers). In show 34 is Juval ook al in de uitzending geweest. Juval zijn eigen website is hier te bekijken: iDesign. En Kirk heeft weer een aantal dubieuze sites: mocht je een afscheidscadeautje voor een Italiaanse collega willen kopen: het afgehakte paardenhoofd: link.

PC 87: In deze aflevering spreekt Carl met Jay Roxe. Kirk komt weer met wat sites, zo heeft een dame zichzelf uitgedost als Gimli van Lord of the Rings: link. Via archive.org, foto's zijn niet meegenomen (en dus geen idee hoe het eruit zag). Richard komt met de "sideway-bike", een hele aparte fiets: link. Jay is tijdens de uitzending manager van de Visual Basic afdeling (nu niet meer volgens mij), maar heeft daarvoor gewerkt aan .NET, zoals de string-class en de StringBuilder. Carl vraagt Jay waarom de string een "sealed class" is, hij antwoordt dat er zoveel trucjes in die class uitgevoerd worden (voor performance en werking) dat dit een vereiste was. Interessante uitzending!

PC 88: We beginnen nog even met reclame voor Pwop Streaming, het bedrijf van Carl: link. Carl spreekt met Kate Gregory over c++, VB.NET en VSTO (Visual Studio Tools for Office). Kate heeft ook een eigen blog: link. Ook dit is weer een leuke uitzending! Kate werkt met C++ en omdat, als ze met een andere programmeertaal werkt, niet met "puntkomma's" en iets andere syntax wil werken, werkt ze in VB en niet in C#. En ook omdat veel klanten denken dat ze zelf zaken kunnen onderhouden als het in VB geschreven is.  Ze kijkt uit naar de nieuwe C++ omdat de syntax beter/makkelijker is. Verschil is dat in C++ je objecten meteen opgeruimd worden, bij .NET gaat uiteindelijk de garbarge collector het doen. Kate geeft aan VSTO gebruikt te hebben, een klant had een workflow gemaakt op de oude manier, gemaild naar het management, maar omdat je dan de melding "wil je deze macro's uitvoeren" in beeld komt en de goed opgeleide/getrainde gebruikers klikken op "nee, niet doen!", werkte die workflow-app niet. Er moet een code-access policy door IT geïnstalleerd worden op de computers om die code toe te staan. Ook een interessante blik op compatibiliteit, we hebben nu "nieuwe wrappers om nieuwe zaken", zoals je bijvoorbeeld Interop hebt, maar Kate geeft aan dat je ook een wrapper om de nieuwe module kunt maken, die dan in "oude code" gebruikt kan worden. Infopath is volgens Kate heel geschikt voor data-invoer. Kate komt ook nog met een voorbeeld uit de praktijk, waarbij ze in haar code geen underscore mocht gebruiken. Bij een bepaald type printer werd 1 pixel eraf gehaalt, zodat er meer op het papier kon staan. Maar daardoor viel de underscore dus weg...

PC 89: Deze uitzending gaat voor de verandering voornamelijk over Java. Mark Pollack, Ted Neward en Don Box spreken hierover, over de toekomst (let wel, dit is een uitzending uit 2005, dus die toekomst die hier besproken wordt dat zijn we nu of al gepasseerd). De aflevering start met dat er gesproken wordt over een container-framework wat nu ook naar .NET wordt overgezet, Spring.NET. Laatste bericht op die site is van 2012, dus het lijkt erop dat daarna er geen progressie meer geboekt is. Java en .NET zijn bezig met productontwikkeling, als in de één wat ontwikkeld wordt en omarmd wordt, Generics in .NET, nu ook in JDK.

PC 90: Bijpraten met Julie Lerman. Julie haar eigen site is hier te bekijken: link. Ze spreekt over Whidbey, ook een talk over de tablet. Julie is iemand die veel mensen kent en zorgt dat mensen met elkaar in contact komen. Julie heeft ook nog bij Playboy en Penthouse gewerkt ( administratief, brieven behandelen :) ). Julie bereidt zich altijd goed voor op haar presentaties. Zo kon ze niet goed bevatten wat "delegates" waren. Tot ze iemand die in C# programmeerde horen zeggen: dit zijn events, in VB noem je dat delegates. En snapte ze wat een delegate is/doet.

 

En in één van de laatste uitzendingen kwam nog voorbij (we leven nog in het .NET 1.1 tijdperk) dat C# geen optionele parameters toestaat, dus als een functie 27 optionele parameters heeft, dan moet je ze wel alle 27 mee geven... Dan is C# de afgelopen jaren gelukkig toch een stuk beter geworden!

En wat ik hier ook nog ergens hoorde is dat "normaliseren" niet altijd de juiste oplossing is. Zoals wij het geleerd hebben, NIAM-analyse, velden naar eigen tabellen overzetten, maar uiteindelijk 17 joins overhouden voor een SELECT-query, doe het niet.