.NET 8 | What is Native AOT in .NET?

Sdílet
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

Komentáře • 30

  • @MaxSupercars
    @MaxSupercars Před 7 měsíci

    Great summary video! Short and quick explaining. Great job! Thanx! 😊

  • @mentalist53
    @mentalist53 Před 7 měsíci +1

    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.

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 7 měsíci

      Thanks a lot for leaving such a nice comment. I really appreciate it. 🙏🙂

  • @carlcodes8422
    @carlcodes8422 Před 7 měsíci

    Another great video - thanks Claudio!

  • @gabrielzalisz
    @gabrielzalisz Před 7 měsíci

    Interesting, thanks!

  • @DeepakBhagat04
    @DeepakBhagat04 Před 7 měsíci +1

    Nice helpful video, but do we really need .net runtime installed in target machine for running simple .net native aot application?

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 7 měsíci +1

      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.

    • @DeepakBhagat04
      @DeepakBhagat04 Před 7 měsíci

      @@ClaudioBernasconi Thanks for clarification, now i understood properly😌

  • @bezi8875
    @bezi8875 Před 6 měsíci

    How can it work in Blazor (in client side scenario)?

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 6 měsíci

      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).

  • @mohamedfazrin4172
    @mohamedfazrin4172 Před 6 měsíci +1

    I hope it will be matured enough use in production at-least in .NET 10

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 6 měsíci +1

      I'm sure they will put in a lot of effort in upcoming releases.

    • @LucasLucena-vj4lc
      @LucasLucena-vj4lc Před měsícem

      @@ClaudioBernasconi is it too soon or risky to use in production for lambda apps?

  • @bradutdima
    @bradutdima Před 7 měsíci +1

    Actually SignalR works with AoT + .Net Core 7
    I will be surprised to see it doesn't with .Net 8

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 7 měsíci

      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

    • @Slingbox-TVGuide
      @Slingbox-TVGuide Před 7 měsíci

      ​@@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.

  • @savopejovic25
    @savopejovic25 Před 7 měsíci +2

    Faster startup, but not faster runtime (slower maybe)

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 7 měsíci

      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).

    • @savopejovic25
      @savopejovic25 Před 7 měsíci

      @@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.

  • @Beryesa.
    @Beryesa. Před 6 měsíci

    I thought it will now finally not require dotnet runtime, eh, would be cool.

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 6 měsíci

      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.

    • @Beryesa.
      @Beryesa. Před 6 měsíci

      @@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 :')

  • @GuildOfCalamity
    @GuildOfCalamity Před 7 měsíci

    A dark theme would be appreciated.

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 7 měsíci

      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.

  • @zeeshandar4334
    @zeeshandar4334 Před 7 měsíci +9

    Please BLINK when talking.

    • @ClaudioBernasconi
      @ClaudioBernasconi  Před 7 měsíci +4

      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.

    • @zeeshandar4334
      @zeeshandar4334 Před 6 měsíci +1

      @@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.