The other day I wanted to get GitHub Copilot to write for me a boring method, an Update operation (the U in CRUD). I wasn't happy with the result at all so I decided to test with the various AI models that are available in Copilot chat. This article is a summary of the results...
When building a web API with ASP.NET in most cases I want to generate Swagger (a.k.a. OpenAPI, what a boring name). Since records became a thing in C# I almost exclusively use positional records for my DTOs. I just assumed that Swashbuckle handles everything perfectly. It was pointed out to me that our Swagger does not mark non-nullable properties as required and I then realized that in Swagger…
Another year another C# version. Of course, the version just released is 12 but I am going to share my impressions of version 11 after using it for a year. As is my new policy I will only share my impression while leaving the explanation of what they do to Microsoft...
Yeah, I know C# 11 was released weeks ago but I have not written about C# 10 yet! I have been working with C# 10 for a year and it is time to share my impressions. Of course I did not use every feature, especially the low-level ones and in these cases I will share my opinion guided by my expectations about how I would feel if I used it. I will not explain what the features do but you can follow…
Да, знам че сме края на 2022. Закъснението на връчването на наградата се дължи на няколко неща. Първо – мързел, второ – новата ми политика да играя игри след няколко пача, които оправят най-големите им проблеми и трето – все се надявах нещо да се случи и когато обявя играта на годината за 2021, този шедьовър някак си да е възкръснал от мъртвите. За съжаление ви предстои да прочетете история за…
I started writing articles listing every newly released C# feature in the 3.0 timeframe. At the time there was not one good place that would post a list of all the features for a new version with explanations how they worked. You could find a list of features and you could find every feature explained separately in some blog post but it was surprisingly hard to find one list with explanation and…
In part 3 I am going to cover the small additions to the language. Of course small does not mean they are not useful. Some of these improve day to day usage a lot more than things like default interface members...
Next in the series we will pay attention to the enhancements to pattern matching. The biggest feature on this front is not the new patterns but the switch expression. I have previously expressed my dislike for the switch statement and luckily some of the issues are fixed with the new expression version...
The reason why consuming art is a good way to learn history is that it gives even better window into the way a society thinks at certain point in time than studying history. I clearly remember when I was in 9th or 10th grade and we had to write an essay on Don Quixote. A girl in my class wrote a wonderful essay arguing that Cervantes never understood what he wrote. He died believing he wrote a fun…
The next major C# 8.0 feature I would like to comment on is the Default Interface Members. This feature is straight-forward. It simply allows you to define implementations for the methods, indexers and properties in the interface. Lets look at this example I made up that makes no actual sense...
As is the tradition of this no-blog when a new version of the C# programming language is released, I must inform my millions of readers of my correct opinion of the new feature set. It seems to me that C# 8.0 is the most impactful release of C# only rivaled by version 2 (and of course version 1.0 since it went from non-existing to existing with that version). I guess I will need to split this…
GUI development in C# has fallen to the sidelines in recent years. The main reason is the rise of mobile platforms and the fact that traditional C# GUI tools focus on Windows. That being said in 2018 we see a resurgence in interest in .NET based GUI frameworks. The most interesting are in experimental stage but the sheer amount of interest and the reaction from the community makes me believe that…
Ten years ago on this day I launched this personal website which is definitely not a blog. It was just a side project to learn LINQ and the new features of ASP.NET 3.5. Who would have thought it would last for 10 years? My noobier self was quite proud of what I had written and of course with time I became ashamed. Right now I'd rather rewrite the project than develop new functionality on top of…
I was a good boy in 2017 so Santa brought me a Surface Book 2 machine. After spending a week with it I am writing down my impressions. Right off the bat I would like to point out that I firmly believe this is the best machine in its class. I am noting this because I will mostly focus on the negative sides in this review. You can assume that anything I did not mention is perfect and best in class.…