Home > C# .NET > เรื่องของ Managed Code

เรื่องของ Managed Code

เมื่อเราทำงานกับ .NET Framework เราจะได้เจอกับคำว่า “Managed code”  ในเอกสารนี้จะอธิบายความหมายของคำนี้รวมถึงข้อมูลต่าง ๆ ที่เกี่ยวข้องที่ต้องรู้

เพื่อให้ง่ายต่อความเข้าใจ ว่า Managed code คืออะไร ให้คำจำกัดความง่าย คือ Code ที่ทำงานภายใต้การจัดการของ Runtime ซึ่งการหมายถึง Common Language Runtime หรือ CLR  ไม่ว่าจะเป็น .NET Framework  .NET Core หรือ Mono ก็ตาม   CLR มีหน้าที่ในการ compiling  Managed code ให้เป็น Machine Code และทำการ และสั่งให้ทำงาน ซึ่งใน CLR นั้นมีบริการต่าง ๆ ที่สำคัญให้ เช่น Automatic Memory management , security boundaries, type safety เป็นต้น

ในทางตรงกันข้าม ในวิถีของการทำงาน C/C++  ในที่นี้เราเรียกว่า Unmanaged code ซึ่งในโลกของ Unmanaged code นั้น Operating System มีหน้าที่ load และ run โปรแกรม นอกจากนี้โปรแกรมเมอร์จะต้องจัดการเอง เช่น เรื่องการใช้การจอง Memories จะต้องจองและคืนเอง เป็นต้น 

สำหรับ Managed Code นั้นเขียนขึ้นจากภาษาระดับสูง (high-level language ) ที่สามารถประมวลผลบน .NET ได้ เช่น C# , Visual Basic, F# และอื่น ๆ เมื่อเราทำการ Compile Code ที่เขียนขึ้นจากภาษาเหล่านี้ด้วย Complier ของ Managed Code เราจะยังไม่ได้ Machine code เลย สิ่งที่ได้เราจะเรียกว่า Intermediate Language Code ซึ่งจะต้องถูกแปลงเป็น Machine Code ด้วย CLR อีกครั้งหนึ่ง แต่ C++ นั้นเป็นภาษาหนึ่งที่ถูกยกเว้นจากข้อกำหนดดังกล่าวข้างต้น เนื่องจากมันสามารถที่จะ Compile ออก มาเป็น Machine code หรือ Unmanage binaries และประมวลผลบน Windows ได้เลย (ไม่ต้องทำงานบน CLR) ตามภาพ

ภาพจาก https://stackoverflow.com

Categories: C# .NET
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: