.NET Conf 2020, mijn samenvatting

Ingediend door Dirk Hornstra op 16-nov-2020 08:05

Op 10 november trapte Scott Hunter om 17.00 uur af, de .NET conf 2020 is begonnen! Het belangrijkste nieuws was bij Build 2020 al benoemd, we krijgen .NET 5 en C# 9. Ik heb dus 24 sessies rechtstreeks gevolgd en nog 10 stuks die ik deels gezien heb (omdat ik aan het fitnessen was, ook op een bepaald moment moest eten of even een bakje thee wilde drinken). De site is te vinden op https://www.dotnetconf.net/ en daar is nu ook meteen de playlist gedeeld die op Youtube staat, je kunt hier alle sessies bekijken (handig, zo kan ik de gemiste of degene waarvan ik een deel gezien heb alsnog zien): link. En in deze Github-repo worden (als het goed is) ook nog projecten en presentaties gedeeld: https://github.com/dotnet-presentations/dotNETConf/tree/master/2020/MainEvent

Bij TRES behandelen we elke keer een hoofdstuk van Secure by Design. Daar maak ik dan een samenvatting van, maar ook een "samenvatting in een paar zinnen". En dat lijkt me hier ook wel handig, want eigenlijk moet ik ook nog zaken van Build 2020 zelf eens uitzoeken (en dat was in mei dit jaar), daar kan ik ook gewoon "snel doorklikken" op de linkjes in de korte samenvatting. Wat me opvalt, hoewel ik zelf niet heel veel met Twitter meer doe, is het wel een prima manier voor dit event om sprekers in contact te komen met het publiek. Veel sprekers delen hun Twitter-account. En de URL van de tweet-wall was te zien, dus ik heb al de tweets ook op mijn iPad kunnen volgen (link).

Korte samenvatting

.NET 5 is beschikbaar: download of in Visual Studio vanaf update 16.8

Heb je een class die eigenlijk alleen maar data bevat en waarbij je gek wordt van alle "getter" en "setters"? Gebruik het nieuwe type "record"!
Heb je een waarde die je alleen in de constructor zet, dus eigenlijk "immutable" is? Gebruik niet get;set; maar get; init;

Geïnteresseerd in (online) events in Nederland? Volg op Meetup de Dutch .NET Group (link).

Ga je starten met Kubernetes of gebruik je het al? Kijk dan eens naar Tye, development-project, maar ziet er veelbelovend uit: https://github.com/dotnet/tye

Query-acties e.d. uitvoeren op databases? Azure Data Studio is een soort kloon van Visual Studio Code waarin dat kan: https://github.com/microsoft/azuredatastudio

Interactief werken in Visual Studio Code? Download/installeer de Code Insiders versie en installeer dan deze plug-in. Op de pagina van de plug-in staat waar je de VS Code Insiders versie kunt downloaden: link.

Wil je jouw code deployen naar de cloud? Dan is het mogelijk de moeite waard om eens naar Pulumi te kijken, een gratis en open-source product: www.pulumi.com/azure

Wil je meer dingen kunnen doen met Entity Framework, dan zou je een blik kunnen werpen op de EF Core Power Tools, een uitbreiding van je interface in VS: link.

Wat kun je allemaal maken? Check de Windows Community Toolkit, de bijbehorende sample-app en het MVVM-project!

Wil je meer met je Raspberry Pi doen? De pi-top ziet er supercool uit! Hier te bestellen: https://www.pi-top.com/products/pi-top-4

Is Blazor nieuw voor je? En wil je ermee aan de slag? Kijk dan sowieso eens op https://blazortrain.com/, de site van Carl Franklin met allemaal filmpjes met uitleg!

Maak je code robuust en stabiel met hulp van Simmy en Polly! Dikke vette aanrader!

Wil je een site maken met Blazor? En daar meteen iets met een CMS gaan doen? Kijk dan eens naar Oqtane, gebouwd door de maker van Dotnetnuke.

Moet of wil je een desktop applicatie maken die zowel op Windows, Linux als OSX draait? Kijk dan eens naar Electron. Hiermee is o.a. Slack, VS Code en Skype gebouwd! Voor de tin-client check je Chromely. En check ook alle coole componenten die ze gebouwd hebben: https://grapecity.com/componentone

Wil je met micro-services aan de slag? Kijk dan eens naar Steeltoe: steeltoe.io.

Mocht je een reverse proxy willen implementeren, kijk dan eens naar YARP: Yet Another Reverse Proxy, gemaakt door Microsoft: https://github.com/microsoft/reverse-proxy

Lange samenvatting

10 november, 17.00 uur

Scott Hunter begint met de cijfers. 2 miljoen .NET core ontwikkelaars, 5 miljoen .NET ontwikkelaars. 40% nieuwe mensen die toetreden tot .NET core zijn studenten. De nummer 1 in Techpower Benchmarks. De partners voor tools en controls voor .NET 5 worden genoemd, DevExpress, Infragistics, Progress Telerik, GrapeCity, jQWidgets, radzen en Syncfusion. 

Daarna de benchmark-vergelijkingen, .NET 5 die ten opzichte van .NET Core 3.1: 38% sneller plaintext kan verwerken, 42% sneller json kan verwerken en 20% sneller met fortunes kan werken (??).

In .NET core vindt steeds meer app-ontwikkeling plaats. Scott noemt dat SwashBuckle veel gevraagd werd en dat dit nu standaard beschikbaar is. Als ik zoek vind ik "swagger" en dat is inderdaad de manier waarop je jouw API zichzelf wilt laten documenteren. Voor de Windows applicatie-bouwers, de click-once installer werd veel gevraagd en is nu ook beschikbaar. De Edge-control kun je op je winforms plaatsen, waardoor je een "seamless" browser in je applicatie hebt.

Vervolgens worden Scott Hanselman en Scott Guthrie nog even toegevoegd aan de uitzending, alle 3 de mannen in "de red shirts". ScottGu laat nog even de papieren zien waarop de eerste uitwerkingen van C# staan (1997).

Het schema voor de releases wordt dat elk jaar in november er een "major release" de deur uitgaat. Elke even release (dus in 2021 .NET 6.0) is een LTS (dus support op lange termijn).

10 november, 18:00

Claire Novotny en Layla Porter bespreken de  .NET Foundation "State of the Foundation", ik pak nog het laatste deel van het gesprek mee. Meer informatie is te vinden op https://dotnetfoundation.org/ en github.com/dotnet-foundation. De Foundation zit ook op meetup.com en daar kun je dus zien of er evenementen zijn: https://www.meetup.com/nl-NL/pro/dotnet. Als je naar beneden scrollt zie je alle organisaties die daaronder vallen, bij die organisaties kun je vervolgens "lid" worden om zo de evenementen te volgen. Zo heb ik me nu aangemeld bij de Dutch .NET Group (link). En naast Channel 9 heb je nu ook live.dot.net.

10 november, 18:30

Mads Torgersen en Dustin Campbell bespreken de nieuwe zaken in .NET 5.  Waaronder de uitgebreide switch-statements, die je een stuk leesbaarder kunt maken met de types.

10 november, 19:00

Steve Sanderson en Safia Abdalla bespreken Blazor in .NET 5. De belangrijkste thema's hierbij waren: verbeter de developer-beleving, verbeter de performance van de web-assembly en zorg dat "feature gaten" opgevuld worden. In de demo laten ze zien dat het goed gelukt is. Je hebt CSS isolation, de CSS is alleen actief binnen jouw razor-bestand (plug-ins gaan dus niet ineens jouw styling overschrijven), als je zaken aanpast: je hebt meteen auto-refresh, waardoor je direct de wijzigingen ziet. Je kunt beter debuggen (Intellisense), InputFile wordt ondersteund, virtualisatie en integratie met Azure Static Web Apps. Demo bekijken? Hij staat hier op Github: link.

10 november, 20:30

Een 1-2-tje tussen Dan Roth en Javier Calvarro Nelson waarbij ze een demo geven van Modern Web Development met Blazor en .NET 5. Ze laten de verschillende render-modes zien (Client/Server), maar ook die waarbij je niet zichtbaar zit te wachten dat er iets ingeladen wordt, maar waarbij er een soort place-holder staat. .NET 5 is 7x sneller dan nodeJs.

10 november, 21:30

David Fowler en Glenn Condron bespreken "Tye", een framework waarmee Kubernetes een stuk makkelijker wordt. Github-repo staat hier: https://github.com/dotnet/tye

10 november, 22:00

Kathleen Dollard en Rainer Sigwald bespreken de .NET 5.0 SDK. Deze bevat MsBuild, NuGet, Roslyn, F# en nog veel meer. Elk kwartaal wordt er een SDK uitgebracht. Voor de CLI kun je nieuwe versies en patches op deze locatie vinden: link. Kathleen en Rainer bespreken de Change waves (je krijgt een waarschuwing dat je code in een volgende versie deprecated of anders beïnvloed gaat worden), link. Logs van MSBuild worden nu binair (beter beheersbaar): link. En de bijbehorende online logviewer (de blazor draait client-side, je upload je logs dus niet, het wordt lokaal verwerkt!): https://live.msbuildlog.com. Mocht het bij jou (net als bij mij) lang duren: na ongeveer een halve minuut was hij klaar. Maar dat komt ook omdat het op de cliënt draait: alle DLL bestanden worden dus gedownload. In totaal 20.5 MB, over mijn niet supersnelle ADSL-lijn...

10 november, 22:30

Phillip Carter bespreekt F# 5. Je kunt nu packages gebruiken in scripts. Notebooks worden ondersteund. Hij toont een demo in Visual Studio Code, waarbij je een soort code-blok krijgt en de resultaten. En ook bij een stuk code een grafiek met zo'n mooie sinus-boog. Meer informatie is te vinden op aka.ms/fsharp5 en aka.ms/fsharp-docs.

10 november, 23:00

Rich Lander, Stephen Toub en Jan Kotas bespreken .NET 5 Runtime Deep Dive with Rich Lander and the Architects. Nou ja, bespreken... Geen presentatie, ze kletsen maar wat en veel komt er niet uit. Deze kun je gerust overslaan!

10 november, 23:30

Bri Achtman, Kundan Karma, Brett Parker en Chris Felstead bespreken ML.NET in the Real World (machine learning dus). Kundan laat zien hoe Microsoft het zelf toegepast heeft bij het beheer van energieverbruik "smart buildings" (gaat hier om meer dan 100 gebouwen). Brett Parker is product owner bij Aveva, een software-leverancier. En volgens mij was het bij deze presentatie dat we zagen met met machine learning de borden van sponsors op het sportveld gevonden werden. Overige informatie is te vinden op:

dot.net/ml, aka.ms/mlnetsamples, aka.ms/mlnetdocs, aka.ms/mlnetyoutube aka.ms/mlnet-workshop en van 13 t/m 20 november 2020 is er een hackaton op aka.ms/mlnet-hack.

11 november, 00:30

James Newton-King bespreekt de High-performance Services met gRPC en wat er in .NET 5  voor nieuwe zaken bij gekomen zijn. gRPC is een combinatie van HTTP/2 en ProtoBuf. gRPC is een alternatief voor het gebruik van REST API's. Meer informatie is te vinden op https://aka.ms/grpcdocs en https://aka.ms/grpcexamples.

11 november, 01:00

Scott Hanselman sluit de eerste dag af. Hij durft het aan om zijn website live te updaten naar .NET 5. Het lijkt te blijven hangen, maar gelukkig gaat het allemaal goed! Hij laat daarmee ook zien dat zijn site draait op een Linux-omgeving in Azure.

Na een kort nachtje, iets later gestart met werken de volgende dag. En na het eten meteen door met de sessies van de 2e dag:

11 november, 18:00
Vix Rian en Andy Sterland bespreken GitHub + Visual Studio ❤ .NET. Hierin komt onder andere Github Codespaces naar voren, het is een online Visual Studio Code omgeving waar je kunt programmeren. Correctie: het is een online omgeving, waar je de boel kunt builden en je kunt nu lokaal vanuit Visual Studio en/of Visual Studio Code connectie met die omgeving maken. Vix en Andy tonen de demo met de eShopOnWeb, deze repo staat in Github: link. De Github Codespaces is nu in de beta-fase, mocht je ermee willen testen, dan kun je naar aka.ms/vscs-github surfen. En als je alvast de nieuwe versie van Visual Studio wilt zien, ga dan naar aka.ms/vs-preview. En voor de Github Actions moet je hier kijken: aka.ms/GithubActions-Azure

11 november, 19:00
Mark Downie bespreekt Effectively Diagnose and Debug .NET Apps in Visual Studio. Deze heb ik voor de helft gezien. Grappig feitje: Scott Hanselman liet weten dat zijn site op "Dos blog" werkt, een soort open-source project. Ik kon dat nergens vinden. Maar Mark heeft het nu over DasBlog. Hey... dat moet wel het project zijn van Scott, ik heb het gewoon verkeerd verstaan! Het verhaal staat hier: link en er is nu een .NET core versie gekomen: github-link. Het verhaal heb ik gemist, mocht ik nog tijd hebben, dan is hier de sessie te bekijken: https://www.youtube.com/watch?v=cOYFDD3tU38

11 november, 19:30
Caty Caldwell bespreekt What’s New in Visual Studio 2019 and beyond. Gemist, volgens mij heb ik niet heel veel gemist. De uitzending is hier nog te bekijken: https://www.youtube.com/watch?v=E17rD75Kn9Q

11 november, 20:00
Mika Dumont en Kendra Havens bespreken Improve Your Productivity with Roslyn Analyzers. Ze laten in hun demo zien hoe je zelf code kunt bouwen om in Visual Studio tips/meldingen te geven. Mocht je een bepaalde bedrijfsstandaard hebben qua code, dan is dat een mooie feature. De demo is hier te bekijken: https://www.youtube.com/watch?v=Ma1FBFcLqMs

11 november, 20:30
Brady Gaster bespreekt HTTP API Development with .NET, Azure, and OpenAPI: Paper Cuts Begone!  Deze uitzending gaat veel over swagger. Kudo's voor Brady, hij geeft een perfecte presentatie, veel beter dan sommige andere sprekers! Hij geeft aan dat Open API in de .NET 5 web API nu standaard aan staat (o.a. via de Swashbuckle.AspNetCore referentie). Hij benoemt ook nog de httprepl, de commandline waarmee je door een API kunt bladeren: link.

11 november, 21:00
Isaac Levin bespreekt Accelerate .NET to Azure with GitHub Actions. Hij laat zien hoe het "vroeger" was, copy-paste om zaken live te zetten, via FTP, via Jenkins, CI/CD inrichting. Je hebt nu Github Actions, een op YAML gebaseerde workflow gekoppeld aan Github repo's. Als laatste deelt hij nog een link, die pagina toont een lijst met links naar meer informatie: https://isaacl.dev/actions-dotnet-azure

11 november, 22:00
Jeffrey Richter bespreekt Introducing the New and Improved Azure SDK for .NET
Deze heb ik gemist, nog net het einde gezien, maar is hier dus te bekijken: https://www.youtube.com/watch?v=v36NXLU3TLY
Ik zag nog de Guidelines voor de Azure SDK: aka.ms/azsdk/guide

11 november, 22:30
Rahul Potharaju en Jeremy Likness bespreken The Missing Piece - Diving into the World of Big Data with .NET for Apache Spark. Apache Spark is een open-source project voor het verwerken van Big Data. Office 365 schijnt er gebruik van te maken. Er is een Github-locatie waar de connectie tussen Spark, C# en Machinelearning gemaakt is: https://github.com/dotnet/spark
Er worden nog een aantal links gedeeld:

https://dot.net/spark, https://aka.ms/GettingStartedWithDotnetSpark, https://aka.ms/InstallDotNetForSpark, https://aka.ms/DotNetForSparkBlog, https://aka.ms/SynapseDotnetNotebook en https://aka.ms/DockerizeSparkDotnet

11 november, 23:00
Mike Rousos bespreekt Collecting ASP.NET Core Performance Traces in a Kubernetes Cluster. Je hebt de verschillende commando's, dotnet-trace, dotnet-dump, dotnet-gcdump, dotnet-counters, dotnet-monitor (is nog in preview fase). En nog andere opties als PerfCollect en CreateDump (maar daarvoor moet dan wel COMPlus DbgEnableMiniDump actief zijn). Mike noemt hier nog perfview, waarmee je CPU en geheugengebruik kunt monitoren: https://github.com/microsoft/perfview

11 november, 23:30
Jon Gallant bespreekt Secretless Development from Local to Cloud with the New Azure SDKs, Project Tye, and Kubernetes. Jon is te vinden op Github: @jongio en heeft een blog: jong.io. Jon geeft de link naar de SDK van Azure: aka.ms/azsdk en een Youtube-filmpje waar Jon de SDK's nader toelicht: aka.ms/azsdk/intro. Het is inderdaad (zoals ik al verwachtte) in combinatie met de Key Vault van Azure, de centrale locatie om gevoelige informatie in op te slaan. In de C# code heb je nu ook een "SecretClient"-class. Jon laat een eigen project zien, de MemeAlyzer (link). Hij kan de tekst uit meme's halen en zo bepalen of iets positief of negatief is. Jon deelt de link naar Azurite, een emulator voor Azure storage: link en zijn eigen demo die hij hiermee gebouwd heeft: link. Jon is lovend over Project Tye, want met deze ene tool kun je zaken beheren waarvoor je andere meerdere tools (en hun commando's) moet gebruiken.

12 november, 00:00
Alan Yu en Jon Sequeira komen met het thema Azure Data Studio en .NET interactive. Alan Yu doet een prima presentatie. Notebooks zijn een soort online Excel-bestanden, maar dan veel uitgebreider en interactiever. Ze worden gebruikt voor UX (mooie grafieken tonen), documentatie, om gezamenlijk aan een project te werken, data workflows. Meer informatie is te vinden op: github.com/microsoft/azuredatastudio, github.com/dotnet/interactive en aka.ms/get-dotnetinteractive.

12 november, 00:30
Christos Matskas en John Dandison bespreken Secure DevOps with the Microsoft Identity Platform. We zien een voorbeeld van een .json-bestand met daarin de tag "administratorLogin" die verwijst met een keyVault (met een id-waarde) en een secretName. Ook zien we in een YAML-file hoe bij runs-on: de waarde "self-hosted" ingevuld staat (om lokaal te testen)? Het was al laat (of vroeg, net hoe je het bekijkt), dus ik heb niet alles meegekregen. De sessie is hier te bekijken: https://www.youtube.com/watch?v=Spprpp1o5nM Ook wordt nog de link aka.ms/425show gedeeld, een kanaal op Twitch waar experts in filmpjes uitleg geven.

12 november, 01:00
Aaron Powell  gaat het hebben over Get Your JAM On. Aaron is developer en spreker, dus op zijn site zijn blog-artikelen en uitzendingen terug te vinden: https://www.aaron-powell.com. Hij spreekt over de combinatie van Blazor en Azure Functions om een website te bouwen. In de voorbereiding had ik al gezet dat ik nog eens moet gaan onderzoeken wat ik allemaal kan met "Jam Stack". De sessie is hier te bekijken: https://www.youtube.com/watch?v=9cwOsW5KBm0

Er waren nog wel een aantal interessante sessies, maar omdat ik de komende dag veel sessies ga bekijken (het gaat de hele dag door!) ga ik slapen.

12 november, 04:00
Robin Reynolds-Haertle bespreekt het maken van een Text Parser in C# met behulp van ANTLR. Ik heb de sessie niet gezien, maar het lijkt me wel interessant. Hier is de sessie nog te bekijken: https://www.youtube.com/watch?v=lc9JlXyBG4E

12 november, 08:00
Menaka Baskar bespreekt Architecting Cloud Native Application in Azure using .NET Core. Toen sliep ik nog, de sessie is te bekijken op: https://www.youtube.com/watch?v=espeHztMDS8

12 november, 08:30
Johnny Hooyberghs  bespreekt Controlling My Home Sauna Using .NET 5. Ik heb geen sauna, maar omdat de Raspberry Pi hierbij besproken werd, was ik wel geïnteresseerd. Maar tijdens de uitzending was ik aan het ontbijten en de krant aan het lezen. De sessie is hier te bekijken: https://www.youtube.com/watch?v=kkRqnYbVYuY

12 november, 09:00
Mikhail Shilkov bespreekt Azure Management Superpowers with Pulumi. Pulumi (website) is een open-source project (en gratis te gebruiken) waarmee je jouw code kunt deployen naar de cloud (niet alleen Azure, ook andere clouds).

12 november, 09:30
Codrina Merigo gaat het hebben over Cross-platform Applications with Xamarin.Forms. Nu houd ik me daar niet zo mee bezig, want hoewel Xamarin supercool is om mobiele applicaties te bouwen, er is al zoveel te bekijken/testen/doen met "gewone" web-applicaties. En ik heb al "te weinig tijd". Maar ik heb toch deze uitzending bekeken. Zo vertelt Codrina dat Xamarin.Forms niet een cross-platform UI bibliotheek is, maar een volldig framework dat alles bevat om mobiele apps te bouwen. Het is niet alleen te gebruiken voor iOs en android apps, maar ook voor Windows 10 Universal Windows Platform, GTK# en WPF (en nog een aantal items). Xamarin heeft het MVVM pattern standaard ingebouwd, waardoor de code van je applicatie beter te testen is en makkelijker uit te breiden is. Met Xamarin.Essentials kun je ook de systeemfuncties van android en iOS gebruiken. Zo heb je de Shell voor de weergave van de menu's, welke nu actief is, Material Visual waarmee je Material Design toepast. Hiermee kun je ook herbruikbare UI componenten van Syncfusion, DevExpress, UX Divers, Grapecity, Telerik en andere partijen gebruiken.

12 november, 10:00
Erik Ejlskov Jensen ( zijn blog is te bekijken op https://erikej.github.io/) gaat het hebben over Get a Head Start with Entity Framework Core 5.0 with EF Core Power Tools. De EF Core Power Tools is een nuget-package wat door Erik gemaakt is en hier te vinden: link. Het breidt de mogelijkheden van Entity Framework in Visual Studio uit, binnenkort maar eens testen.

12 november, 10:30
Florian Rappl bespreekt Microfrontends with Blazor: Welcome to the Party! Rond dit tijdstip zat ik aan de koffie en heb een klein stukje gezien. De sessie is hier te bekijken: https://www.youtube.com/watch?v=npff2NjVXEE

12 november, 11:00
Michael A. Hawker en Sergio Pedri introduceren de MVVM Toolkit, a .NET Standard Library in the Windows Community Toolkit. Michael en Sergio delen eerst een link met ons, aka.ms/WCT, de Windows Community Toolkit. Hier kun je allemaal controls, extensies en helpers vinden. De sample-app is hier te vinden: aka.ms/windowstoolkitapp. We kennen allemaal (als het goed is) het MVC-model, model-view-controller. Maar je hebt ook het MVVM-model, Model, View en ViewModel. Het voordeel van MVVM is dat je code kunt hergebruiken, platform-agnostisch gedrag kunt gebruiken, het is (beter) testbaar en je hebt een splitsing tussen ontwerp en code-ontwikkeling. Microsoft.Toolkit.MVVM is een moderne, snelle en modulaire MVVM bibliotheek die onderdeel uitmaakt van de Windows Community Toolkit.

De reden dat deze bibliotheek opgezet is, is omdat MVVMLight en Caliburn.Micro niet langer onderhouden worden. MVVMLight simpele aanpak werd door veel ontwikkelaars omarmd en kon niet in andere bibliotheken gevonden worden. De tabel met testresultaten laat ook zien dat het een stuk sneller en minder fouten bevat dan MVVMLight. Het product is nog in ontwikkeling, maar lijkt een prima product om te gaan gebruiken. Download-link: aka.ms/mvvmtoolkit.

12 november, 11:30
Luis Beltran bespreekt AI Enrichment with Azure Cognitive Search. Zijn github-repo is hier te vinden: https://github.com/icebeam7 Zijn verhaal gaat over Azure Cognitive Search. Je kunt daarmee zoeken in documenten (word, pdf), maar ook mySQL data, blob storage en veel meer. Dat is het "document cracking" deel. Dan, op basis van de taal, worden er extra gegevens uitgefilterd, bijvoorbeeld meta-data over de schrijver, maar ook sentiment analyse, ladmark detection (zit een foto in met de Eifeltoren erop), person entity extraction (het is een CV van mij, daar staat mijn pasfoto in). Omdat er zoveel data in documenten opgeslagen wordt, moet je wel een soort zoekmachine voor die data hebben. Zijn presentatie is hier te bekijken: https://www.youtube.com/watch?v=YapSbK75_1w

12 november, 12:00
Eduard Keilholz bespreekt Getting Real-time Insights from your Serverless Solution. Eindelijk, een Nederlander! Hij werk bij 4dotnet, een bedrijf wat ik wel ken ( ik heb daar zelf eens in Meppel een training gevolgd, een collega van mij heeft hier ook een training gevolgd en we hebben samen in 2019 hun "Move Up" evenement in Nieuwegein bezocht. Zijn blog is te vinden op https://hexmaster.nl. Eduard zijn case is een praktijk geval waarin documenten geüpload worden naar de cloud. Deze worden steeds groter, en door een aantal oorzaken (time-out?) komt dus niet alles meer aan. Met behulp van Azure Functions en SignalR heeft hij een stuk monitoring toegevoegd, zodat duidelijk wordt of een upload/import nu wel of niet gelukt is. Hij geeft ook aan dat je goed moet kijken wat je met je resources doet. Zo heeft het Entity Framework al 6MB aan geheugen nodig. Het demo-project is hier te vinden: https://github.com/nikneem/serverless-realtime-import

12 november, 12:30
Zaid Ajaj bespreekt Building React Applications in F#. Tijdens deze sessie was ik aan het eten, deze is hier terug te zien: https://www.youtube.com/watch?v=a6Ct3CM_lj4

12 november, 13:00
Michael Staib bespreekt Building Real-time Applications with Blazor and GraphQL. Rond 13.20 uur was ik klaar met eten en kwam ik in de uitzending binnenvallen en heb er weinig van meegekregen. De code-voorbeelden leken wel interessant. Deze URL kwam hier ook nog voorbij: https://chillicream.com/ De sessie is hier terug te kijken: https://www.youtube.com/watch?v=CrY8CF1gysA

12 november, 13:30
Gary Ewan Park bespreekt A Piece of Cake - C# Powered Cross-platform Build Automation. Het is een tool om builds uit te voeren, open source en cross platform. Cake is op verschillende manieren te installeren, bijvoorbeeld via Nuget. Homepage is https://cakebuild.net/. Via de terminal voer je uit: dotnet new tool-manifest en dotnet tool install Cake.Tool
De rest van de presentatie heb ik gemist, want ik had een afspraak: fitnessen van 14.00 tot 15.00 uur. Daarna een bakje thee en even douchen. De rest van de sessie is hier te zien: https://www.youtube.com/watch?v=o38glTSZsVg

12 november, 16:00
Clifford Agius spreekt over de 3D Printed Bionic Hand - a Little IoT and a Xamarin Mobile App. Ik heb nog net 5 seconden van deze presentatie gezien. De reactie van de Layla Porter (de dames die de verschillende presentaties aan elkaar praat) is duidelijk: "Amazing! That was fenomenal! Holy cow!", dus ik geloof dat ik die presentatie zeker nog terug moet kijken: https://www.youtube.com/watch?v=y3h7pcg-jfA

12 november, 16:30
Mark Hardwick, Mike Roberts, Diego Colombo, Paul Meyer en Jon Sequeira  bespreken Remote Computer Science with pi-top, .NET and Microsoft Teams. Het gaat hier over een schoolproject, waarbij een Rover (karretje) met Raspberry Pi op afstand wordt bediend via Microsoft Teams. Er zit een camera op en code om Pokemon kaarten te kunnen beoordelen (die verspreid op de grond/tegen de muur liggen/staan. Het doet me terugdenken aan mijn afstuderen in 2001, toen we de "Telebuggy opdracht" kregen. Een RS ??? chip die je via een nulmodem moest programmeren, die in een doolhof zijn weg moest zien te vinden. Dat is wel heel old-skool als je het vergelijkt met deze coole bak en code-interface! De sessie gaat ook over "remote les geven", iets wat met de Corona-pandemie in een versnelling geraakt is. De lobe-bibliotheek wordt ook genoemd: https://github.com/lobe. De demo is hier te vinden: https://pi-top.com/dotnetconf.Leuk om te zien, de presentatie staat hier: https://www.youtube.com/watch?v=9HeW_KijuhQ

12 november, 19:00
Carl Franklin bespreekt Application State in Blazor Apps. Carl is de man die eerst altijd samen met Scott Hanselman zijn podcasts deed. Ik kom halverwege de uitzending binnen (eerst gegeten), dus heb al een deel gemist. Om "state" bij te houden kun je local storage gebruiken. Beperking daarbij is dat je per URL 5 MB kunt opslaan. Tevens raadt hij aan om geen "sensitive data" daarin op te slaan. Wil je meer van Blazor weten? Dan is de site https://blazortrain.com/ een aanrader, want hier heeft Carl allemaal video's online zet die je kunt volgen! Mocht je de sessie willen zien, dit is de URL: https://www.youtube.com/watch?v=GIupo55GTro

12 november, 19:30
Lizzy Gallagher bespreekt 2 years, 200 applications: A .NET Core Migration at Enterprise Scale. Deze video gaat over de migratie van .NET applicaties. Heeft betrekking op wie wat gaat doen. Ik vond het (dus) niet interessant, want het had geen technische achtergrond.

12 november, 20:00
Ed Charbeneau bespreekt Blazor Stability Testing Tools for Bullet Proof Applications. Ik rolde om 20.20 deze aflevering binnen (eerst nog met het mes op tafel gezien), dus het eerste deel heb ik gemist. Ik zie dat Ed een demo geeft van het gebruik van Telerik JustMock. In een volgend overzicht benoemt hij Telerik Test Studio, waarmee je functioneel kunt testen, API testen, load-testen, cross browser vergelijkingen kunt doen, responsive web-testing, OCR verificatie, telerik UI voor integratie met Blazor en (in het vet) Test Recorder waarmee je scenario's kunt opnemen. Resources die genoemd worden zijn xunit.net, bunit.egilhansen.com (voor het testen van Blazor componenten), telerik.com en het gerelateerde artikel: bit.ly/3kniXdl

12 november, 20:30
Bryan Hogan bespreekt Robust Connected Applications with Polly, the .NET Resilience Framework. Toen ik de planning voorbereidde had ik al het gevoel: dit is de uitzending die het volgen van dotnetconf de moeite waard maakt. En ik word niet teleurgesteld! We hadden net hoofdstuk 9 van Secure by Design in behandeling, daar komen "circuit-breaker", "bulk-heads" en "time-outs/reactievermogen". Als een externe API eruit ligt, gaat dan ook jouw hele website onderuit? Als er in het begin van de flow iets fout gaat, laat je de code dan doorrammelen, met alle mogelijke extra fouten die daardoor weer veroorzaakt worden? Zo kun je bijvoorbeeld API-calls laten "retry-en". Gaat er een aanroep fout, dan worden er nog een aantal (instelbare) pogingen gedaan. En ook met vertraging ertussen, want het heeft geen zin om in 5 seconden 5x die API aan te roepen. De eerste na 5 seconden, de tweede na 14 seconden, etc. Het project is in 2013 gestart en wordt ongeveer 150x per dag gedownload. De site van het project is hier te vinden: https://www.thepollyproject.org/ Ook benoemt Bryan nog Simmy, dat project kun je combineren met Polly. Simmy zorgt dat er allemaal fouten ontstaan en daarmee kun je dus gaan testen of de implementatie met behulp van Polly robuust is of dat er alsnog zaken niet goed gaan. Broncode van Simmy staat hier: link, broncode van Polly staat hier: link. We zien bij de sessie de pro-actieve strategieën om je applicatie responsive te houden: timeout (op een bepaald punt moet je code stoppen met wachten), caching (als je een waarde hebt, bewaar deze voor een x tijd om bovenmatig database-requests e.d. te voorkomen) en bulkhead isolation (als het betaalproces vertraging heeft, zorg wel dat mensen die alleen "browsen" op je site daar geen last van hebben). Zo heb je ook de reactieve strategieën, Retry (opnieuw proberen dus), Wait and Retry (wacht tot je het nogmaals probeert), Circuit Breaker (waarom de aanroep naar een externe API uitvoeren als je toch al weet dat de boel "afsterft") en de Fallback (als het niet lukt, geef dan maar een cache-waarde terug, is beter dan niets). De reauthorization (als je geen rechten hebt om iets te doen, dan hoef je die call niet nogmaals 3x uit te voeren, maar zorg eerst dat je weer geauthentiseerd bent). Het mooie is ook dat het niet alleen beperkt is tot HTTP requests! Er is een nette FallbackPolicy, waarmee je kunt zorgen dat als er een call niet goed gaat, je een resultaat uit de cache terug kunt geven. We zien een voorbeeld met een CircuitBreakerPolicy. Je scheidt daarmee de aanroepen in een Execution Slot en Queue Slot. Hiermee kun je overbelasting van je systeem voorkomen. Meer informatie over Polly is te vinden op pluralsight.bryanhogan.net, nodogmablog.bryanhogan.net/tag/polly (hier kun je veel voorbeelden vinden!) en het eigen slack-kanaal: pollytalk.slack.com. De sessie is hier te bekijken: https://www.youtube.com/watch?v=L9_fGJOqzbM

12 november, 21:00
Jeff Fritz bespreekt From Web Forms to Blazor - Introducing the Blazor Web Forms Components. We beginnen meteen met 2 links, de Github van Fritz en vrienden met componenten: bit.ly/blazorwebformscomponents en dotnet.microsoft.com/learn/aspnet/architecture. Hier kun je ook meteen een boek/PDF downloaden, 113 bladzijden over ASP.NET Core en Azure. De presentatie is niet echt blijven hangen, maar volgens mij zou je aan die Github-locatie voldoende moeten hebben. En je kunt nog altijd even de sessie terugkijken: https://www.youtube.com/watch?v=ceGzm-pBhx4

12 november, 22:00
Shaun Walker bespreekt Trailblazor: Building Dynamic Applications with Blazor. Shaun heeft in het verleden dotnetnuke opgericht. Volgens mij in het verleden één van de weinige CMS-en voor ASP.NET. Hij bespreekt frameworks waarmee ontwikkelaars meteen kunnen starten zoals Spring, Rails, Django en Symfony. Ook noemt hij CMS-en. Dotnetnuke, Orchard en Umbraco. Je hebt nu Blazor, een single-page applicatie-framework om interactieve webapplicaties met .NET Core te bouwen. Shaun heeft Oqtane opgezet, een modulaire applicatie framework om met Blazor te werken. De demo ziet er goed uit. Hij maakt eigen componenten en voegt die toe aan het project, zodat de DLL's in het Oqtane CMS project komen. Deze wordt "automatisch" gevonden en zo kan Shaun redelijk snel de hele site ombouwen alsof het de standaard Blazor-site is die je kunt downloaden (met de counter en het weer-overzicht). Het admin-deel ziet er goed uit. De specs zijn: multi-tenant (dus meerdere sites in 1 omgeving), portal UI Framework, granulaire rechten, een admin user interface, dynamische routering, modulaire architectuur, aanpasbare thema's en een headless API en repository. Oqtane 2 is gemigreerd naar .NET 5, heeft localization ondersteuning en meer.

12 november, 22:30
Luis Matos bespreekt Validation Rules for Xamarin. Deze presentatie vond ik echt slecht. Als demo een pop-up met een :) of een :( erin. Bespaar je de moeite om de video te bekijken, ik heb hier nog even de links (die wel handig kunnen zijn): je hebt de bibliotheken: ValidationRule van .NET Core, FluentValidation, ReativeUI.Validation.

12 november, 23:00
John Juback bespreekt Building Cross-Platform Desktop Apps with Electron.NET. Electron is een framework waarmee je desktop applicaties kunt bouwen op basis van web technologieën zoals Chromium en Node.js. Hiermee kan je applicatie draaien op Windows, OSX en Linux. En het zijn een aantal namen die hiermee gebouwd zijn: Visual Studio Code, Slack, Discord, Skype en GitHub Desktop. Grapecity heeft meerdere controls voor .NET gebouwd, zoals de Excel viewer van Grapecity waarmee je CSV data kunt bekijken (en ook Excel-documenten): link. Een compleet overzicht staat hier: https://grapecity.com/componentone

12 november, 23:30
Vaibhav Gujral bespreekt Running an Azure Static Web App with an API. Vaibhav zijn blog is hier te bekijken: https://vaibhavgujral.com. Ik ben onder de indruk van al zijn Azure badges, de man kan wel wat! Hij geefft wat voorbeelden hoe je in Azure een static web app op zou kunnen zetten. Bijvoorbeeld via Azure Storage. Dat is bereikbaar via http, weinig kosten, voor sommige taken is integratie met Azure CDN wel nodig en er zijn wat uitdagingen: je hebt geen standaard documenten en je kunt geen custom error page teruggeven.

Het alternatief is Azure App Services. Hoog schaalbaar. Je kunt load-balancing, auto-scaling en security naar je hand zetten. Maar voor een statische site is dit niet atijd de juiste keuze. Je kunt met Azure Static Web Apps een Github-repo koppelen om zo statische content te tonen. Je hebt hierbij een gratis SSL certificaat (nog wel, gaat vast veranderen), custom domains. Via Azure Functions heb je api-functionaliteit. Hier zitten wat restricties aan, alleen via api/.. bereikbaar, API moet javascript, typescript, Pythong of een C# Azure Function App zijn, regels voor routering, hierbij worden alleen redirects ondersteund en kun je routes beveiligen met rollen. Alleen HTTP triggers worden ondersteund. En logs zijn alleen via Application Insights beschikbaar. Anonymous en authenticated authorisatie wordt ondersteund, dat kan met Azure Active Directory, Github, Facebook, Google en Twitter. En via een pull-request kun je een staging-omgeving maken waar je eerst kun controleren of dit straks live gezet mag worden. Er is een preview-versie beschikbaar voor Visual Studio Code: aka.ms/savscode

Er volgt nog een lijstje met links voor meer uitleg: docs.microsoft.com/en-us/azure/static-web-apps/, github.com/staticwebdev/blazor-starter, dotnet.microsoft.com/apps/aspnet/web-apps/blazor, docs.microsoft.com/en-us/azure/static-web-apps/deploy-blazor en docs.github.com/en/actions.

13 november, 00:00
David Tillman bespreekt Writing Event Based Microservices using Steeltoe. Ze hebben 4 ontwikkelaars en zoeken nog mensen. Steeltoe is een open-source project wat in 2016 gestart is. De github-locatie is: github.com/steeltoeoss/steeltoe. Hier kun je ook veel voorbeelden vinden. De website voor dit project is te vinden op https://steeltoe.io/ en er is een eigen slack-kanaal: slack.steeltoe.io. Met dit framework kun je microservices maken. Het is mooi geweest met deze lange dagen, ik sluit af. Van deze sessie heb ik ongeveer 5 minuten gezien. Het product lijkt me echter wel interessant, dus later nog maar eens terugkijken (en downloaden en mee testen). De sessie is hier te bekijken: https://www.youtube.com/watch?v=Lk2TrvE5w8s

13 november, 01:30
Sam Spencer bespreekt Lessons Learned from Building the YARP Proxy on .NET. Deze sessie heb ik niet meer gezien (dit was wel erg laat geworden), wat jammer is, want het lijkt me wel interessant. Een normale proxy ken je wel van school, als 20 leerlingen naar nu.nl surfen, hoeft maar 1 versie opgehaald te worden en kunnen de andere 19 die van de proxy bekijken (wat dataverkeer bespaart). Een reverse-proxy is een proxy die voor de server zit. Wat nu dus heel vaak gebruikt wordt bij CDN's, je vraagt een URL op, maar via Cloudflare krijg je de website te zien. De bijbehorende github-locatie is: https://github.com/microsoft/reverse-proxy De sessie is nog hier te bekijken: https://www.youtube.com/watch?v=WJcjlSEXqWA