as Fullstack Js/Ts developper I see a lot of contents around c# and the .NET ecosystem ! what made this shift? even this channel ! keep up with updated implementations 🔭
That’s a great question! I think it’s more popular than ever, especially since it’s viable for full stack development. The rather fast cadence of updates also means there is going to be a lot more buzz!
Thanks! Noticed a slight difference in results in the base64url demo. Here is the clarification from Chat GPT: The difference in results between `Base64Url.EncodeToString(data)` and `Convert.ToBase64String(data)` in your code is because they use two different Base64 encoding schemes: 1. **Base64Url Encoding**: `Base64Url` is a URL-safe version of Base64. It replaces the `+` and `/` characters with `-` and `_`, respectively, to make it safe for URLs and filenames. It may also omit padding (`=` characters at the end), making the encoded output slightly shorter. 2. **Standard Base64 Encoding**: `Convert.ToBase64String` follows the standard Base64 encoding rules, which include `+`, `/`, and padding (`=`) to make the encoded string compliant with the Base64 specification. In short, the output differences you see are due to these substitutions and padding rules in URL-safe Base64 encoding.
Looks like they moved it to ”preview” last minute. It’s still available and shipped with .NET 9.0 but you have to set the LangVersion to preview. It’s because it’s a pretty breaking change.
They’ve added UUID v7 in .NET 9.0. Is that what you are looking for? learn.microsoft.com/en-us/dotnet/api/system.guid.createversion7?view=net-9.0#system-guid-createversion7
That's a great question! It was introduce in C# 8 and I have a separate video on the subject. In short, it changes how the compiler looks at all your reference types (classes, strings, objects). Instead of assuming that they are null, which they are by default, the compiler will do it's best to tell you if you have forgotten to set it to a value. This means that you can avoid null reference exceptions. To allow an object to be null, you would decorate it with a "?". or example: string? optionalName = null; While this would give you a warning because it should not be null: string name = null; Hope this helps!
Amazing stuff Filip! Thanks for the update!
Thank you Gerald!
Thank you Filip, I can skip .NET Conf now! 😂
Yeah.. that's lengthy
Thank you Filip.I would certainly be interested in your summary of what has been added or changed from a Maui perspective.
Dotnet & C# has the tone of exciting new stuff. That's exactly a problem for developers. Feature additon is faster than its adaptation😮
Thank you, Filip, for the excellent content on the new features. Your video is invaluable 🙏
Thank you very much!
as Fullstack Js/Ts developper I see a lot of contents around c# and the .NET ecosystem ! what made this shift? even this channel !
keep up with updated implementations 🔭
That’s a great question! I think it’s more popular than ever, especially since it’s viable for full stack development.
The rather fast cadence of updates also means there is going to be a lot more buzz!
Fantastic walkthrough!
Thanks! Noticed a slight difference in results in the base64url demo. Here is the clarification from Chat GPT:
The difference in results between `Base64Url.EncodeToString(data)` and `Convert.ToBase64String(data)` in your code is because they use two different Base64 encoding schemes:
1. **Base64Url Encoding**: `Base64Url` is a URL-safe version of Base64. It replaces the `+` and `/` characters with `-` and `_`, respectively, to make it safe for URLs and filenames. It may also omit padding (`=` characters at the end), making the encoded output slightly shorter.
2. **Standard Base64 Encoding**: `Convert.ToBase64String` follows the standard Base64 encoding rules, which include `+`, `/`, and padding (`=`) to make the encoded string compliant with the Base64 specification.
In short, the output differences you see are due to these substitutions and padding rules in URL-safe Base64 encoding.
Yep! That’s the whole point of the example to show the difference. As the old approach many had wasn’t actually URL safe at all.
Welcome back, Filip!
Thank you Sean!
Thanks for great intro! Keep up the good work!💪
Great video. Thanks for this overview!
AFAIK field keyword is not included in the official version of C# 13. They removed it for the current version.
Looks like they moved it to ”preview” last minute. It’s still available and shipped with .NET 9.0 but you have to set the LangVersion to preview. It’s because it’s a pretty breaking change.
Just found your channel. Amazing explanations.
Subbed and let the bell ring!
Awesome, thank you!
Please consider making an Aspire getting started video
Thank you Filip!
Thank you, great content 10/10 👍, and presentation 10/10 ...
@@pkmx-um9vb Thank you for the kind words!
Great video, thank you!
thanks!
Great and unvaluable
thanks, great video
thought type results are delayed?
It’s available: learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.http.typedresults?view=aspnetcore-8.0
Skip to @19:21 for the addition of discriminated unions.
@@alexclark6777 hah 😂
No sortable Guid? :(
They’ve added UUID v7 in .NET 9.0.
Is that what you are looking for?
learn.microsoft.com/en-us/dotnet/api/system.guid.createversion7?view=net-9.0#system-guid-createversion7
After 4 years you dropped something with this quality?
I think you should take your channel more seriously. Cheers
Thank you for the very kind words and encouragement 🙏
👍👍👍👍👍👍
"Hopefully everyone us using nullable reference types". Why would everyone want to use this feature?
That's a great question! It was introduce in C# 8 and I have a separate video on the subject.
In short, it changes how the compiler looks at all your reference types (classes, strings, objects). Instead of assuming that they are null, which they are by default, the compiler will do it's best to tell you if you have forgotten to set it to a value. This means that you can avoid null reference exceptions.
To allow an object to be null, you would decorate it with a "?".
or example: string? optionalName = null;
While this would give you a warning because it should not be null: string name = null;
Hope this helps!