Web Developer

C# บน WebAssembly: Mono อัพเดตความคืบหน้า “เรามาแน่”

เรื่องที่เกี่ยวข้อง - C# on WebAssembly, WebAssembly

WebAssembly เป็นมาตรฐานเทคโนโลยีบนเว็บใหม่อีกตัว ที่หลายๆ คนหมายว่า มันจะมาเปลี่ยนโลกของเว็บอย่างสิ้นเชิง

ถ้าพูดถึงประโยชน์ของมัน สรุปได้สั้นๆ ตอนนี้ว่า

มันสามารถทำให้โค้ดภาษา Native ทำงานบน Web Browser ได้ความเร็วเหมือนโปรแกรม Native ยังไงยังงั้น

ดังนั้นภาษาโปรแกรมมิ่งแบบ Native ต่างก็พากันตื่นตัวยกใหญ่ มองว่าจะทำยังไง ถึงจะภาษาตัวเองเข้าไปแย่งชิงพื้นที่บนเทคโนโลยีเว็บผ่านเจ้า WebAssembly นี้ได้

ซึ่งหนึ่งในนั้นคือ C#.NET อย่างไม่ต้องสงสัย และวันนี้โค้ชพลก็ได้เอาความคืบหน้าจากทางฝั่ง C# มาฝากกัน

C# บน WebAssembly ด้วย Mono

ใครที่ติดตามเรื่อง Xamarin หรือเรียน Workshop กับโค้ชพลไป จะมีส่วนที่คุยกันว่า Xamarin พา C# เติบโตมาสู่ iOS และ Android ได้ เพราะอิงเทคโนโลยีของ Mono เป็นหลัก

และตอนนี้ Mono กำลังมองยาวไปยังส่วนต่อไปคือการเขียน C# ใช้งานบนเว็บเบราเซอร์ได้ ผ่านเทคโนโลยี WebAssembly นั่นเอง

โดย Mono ออกมาอัพเดตว่าการทดลองพา C# เข้าสู่ WebAssembly ตอนนี้มีอยู่ 2 แบบคือ

  1. Full Static Compilation
  2. Mixed Mode

1. เหมาเหมา (Full Static Compilation)

แบบแรก เรียกว่าเหมาเหมา ก็ได้ เพราะมันคอมไพล์ทุกอย่าง ทั้ง Mono C Runtime, Class Libraries, รวมถึงโค้ดของเราเข้าไปใน WebAssembly

ผลลัพธ์คือไฟล์ขนาดใหญ่ (มากๆ) เราสามารถดูโปรเจคที่คอมไพล์เรียบร้อยแล้วได้ที่นี่ ส่วนโค้ดที่คอมไพล์แล้วดูที่นี่

2. โหมดผสม (Mixed Mode)

แบบที่สองเป็นแบบผสมผสาน โดยการคอมไพล์ Mono C Runtime เข้าไปใน WebAssembly และใช้ Mono IL จัดการ และรันโค้ด

ได้ไฟล์ขนาดเล็กว่าแบบแรก แต่ประสิทธิภาพแย่กว่า ดูโปรเจคแบบที่ 2 ได้ที่นี่

ขนาดเป็นสิ่งสำคัญ

ปัจจุบันขนาดของไฟล์ที่เอามาใช้ยังมีขนาดใหญ่อยู่ เนื่องจากในการทดลอง ทีมพัฒนา Mono ยังใช้โปรไฟล์ในการสร้างแบบเดียวกับที่ใช้บน Desktop แอพพลิเคชั่นอยู่

แต่แผนการต่อไปคือ Mono จะใช้การปรับแต่งโปรไฟล์ที่ใช้กับ Mobile Application และตัดทอนส่วนที่ไม่จำเป็นออก เพื่อให้ได้ขนาดที่เล็กพอจะทำงานได้อย่างรวดเร็วบน Web Platform

ขั้นตอนต่อไป

เห็นชัดว่าตอนนี้ Mono ผ่านการทดสอบแนวคิดขั้นแรกมาได้แล้ว ส่วนต่อไปคือการเพิ่มประสิทธิภาพการทำงานของไฟล์ที่เอามาใช้บน WebAssembly

จากที่ลองเล่น และเข้าไปดูมา Mono ดูจะสนใจวิธีที่ 2 เป็นพิเศษ

ซึ่งเดี๋ยวเราจะเอามาอัพเดตกันต่อไปครับ

อ้างอิง – Mono Assembly Project, Mono Blog 

 

เริ่มต้นยุค AI ด้วยคอร์สฟรี และพรีเมี่ยม กับพล

หากชอบสิ่งที่พลเล่า เรื่องที่พลสอน สามารถสนับสนุนพลโดยการเข้าเรียนคอร์สออนไลน์ของพลนะคร้าบ

  • เข้าใจง่าย ใช้ได้จริง ออกแบบการสอนอย่างเข้าใจโดยโค้ชพล
  • มีคอร์สสำหรับคนใช้งานทั่วไป จนถึงเรียนรู้เพื่อใช้งานในสายอาชีพขั้นสูง
  • ทุกคอร์สมีใบประกาศณียบัตรรับรองหลังเรียนจบ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

Allow All
Manage Consent Preferences
  • Always Active

Save