.NET 8 | What is Native AOT in .NET?
Vložit
- čas přidán 20. 06. 2024
- Today, we dive deep into the world of AOT in .NET 8 and learn everything you need to know about it.
We're not just scratching the surface. Let's find out how it works, how to use it, and when it doesn't make sense.
00:00 Introduction
00:30 What is Native AOT?
03:10 Creating a Native AOT API Project
07:56 Native AOT Advantages
09:19 Native AOT Disadvantages
11:12 When to Use Native AOT?
11:40 Native AOT Support in .NET 8
12:46 Conclusion
📌 .NET 8 Announcement Blog Post:
devblogs.microsoft.com/dotnet...
📌 .NET AOT Documentation:
learn.microsoft.com/en-us/dot...
📌 .NET Conf 2023 - Day 1 (CZcams):
• .NET Conf 2023 - Day 1
🔥 C#/.NET Bootcamp: The Fundamentals & more (Code FRIENDS10 for 10% OFF)*
claudiobernasconi.ch/dotnet-c...
📌 .NET Developer Roadmap
claudiobernasconi.ch/learn-do...
📌 CZcams Playlists:
The FREE Blazor Crash Course: • The FREE Blazor Crash ...
Blazor: • Blazor
✅ SUBSCRIBE FOR MORE VIDEOS
Subscribe: 🔔 claudiobernasconi.ch/Subscribe
🚀 CONNECT & SUPPORT
Twitter: / chbernasconic
Blog: claudiobernasconi.ch
Newsletter: claudiobernasconi.ch/newsletter
* Affiliate Link: I earn a small commission at no additional cost - Věda a technologie
Great summary video! Short and quick explaining. Great job! Thanx! 😊
Thank you. 😉
I've been following you for quite some time. Your videos always have an excellent presentation, the information is clearly presented, not many people can do this. I looked at some places in development from a different angle. Thanks, keep making videos.
Thanks a lot for leaving such a nice comment. I really appreciate it. 🙏🙂
Another great video - thanks Claudio!
Thanks again! Happy you like the video. 🙏
Interesting, thanks!
Glad to have you in the community. 🙂
Nice helpful video, but do we really need .net runtime installed in target machine for running simple .net native aot application?
Great question. With AOT, you do not need the runtime installed on the target machine. It will be part of the single executable. Basically, you compile the app code and the runtime into a single executable. In the video, I talk about the runtime being required on the target machine in some way or another. In the case of AOT, we always ship it with our app. In the case of traditional .NET architecture, you have the choice to either only ship the app or to publish self-contained (including the runtime). I hope that helps to clarify that point.
@@ClaudioBernasconi Thanks for clarification, now i understood properly😌
How can it work in Blazor (in client side scenario)?
Thanks for your question. Currently, we cannot use Native AOT in .NET with Blazor. I expect progress in .NET 9, but not sure if it will include full AOT support (yet).
I hope it will be matured enough use in production at-least in .NET 10
I'm sure they will put in a lot of effort in upcoming releases.
@@ClaudioBernasconi is it too soon or risky to use in production for lambda apps?
Actually SignalR works with AoT + .Net Core 7
I will be surprised to see it doesn't with .Net 8
That's interesting. I haven't used it. My source was the official Microsoft documentation where is listed as not supported. learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot?view=aspnetcore-8.0
@@ClaudioBernasconi Update: I switched my project from .NET 7 to .NET 8 and noticed a warning in the line "services.AddSignalR();" saying, "SignalR does not currently support trimming or native AOT." I compiled it to native and encountered many similar warnings, and noticed I can no longer generate a single self-contained exe file.
Faster startup, but not faster runtime (slower maybe)
Thanks for your comment. I don't know if that is true or not. However, I'd love to take a look at a code base that demonstrates that assumption or read an article that documents said behavior. Feel free to reach out on Twitter (links in comments will probably auto-blocked by CZcams).
@@ClaudioBernasconi I know that Expressions are evaluated everytime they are called instead of only the first time in JIT, and there is no dynamic PGO.
I thought it will now finally not require dotnet runtime, eh, would be cool.
Thanks for your comment. But you still want the benefits of managed code (garbage collection, memory allocation, etc.) don't you? I still prefer using a managed language of C/C++ (for example). It's interesting to see how small the apps became with .NET 8. Curious to follow the journey with .NET 9.
@@ClaudioBernasconi Personally, I wouldn't make any systems-level project with C#, maybe except games. Go (not the verb) for a GC middle ground, Rust and C for deeper stuff and Python for quick iteration, the dream combo? But I don't make all the projects I want to contribute to (while I'm not done questioning on my behalf[1]) improvements to dotnet are welcome of course :D
[1] On that note, why would someone write a userspace **driver** with this structure, is beyond me :')
A dark theme would be appreciated.
Thanks a lot for your feedback. I thought about it in the past. However, I realized that in terms of accessibility a bright theme is a lot better and includes more people to enjoy my content. There are people who have issues with reading white color ond dark background. I appreciate your understandig and hope you'll continue to watch my videos.
Please BLINK when talking.
I am still learning and trying to improve my presentation skills. Thank you for your patience. If you have any tips on how to achieve that, you're more than welcome to share them.
@@ClaudioBernasconi Thank you for your response. I think it been more than three years now subscribed to your channel. Really like your work and always learn something new. God bless you.