WUG: Menší, ale o to zajímavější novinky v .NET 6 (online)
Můj výběr malých, ale přesto zajímavých, novinek v .NETu 6. Dnes 21.6.2022 od 17:00.
Můj výběr malých, ale přesto zajímavých, novinek v .NETu 6. Dnes 21.6.2022 od 17:00.
This Saturday (June 4th) at 19:00 (CEST) you can join the Rockin’ The Code World with dotNetDave live stream and listen to me and David McCarter talking about stuff like evolution of C#, databases, .NET performance, Entity Framework, open-source and probably more.
Příští týden se bude konat Gopas TechEd. Po několika letech online verzí, tentokrát v hybridním provedení. Letos si z mé strany můžete poslechnout jednu in-person i online přednášku a dvě čistě online.
Sometimes people ask me a question where the answer requires some kind of dialogue or follow-up questions and/or is too long to type. Thus, I’m trying new way of recording the conversation and then posting it for anybody to watch.
Sometimes it is in Czech (like this one), sometimes in English. Sometimes one person (and me), sometimes multiple.
Do you have an interesting question? Send me an email and let’s chat about it.
Now, here’s the recording:
New major version 9.0.0.0 of ADO.NET provider for Firebird is ready for download. Major version number change, big changes. Buckle up.
Sometimes people ask me a question where the answer requires some kind of dialogue or follow-up questions and/or is too long to type. Thus, I’m trying new way of recording the conversation and then posting it for anybody to watch.
Sometimes it is in Czech (like this one), sometimes in English. Sometimes one person (and me), sometimes multiple.
Do you have an interesting question? Send me an email and let’s chat about it.
Now, here’s the recording:
I’ll be speaking at Techorama 2022 happening May 23-25. And I’m very excited about it. Over the last decade or so I was working with/for Belgium based company on and off, so Belgium has somewhat special place in my heart.
Two of my sessions were selected. First is C# Source Generators – let the machine do the programming and other is Performance with Span<T> for dummies (should I care?).
20.4.2022 od 8:30 budu mluvit v rámci akce IT Ráno, kterou pořádá Gopas, o možná trochu méně známých novinkách v .NET 6, o kterých ale přesto stojí za to vědět. Registrovat se můžete zde.
Silly question, right? Whatever the limit is, it is surely beyond what one should practically ever write. Right? But as with mine other explorations of limits, I’ll try it anyway.
With the 20 years of .NET that’s happening now and also the Celebrating 20 Years of .NET: Entity Framework I realized, I have a piece of history that would be too bad to lose.
I’ll be speaking on MS Stage (online) February 25th April 1st. I’ll show you what Source Generators are and how to create one yourself.
Today I learned that you could use attribute, in C#, on itself. 🤯 Not sure why would I do that, but it’s cool.
As I was (at that moment) running out of ideas about optimizations in hot paths in FbNetExternalEngine, I turned my attention into other parts of code. And one piece that was doing casting on every call caught my attention. Could I make the casting faster? What is actually the cost of casting? Does it matter? I had to dive into it.
As I was writing bunch of if
s today, I was thinking whether it would be possible to use pattern matching from recent versions of C#. To make things more interesting, I was comparing multiple values and it was not a simple equality. Blindly typing the code, I was very surprised Roslyn didn’t complain.
When I read World’s Smallest C# Program (featuring `N`) I was so intrigued. I had to give it a shot myself.
Moje další přednáška ze série .NET 6 extravaganza, tentokrát o Entity Framework Core 6. 27.1.2022 od 17:00.
Couple months back when teaching a course in Gopas, colleague William Ischanoe came to me and asked me, whether it would be possible to create a simple WebSocket server (and later client) in .NET. As far as I understood he wanted to use it to command process on victim’s computer (as he’s an expert in hacking and security). Might be useful for others as well, therefore I’m posting it here.
.NET 6 has this new handy method on Task
called WaitAsync
. It might not look like a big deal. Basically, the asynchronous version of Wait
, right? Yes, but also it closes one gap that was often implemented poorly.
Moje další přednáška ze série .NET 6 extravaganza, tentokrát o .NET 6, BCL a dalších. 20.1.2022 od 17:00.
Big step forward for FbNetExternalEngine today. Version 5.0 is ready, you can go and download it right now and it contains some major improvements.
Rok 2022 si na WUGu můžete otevřít přednáškou o C# 10, konkrétně 13.1.2022 od 17:00.
I’ll be speaking on MS Dev Summit 2021 (online) this Friday about Azure Storage (maybe) hidden features.
Few moments ago I finished my session on .NET Developer Conference ’21 (yeah, I forgot to make the post sooner). My session was C# Source Generators – let the machine do the programming. It was recorded and demos are attached below.
Na letošní SQL Server Bootcamp, který se koná online, jsem připravil přednášku na téma Co nás čeká v Entity Framework Core 6.
I’ll be speaking at Azure Community Conference 2021 that is going to happen in about 2 weeks. It’s online, so you can easily attend.
When writing some code day or two ago I noticed one operator color in Visual Studio being different color than it usually is. I initially thought it’s a fluke in syntax highlighting that will eventually go away. When it didn’t, I decided to investigate.
It’s again that time of the year when my favorite conference is about to happen. Yep, it’s .NET DeveloperDays time (and planned as in-person, yay!). You still have about a month to register and you should. I’ll have both the workshop and two sessions in main conference.
WUG ve 3D! Zlín se to rozhodl odstartovat a zkusíme se sejít IRL. A jak lépe to odstartovat, než se podívat na to co už za chvíli budeme mít na stole – .NET 6 a C# 10. Rozjedeme to 14.10.2021 od 17:30.
I’ll be speaking at Dotnetos Conference 2021 October 4th – 6th.
Yesterday’s exploration led to another eye-opening moment. This goes even deeper. As you maybe know, dependencies are shared between AssemblyLoadContext
s. This can lead to subtle changes of behavior depending on what’s loaded where.
Few days ago, I had a behavior I couldn’t believe. Static constructor of my C# class was clearly called two times. For no reason! Even the static variable it was initializing was null
during second call. How is that even possible?
Firebird Embedded is a great edition of Firebird (you can read more about it here) and if you put FbNetExternalEngine into the mix, it becomes crazy powerful tool. But to put it into the mix, one needs to carefully follow few steps to succeed.
New version 8.5.0.0 of ADO.NET provider for Firebird is ready for download. This release contains, among other small improvements and fixes, support for Srp256 (and quite a few related changes, like support for SPB version 3) and fix for performance regression for synchronous code paths introduced in 8.0.0.0.
I’m planning to do next livestream 18 August from 18:00 CEST. The topic is Case insensitive replace in Firebird.
I’m doing some performance related work in async space, and I was surprised by the slowness of synchronous code-paths in the asynchronous methods. Let’s look at some code.
After a lot of live and pre-recorded conference talks, I decided to try also livestreaming myself. Being a beginner, I forgot to properly announce it beforehand and hence although still livestream, for most people it will be a recording. I’ll get better next time.
I’ll be speaking at WeAreDevelopers World Congress 2021 in two weeks (June 28th – July 1st). The speaker line-up there is amazing and I’ll contribute with one session of mine.
Developer Week ’21, a new conference for me, is happening from 28 June to 2 July and I’m lucky to be speaking there, although only via the power of the Internet. I’ll have two sessions.
Last few weeks, on and off, I was reviving, finishing and improving a library, or now a tool if you will, that allows processing of trace output from Firebird. The library started its life probably sometime around 2014, and after a minimal working piece was done, it was briefly, yet successfully, used. Then it was left rusting up until last few weeks. What can it do?
As I speculated in my previous post, I eventually decided to try the Wi-Fi option first, because I can try that right here and right now.
Už za pár týdnů se bude konat Gopas TechEd, tento rok také online. Já jsem připravil dvě přednášky. Obě plné kódu.
Over maybe last two years or so, I’ve been reading with interest primarily @alesroubicek’s tweets, where he disregarded (with good arguments) all the all-encompassing JavaScript frameworks and libraries. And then out of nowhere last week, I decided to try to remove jQuery from this blog. Simply to have a personal experience with doing stuff in vanilla JavaScript.
New version 8.0.1.0 of ADO.NET provider for Firebird is ready for download. This a small fix for a – sadly critical – bug that slipped through the 8.0.0 release. I recommend updating immediately.
Last week I had AC installed into my house and the unit has Wi-Fi module as a standard option. That brings dilemma to my inner geekiness. As you might expect from me, I want to control the unit remotely my own way. Would the unit have only infrared remote control I would take some ESP8266 board (Wemos D1 Mini Pro is my favorite) and hack together my own infrared remote with simple API over the Wi-Fi. Because that would be the only way. But now I have two options. Oh my.
New version 8.0.0.0 of ADO.NET provider for Firebird is ready for download. This release is a big one. Huge.
As I’m thinking about the await using
and various usage patterns, my mind sometimes starts to wander into pieces like Task<IAsyncDisposable>
, Task<IAsyncEnumerable<T>>
and Task<IAsyncEnumerable<IAsyncDisposable>>
. And how to wrap that into await using
and await foreach
making some confusing combinations. This is what I was playing with, don’t expect anything specific.
It’s probably bit overdue, but I finally implemented checking for ConfigureAwait(false)
in my ConfigureAwaitChecker for await using
and await foreach
. Why now? I simply (finally) needed it. So, what’s new?
In last 24 hours I migrated from Disqus to utteranc.es because I’m done with Disqus. I didn’t mind it initially, but last few years I was more and more unhappy about it. Here’s why and how I migrated.
I’m now updating my ConfigureAwaitChecker to handle await using
and await foreach
(release soon, if you’d like to ask) and when trying to handle await using var
I was surprised how the compiler interprets that.
Azure Storage je tak nějak moje oblíbená služba. A za ty roky co existuje jsem nasbíral a taky náhodou objevil hromadu zajimavých vlastností, o kterých možná nevíte nebo nevíte jak je použít. No a tak se na ně podíváme na WUGu 18.3.2021 od 17:00.
Máme tu rok 2021 a vypadá to, že se bez in-person akcí budeme muset ještě chvíli obejít. Aby se nám to lépe přečkalo pojďme se společně podívat na funkcionalitu “event counterů” v .NET/.NET Core na WUGu 21.1.2021 od 17:30.
In programming we like stateless pieces of code, immutable data structures, functional composition, etc. and we value languages, libraries and environments designed with this in mind. Home automation is complete opposite.
During December I finished building my new PC. My previous PC was not terribly dated or slow (and continues to be used by my wife), but I felt it’s favorable time for update. It’s not balls to wall build, rather something I think is good for my workflow – mostly development and related tasks. I don’t edit movies, stream (or play for that matter) games, etc. I describe each component (in no particular order) and my reasoning why I chose it, your mileage may obviously vary.
New version 7.10.1.0 of ADO.NET provider for Firebird is ready for download. This a small fix for a bug that slipped through the 7.10.0 release.
New version 7.10.0.0 of ADO.NET provider for Firebird is ready for download. This release brings support for new datatypes in Firebird 4 and various improvements across the codebase.
Next week the .NET Developer Conference is happening. As an online event obviously. And I’ll deliver half-day workshop there. The topic is Tasks and async/await from the ground up.
I recently realized, the difference between =>
and { get; } =
for properties might not be as known as everybody thinks, based on code I saw multiple times.
I have to say, Belgium has a special place in my heart, so when my session for DevDay.be was accepted, I was happy. I would be happier if the conference would be in-person, but 2020 is what it is. Anyway. I’ll be talking about Using Roslyn to improve your codebase. Basically taking advantage of Roslyn’s open design where you can use various pieces of the whole compiler platform and create your own tools with the full power of “compiler” i.e. sematic analysis.
While reading some code in .NET runtime, I found Environment.ProcessId
property, which surprised me a bit, because I had no idea it existed. Quick look into the documentation and no wonder I had no idea. It’s new in .NET 5.
Last week, when speaking at .NET Developer Days, I got a question about the query cache in Entity Framework Core – is it shared across DbContext
s or is it per instance? With this question I realized I know how the cache work(ed) in Entity Framework 6, but I’m not entirely sure how it’s done in Entity Framework Core. Time to explore! And you can go with me.