DEV Community

Supraja Tangella
Supraja Tangella

Posted on

𝗨𝗻𝗹𝗼𝗰𝗸𝗶𝗻𝗴 𝗣𝗲𝗿𝗳𝗼𝗿𝗺𝗮𝗻𝗰𝗲: 𝗪𝗵𝗮𝘁 𝗶𝘀 𝗡𝗮𝘁𝗶𝘃𝗲 𝗔𝗢𝗧 𝗮𝗻𝗱 𝗛𝗼𝘄 𝘁𝗼 𝗨𝘀𝗲 𝗶𝘁 𝗶𝗻 𝗔𝗦𝗣.𝗡𝗘𝗧 𝗖𝗼𝗿𝗲 𝗪𝗲𝗯 𝗔𝗽𝗽𝘀

𝗪𝗵𝗮𝘁 𝗶𝘀 𝗡𝗮𝘁𝗶𝘃𝗲 𝗔𝗢𝗧?
Native Ahead-Of-Time (AOT) compilation is a feature in .NET 8 that compiles your application directly to a native executable. This means your app runs without relying on Just-In-Time (JIT) compilation at runtime, resulting in faster startup times and smaller memory footprint.

𝗔𝗱𝘃𝗮𝗻𝘁𝗮𝗴𝗲𝘀 𝗼𝗳 𝗡𝗮𝘁𝗶𝘃𝗲 𝗔𝗢𝗧:

  • 𝗙𝗮𝘀𝘁𝗲𝗿 𝘀𝘁𝗮𝗿𝘁𝘂𝗽 𝘁𝗶𝗺𝗲 because code is precompiled.
  • 𝗥𝗲𝗱𝘂𝗰𝗲𝗱 𝗺𝗲𝗺𝗼𝗿𝘆 𝘂𝘀𝗮𝗴𝗲 as no JIT compiler is needed at runtime.
  • 𝗦𝗺𝗮𝗹𝗹𝗲𝗿 𝗱𝗲𝗽𝗹𝗼𝘆𝗺𝗲𝗻𝘁 𝘀𝗶𝘇𝗲 especially when combined with trimming unused code.
  • 𝗦𝗲𝗹𝗳-𝗰𝗼𝗻𝘁𝗮𝗶𝗻𝗲𝗱 𝗲𝘅𝗲𝗰𝘂𝘁𝗮𝗯𝗹𝗲𝘀 that include the runtime, making deployment simpler.

𝗟𝗶𝗺𝗶𝘁𝗮𝘁𝗶𝗼𝗻𝘀 𝗼𝗳 𝗡𝗮𝘁𝗶𝘃𝗲 𝗔𝗢𝗧:

  • Limited support for dynamic features like Reflection.Emit and runtime code generation.
  • Some third-party libraries may not be compatible due to heavy use of reflection or dynamic loading.
  • Requires careful code design to avoid unsupported features.
  • Razor runtime compilation is not supported; views must be precompiled.

𝗛𝗼𝘄 𝘁𝗼 𝗜𝗺𝗽𝗹𝗲𝗺𝗲𝗻𝘁 𝗡𝗮𝘁𝗶𝘃𝗲 𝗔𝗢𝗧 𝗶𝗻 𝗔𝗦𝗣.𝗡𝗘𝗧 𝗖𝗼𝗿𝗲 𝗠𝗩𝗖:

  1. 𝗨𝗽𝗱𝗮𝘁𝗲 𝘆𝗼𝘂𝗿 𝗽𝗿𝗼𝗷𝗲𝗰𝘁 𝗳𝗶𝗹𝗲 (.𝗰𝘀𝗽𝗿𝗼𝗷) to enable Native AOT and trimming:


net8.0
true
true
true
win-x64 <!-- Change as per your platform -->

  1. 𝗣𝘂𝗯𝗹𝗶𝘀𝗵 𝘁𝗵𝗲 𝗽𝗿𝗼𝗷𝗲𝗰𝘁 with the following command:

dotnet publish -c Release -r win-x64 --self-contained true /p:PublishAot=true

  1. 𝗥𝘂𝗻 𝘁𝗵𝗲 𝗴𝗲𝗻𝗲𝗿𝗮𝘁𝗲𝗱 𝗻𝗮𝘁𝗶𝘃𝗲 𝗲𝘅𝗲𝗰𝘂𝘁𝗮𝗯𝗹𝗲 from the publish folder.

𝗦𝗮𝗺𝗽𝗹𝗲 .𝗰𝘀𝗽𝗿𝗼𝗷 𝘀𝗻𝗶𝗽𝗽𝗲𝘁 𝗳𝗼𝗿 𝗡𝗮𝘁𝗶𝘃𝗲 𝗔𝗢𝗧:


net8.0
true
true
true
win-x64

𝗛𝗮𝘃𝗲 𝘆𝗼𝘂 𝗲𝘅𝗽𝗲𝗿𝗶𝗺𝗲𝗻𝘁𝗲𝗱 𝘄𝗶𝘁𝗵 𝗡𝗮𝘁𝗶𝘃𝗲 𝗔𝗢𝗧 𝗶𝗻 𝘆𝗼𝘂𝗿 𝗽𝗿𝗼𝗷𝗲𝗰𝘁𝘀? 𝗪𝗵𝗮𝘁 𝗰𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀 𝗼𝗿 𝗯𝗲𝗻𝗲𝗳𝗶𝘁𝘀 𝗱𝗶𝗱 𝘆𝗼𝘂 𝗼𝗯𝘀𝗲𝗿𝘃𝗲?

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.