.NET Rocks - podcast 191 tot en met 200

Ingediend door Dirk Hornstra op 10-jun-2024 21:32

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.

PC 191: In deze uitzending spreekt Jimmy Nilsson ons bij over Domain Driven Design. In podcast 184 kwam zijn boek al voorbij, ik hoop dat het boek wat interessanter is dan deze uitzending. Want het is traag, er komt weinig uit, deze podcast kun je dus wel overslaan.

PC 192: In aflevering 38 luisterden we naar een podcast waarbij Carl en Mark spraken in een café. Onverstaanbare uitzending. Deze keer zit Richard in Canada en Carl zit met zijn gast Steven Forte bij een pizzeria. Minder luidruchtig, dus het gesprek is deze keer wel te volgen. Steven is vaker te gast geweest, onder andere over outsourcing. Hij is recent met Richard op vakantie geweest naar Japan om Mount Fiji te beklimmen. In de uitzending komt voorbij welke initiatieven Microsoft ontplooit in landen met "opkomende economieën", waar een ontwikkelaar met laptop maar mogelijk met slechte/uitvallende elektriciteit toch zijn/haar geld kan verdienen. Ook hoe Microsoft onder vuur kwam, de overheid die zich ermee bemoeide en wilde dat Microsoft in meerdere bedrijven opgesplitst zou worden. Ook de regels van de EU waarbij de mediaplayer niet meer in Windows meegeleverd zou mogen worden. De OEM-cd's werden niet verkocht, de Europeanen wilden namelijk de versie waarbij de mediaplayer wél al geïnstalleerd was. Het gaat erom dat als een concurrent een beter product heeft, de klant dat zal gebruiken/kopen. Dat zien we inmiddels zoveel jaar later nu Internet Explorer echt volledig verdwenen is en Edge niet de meest gebruikte browser is, dat is toch Firefox of Chrome. De "stunt" van Richard en Steven komt nog ter sprake, bij een event van Microsoft lieten ze zien hoe ze via stored procedures in SQL Server een Oracle database konden aanroepen en connecten binnen een ASP.NET applicatie en je zo dus een "soepele migratie" van een bestaand systeem kunt garanderen. Een ander project is de "Query Governor". Via show queryplan kun je in XML opvragen hoelang een query geschat kan duren. De query zelf wordt dan nog niet uitgevoerd. En met bepaalde monitoring-gegevens kon je zien hoe zwaar de server belast was. Of als je een "super-user" was kon je wel de acties uitvoeren. En daarmee kun je bepaalde query's blokkeren. We blijven nog even in de databasesfeer. Steven noemt het feit dat veel developers de normalized tabellen gebruiken om ook de rapportages te tonen: veel JOINS. Daar is de boel eigenlijk niet voor bedoeld. Je zou de data op vaste tijden naar "platte tabellen" over moeten zetten waar dan snel de rapportage uit getrokken kan worden. Ook geeft hij nog de tip om in query's achter de TABLE-name het statement NOLOCK toe te voegen als het toch alleen maar een SELECT actie is. Hiermee voorkom je dat er een lock op de data gezet wordt. Het enige risico dat je hebt is dat de gelezen data niet constent kan zijn, maar de kans daarop is minimaal. Steven is ook "in het vak gerold", iets wat eerst hobby was, Acces-development en uiteindelijk  .NET. Carl geeft aan dat je vroeger eigenlijk nog "een generalist" kon zijn, iemand die van alles wat wist. Met de grote toolkit van het .NET Framework is dat bijna niet meer mogelijk. Want iemand die alleen met data bezig is, heeft mogelijk nog nooit wat met Smart Cliënts gedaan. Of met Reflection. Maar dankzij de consistente opbouw, documentatie en voorbeelden is het voor een developer redelijk makkelijk om het snel onder de knie te krijgen. De tool die Steven gevonden heeft is RegexBuddy.

PC 193: In deze aflevering spreek Joel Semeniuk over updates in Team System. Via een zoekopdracht kan ik nog een oud MSDN-magazine artikel vinden waarin Team System genoemd wordt. Daarin wordt al gesproken over Team Foundation Server. En via dit artikel op Microsoft Learn kun je zien dat dit inmiddels opgegaan is in Azure Devops. Je kunt deze uitzending wat dat betreft wel overslaan, want het gaat over "inmiddels verouderde techniek". In deze uitzending hoor je dat er over "work-items" gesproken wordt, compliment van Richard dat het geen "bugtracker" meer is, maar je het voor meerdere zaken kunt gebruiken, niet alleen voor bugs. Ook voor het opslaan van documentatie e.d. gebruikt Richard TS, Joel noemt ook het voorbeeld van persona's waar zij het voor gebruiken. Dankzij XML zijn allemaal zaken aan te passen, waardoor je extra velden kunt toevoegen, verplicht of niet verplicht kunt aanpassen en ook andere regels in kunt stellen. Laten we het erop houden dat Azure Devops dus gebouwd is op de fundamenten van dit waar jaren aan gewerkt en over nagedacht is. De gadget die Joel noemt is de i-mate SP5. Een mobiele Windows telefoon, de huidige telefoons lijken allemaal op elkaar (de platte tegel) en kunnen veel meer, maar ik moet zeggen dat zo'n plaatje ook wel weer wat nostalgische gevoelens oproept. Net zoals je een oud Dafje , 2CV of Kever ziet rijden.

PC 194: Huihong Luo heeft het in deze uitzending over obfuscation en decompiling. Het is al redelijk snel duidelijk in deze uitzending, die Huihong is een slimme gast! Vroeger had hij al code gemaakt om JAVA code te kunnen decompileren, dat heeft hij als basis gebruikt om .NET code te kunnen decompileren. Volgens hem niet al te moeilijk omdat het "intermediate code" is, juist omdat meerdere programmeertalen ondersteund worden (zoals VB en C#). Je hebt natuurlijk Reflector, maar zijn tools zijn heel goed. En hij heeft ook code gemaakt om code juist te kunnen "obfuscaten", oftewel, slecht/moeilijk leesbaar te maken als je code op die manier weer terug wilt krijgen. In de notities van de podcast op de site van .NET rocks worden 2 websites genoemd, remotesoft.com (site werkt niet meer) en codase.com. Een paar interessante blog-artikelen, maar auteur "Mike Codase", dus dat lijkt iemand anders te zijn. In de podcast horen we hem praten over de Salamander suite. Daar zit een decompiler, obfuscator in, maar we horen ook dat hij een compiler heeft waarmee je executables kunt bouwen waarbij het .NET Framework niet op de machine geïnstalleerd hoeft te zijn. Niet optimaal (want Microsoft kan updates in het algemene framework doorvoeren), maar een mogelijke oplossing voor bedrijfsomgevingen waarbij de systeembeheerders absoluut niet toestaan dat het .NET Framework geïnstalleerd wordt. Via Google zijn LinkedIn-profiel gevonden, bij het intro geeft hij aan dat sommige mensen hem wel de titel "God of Programming" geven. Na deze podcast twijfel ik daar niet aan, het is duidelijk dat hij een pro is. Via archive.org kun je de website van remotesoft nog bekijken: link.

PC 195: Roy Osherove over reguliere expressies. Het bedrijf van Roy is Team Agile, het domein teamagile.com is niet meer online. Roy zijn eigen blog is te bekijken op iserializable.com, de URL wordt inmiddels doorgestuurd naar artofunittesting.com. Je kunt krachtige dingen doen met reguliere expressies. Waarbij je anders door teksten heen moest filteren om zaken eruit te halen of te vervangen of juist de zaken die "niet matchen" eruit te halen, met een aantal goede expressies kun je dat vaak redelijk snel oplossen. Alleen, reguliere expressies zelf, die moet je wel een beetje leren hoe het werkt. Waar staat iets voor? Hoe werkt het? En dat is nog wel iets met een leercurve. Van mezelf durf ik wel te zeggen dat ik mij kan redden met reguliere expressies, maar ook ik moet toegeven dat in sommige situaties het voor mij wel even op basis van trial-en-error gaat om iets werkend te krijgen. Deze uitzending is leerzaam omdat er nog wel wat zaken genoemd worden die ik ook nog niet kende :) I ben gek op "tooltjes". Er worden hier een aantal genoemd. De site die collega's nog wel eens gebruiken is RegExr.com, niet in deze uitzending genoemd, maar wel handig als je met reguliere expressies bezig bent. Zo te zien is Roy zijn eigen site nu te bereiken op osherove.com. Daar heb je een menu-item Tools en daar staat een mooie lijst. Onder andere Regulator en Regulazy die tijdens de uitzending genoemd worden kun je hier vinden en ook de verwijzingen naar de broncode van deze projecten. Ook de property voor "compiled regex" wordt genoemd. Als je in for-next loops zit met reguliere expressies, dan kan dat flink wat tijdwinst opleveren. Ook wordt genoemd dat je matches "namen" kunt geven. Meestal ga je met een for-next loop door je matches, of doe je dat met matches[0], matches[1], maar dat kan dus ook met namen. Maakt je code duidelijker en ook minder foutgevoelig! Het lijkt erop dat Microsoft hier de uitleg geeft: link.

PC 196: In deze uitzending spreekt Rob Conery over Subsonic. Ik zag in mijn aantekeningen terug dat ook in Hanselminutes aflevering 132 Scott met hem hierover gesproken heeft. Rob heeft ervaring met Ruby on Rails, een manier om heel snel met Ruby een website online te brengen. Hij kwam daar de term "scaffolding" tegen, waarbij hij niet snapte wat ermee bedoeld werd, dat is dat op basis van je databasestructuur deze in code wordt weergegeven. Subsonic is een ORM, waarmee je databases en je code/project makkelijk aan elkaar kunt knopen. We horen de voorbeelden van onder andere Richard waarbij hij een voorbeeld moet tonen en daarbij wat in Excel uitgewerkt heeft: als de opdracht aangenomen wordt en de site gebouwd moet worden, kun je dat natuurlijk wel weg gooien. Met Subsonic zou je redelijk snel een soort Proof of Concept moeten kunnen bouwen (snel even data toevoegen e.d.). Rob geeft aan dat je dit niet voor productie moet gebruiken, maar alleen voor development. Hij geeft het voorbeeld waarbij hij voor iemand in 3 dagen wat moest opleveren en dat dankzij dit project gelukt is. Voor de rest niet veel toevoegingen op de hanselminutes 132, hierbij nog even de rechtstreekse link naar Subsonic op Github (4 jaar geleden voor het laatst bijgewerkt), Rob zijn site heet inmiddels Big Machine, waarbij er nog wel een "blog-archief" is. Rob heeft de Commerce Starter Kit opgezet, waarbij ik moest zoeken om die te vinden. Op Codeplex nog een starterkit voor verenigingen gevonden: link.

PC 197: In deze uitzending spreekt Johnathan Zuck over IP Law, het Amerikaanse Congres en patenten. In de uitzending komt weer terug dat de EU koppelverkoop wilde verbieden en voor de EU Microsoft daarom de mediaplayer uit het product moest halen. Dat is bij een versie gedaan, maar daarbij werd alles instabiel. En de verkoopcijfers gaven ook aan dat consumenten juist de versie mét de mediaplayer wilden. Onder andere Real Media spande een zaak aan, Carl en Richard zijn daar niet over te spreken (aangezien RM allemaal toolbars en andere onnodige software meelevert). Het is duidelijk dat mensen die niets van IT weten hier beslissingen over nemen. Iemand in de rechtzaal die "lodzjun" zegt voor "log in". Ook hoor ik hier nog even "WinAmp" en bedenk ik mij, het is een hele tijd geleden dat ik op mijn pc WinAmp draaide met mijn eigen MP3-tjes. Standaard heb je nu Spotify aan. Op de site kun je nog de Windows-versie downloaden.

PC 198: Live uit Bulgarije! Carl en Richard zijn in Sofia voor DevReach. Het grootste gedeelte van de show is het panel, met Carl en Richard zijn andere bekenden (Steven Forté, Angus Logan, Julie Lerman en nog een paar) bij dit event en worden vragen uit het publiek beantwoord. Zo gaat het over .NET, java en Ruby. Over dynamische talen en bijvoorbeeld C# waarbij een compiler bepaalt of je code gebouwd kan worden. Er komen nog wat programmeertalen voorbij, Smalltalk wordt ook genoemd, FoxPro. Een vraag uit het publiek "waar moet ik in investeren om binnen 5 jaar superrijk te worden" is niet te beantwoorden. Want elke taal heeft zijn eigen goede en slechte punten. Tussendoor praat Carl nog met iemand van Telerik, dit bedrijf komt uit Bulgarije (wist ik niet). En bij een ander hebben ze ook nog een drankje, rakia, een soort likeur, een echt Bulgaars drankje. Steven vertelt hoe hij programmeur geworden is. Hij werkte op Wall-Street. Begon wat zaken te automatiseren. Ging naar Access en ook daarin programmeren, door naar Visual Basic en nu .NET. Voor de rest kun je deze uitzending wel overslaan. Iets wat ik nog wel interessant vond was dat Ted Neward iets uit het boek The Pragmatic Programmer noemde, namelijk om "elk jaar een nieuwe programmeertaal te leren". Het geeft jou namelijk andere inzichten, "kan dit ook", "kan het op déze manier" en "maar in mijn programmeertaal kan dat veel makkelijker". Dat is wel iets wat ik in de praktijk wil gaan brengen.

PC 199: Josh Holmes spreekt in deze uitzending over  SQL Everywhere. Ik kende deze variant nog niet. Je hebt natuurlijk de "normale SQL Server", de SQL Server Express die ontwikkelaars vaak gebruiken, maar je hebt ook een SQL Mobile (wat nu SQL Everywhere gaat worden). Is Express nog 50 MB, Everywhere is iets van 1.4 MB. Het was namelijk bedoeld voor mobiel en tablet, maar we gaan het nu ook gebruiken voor de desktop. Je hebt geen admin-rechten nodig, je kunt de data "in jouw app" bouwen, click-once. Richard komt met de opmerking dat hij gehoord had dat de onderliggende techniek "Jet" was. Daar begint Carl te steigeren, want dat is wat vaak voor Access gebruikt werd en was bedoeld om met maximaal 1 persoon met die database te werken. Josh zegt dat dat bij SQL Everywhere absoluut niet zo is, mogelijk wel bij voorganger SQL CE. Dat was namelijk wel een implementatie waarbij er maar 1 toegang heeft (en je dus in je code moest zorgen dat als je een read startte je wel de boel weer netjes afsloot na gebruik). Josh heeft het er al over dat er vertraging was met het uitbrengen (reden niet bekend) en als ik nu zoek op SQL Everywhere, dan vind ik niets: het lijkt erop dat dit product het niet geworden is. Via Wikipedia kun je het algemene SQL-Server overzicht bekijken: link en daar zie ik ook de SQL Server Compact: link. Qua omschrijving lijkt die het meest overeen te komen (ook met een .sdf bestand). Maar ook dat product wordt nu niet meer ondersteund. Josh noemt ook nog Tablet UML, waarmee hij op zijn tablet UML diagrammen kan maken. Carl vraagt of hij ook de class-designer in Visual Studio gebruikt. Josh gebruikt dat niet, vindt dat teveel gedoe o.i.d., hij wil gewoon snel wat kunnen "krabbelen". Dat zou door een vriend, Martin Shuhmaker gemaakt zijn. Ik kan daar online niets over terug vinden.

PC 200: The 200th episode quiz show! In deze uitzending zijn weer wat gasten, Rory Blythe, Mark Dunn, Mark Miller. Het is wat bla-bla, er zit een quiz in. Carl zingt de VB-song (34:30), muziek is gebaseerd op Blind Blake - Police Dog Blues en laat alvast horen wat het nieuwe intro van de podcast wordt (nieuwe versie van Toyboy). Deze uitzending is exact een jaar na de roadtrip, dus we horen nog 2 items van die uitzending, onder andere www.bigpumpkins.com Je kunt deze uitzending dus wel overslaan.