การใช้งาน .NET
ServBay มอบสภาพแวดล้อมที่สะดวกและมีประสิทธิภาพสำหรับนักพัฒนา .NET บน macOS ด้วยระบบจัดการซอฟต์แวร์แพ็คเกจของ ServBay คุณสามารถติดตั้ง จัดการ และใช้งาน .NET SDK ได้หลายเวอร์ชันอย่างง่ายดาย ทั้ง .NET รุ่นใหม่ (เช่น .NET Core และเวอร์ชันถัดมา) และ Mono ที่เป็นเฟรมเวิร์กรุ่นคลาสสิก เพื่อตอบสนองความต้องการของแต่ละโปรเจกต์
ภาพรวม
ประวัติของ .NET กับการรองรับบน macOS
.NET คือแพลตฟอร์มการพัฒนาหลากหลายที่พัฒนาโดย Microsoft ประวัติและวิวัฒนาการของเวอร์ชันต่างๆ มีความสำคัญต่อการเข้าใจการใช้งานบน macOS ดังนี้
.NET Framework (เวอร์ชันแรกสุด): เปิดตัวครั้งแรกในปี 2002 .NET Framework เป็นแพลตฟอร์มหลักของ Microsoft โดยถูกออกแบบมาสำหรับ Windows เป็นหลัก ประกอบด้วย Common Language Runtime (CLR) และ Framework Class Library (FCL) ข้อจำกัดคือ ไม่สามารถรันแอปพลิเคชัน .NET Framework บน macOS ได้โดยตรง
Mono (เจ้าแรกด้านข้ามแพลตฟอร์ม): เพื่อนำแอป .NET มาสู่ Linux และ macOS คอมมูนิตี้ (เริ่มต้นโดย Ximian ตามด้วย Novell และ Xamarin/Microsoft) ได้พัฒนา Mono ขึ้นมา Mono เป็นการนำ .NET Framework มาทำเป็นโอเพ่นซอร์สและข้ามแพลตฟอร์ม ทำให้นักพัฒนาสามารถสร้างและรันแอป C# บน macOS และ Linux ได้ สำหรับงานที่ต้องใช้งาน .NET Framework รุ่นเก่าบน macOS Mono ยังเป็นทางเลือกที่ใช้งานได้ถึงปัจจุบัน
.NET Core / .NET 5+ (มาตรฐานข้ามแพลตฟอร์มรุ่นใหม่): Microsoft ตระหนักถึงความสำคัญด้านข้ามแพลตฟอร์ม จึงได้ออกแบบ .NET Core ใหม่ ให้เป็น .NET ที่ทันสมัย มีประสิทธิภาพสูง เป็นโอเพ่นซอร์ส และรองรับทุกระบบปฏิบัติการ (Windows, macOS, Linux) หลังจาก .NET Core 3.1 Microsoft เปลี่ยนชื่อเป็น .NET (เริ่มที่เวอร์ชัน 5 ขึ้นไป เพื่อหลีกเลี่ยงความสับสนกับ .NET Framework 4.x) ปัจจุบันเมื่อกล่าวถึง .NET SDK หมายถึง .NET ข้ามแพลตฟอร์มยุคใหม่ (เช่น .NET 5, 6, 7, 8, 9, 10 ฯลฯ) และเป็นแพลตฟอร์มแนะนำโดย Microsoft สำหรับการพัฒนาแอปใหม่ทุกแบบ รวมถึงบน macOS
การรองรับ .NET ของ ServBay
ServBay เข้าใจประวัติของ .NET และความต้องการอันหลากหลายของนักพัฒนา จึงมีการสนับสนุนดังต่อไปนี้
แพ็คเกจ .NET SDK รุ่นใหม่: รวมเวอร์ชันต่างๆ ของ .NET SDK (เช่น .NET SDK 2.0 ถึง 10.0) ช่วยให้คุณใช้ C#, F# และ ASP.NET Core สำหรับงานข้ามแพลตฟอร์มได้ทุกรูปแบบ
แพ็คเกจ Mono: มี Mono runtime (เช่น Mono 6) สำหรับรันหรือพัฒนาโปรเจกต์เก่า/ไลบรารีพิเศษที่ต้องใช้ .NET Framework บน macOS รวมถึง การรองรับ ASP.NET รุ่นเก่า (Web Forms, System.Web MVC) แบบจำกัด
ติดตั้งหลายเวอร์ชันพร้อมกัน: คุณสามารถติดตั้ง .NET SDK และ Mono ได้หลายเวอร์ชันในเครื่องเดียวพร้อมกัน
ควบคุมเวอร์ชันระดับโปรเจกต์: กำหนดเวอร์ชัน .NET SDK ที่ต้องการสำหรับแต่ละโปรเจกต์ผ่านไฟล์
.servbay.config
จัดการง่าย: ดู ติดตั้ง หรือถอนการติดตั้ง SDK/Mono เวอร์ชันต่างๆ ได้จากอินเทอร์เฟซแบบกราฟิกของ ServBay
การเข้าถึงแพ็คเกจ .NET
- เปิดแอปพลิเคชัน ServBay
- ที่แถบนำทางซ้ายมือ คลิกที่
ซอฟต์แวร์แพ็คเกจ (Packages)
- ในหน้าซอฟต์แวร์แพ็คเกจ เลื่อนจนเจอ หรือเลือก
Languages
->.NET
จากรายการหมวดหมู่ด้านซ้าย - ทางขวาจะแสดงรายการ .NET SDK และ Mono ที่มีให้ติดตั้ง
การติดตั้ง .NET SDK
รายการแพ็คเกจจะแสดงสถานะของแต่ละเวอร์ชัน .NET SDK อย่างชัดเจน:
- ชื่อแพ็คเกจ (Package Name): เช่น
.NET SDK 8.0
หรือMono 6
- เวอร์ชัน (Version): หมายเลขเวอร์ชันแบบละเอียดของแต่ละแพ็คเกจ
- สถานะ (Status): แสดง
Installed
(ติดตั้งแล้ว) หรือNot Installed
(ยังไม่ได้ติดตั้ง) - ควบคุม (Control): แสดงปุ่มสั่งการ
หากต้องการติดตั้ง .NET SDK เวอร์ชันที่ยังไม่ได้ติดตั้ง (เช่น .NET SDK 10.0
):
- หาเวอร์ชันที่ต้องการจากในรายการ
- ดูว่าสถานะขึ้นว่า
Not Installed
- คลิกไอคอน ดาวน์โหลด/ติดตั้ง (Download/Install) ที่มุมขวาสุดของแถวนั้น (มักเป็นลูกศรลง)
- ServBay จะเริ่มดาวน์โหลดและติดตั้ง SDK เวอร์ชันที่คุณเลือก ซึ่งอาจใช้เวลาระยะหนึ่งขึ้นกับความเร็วเน็ตและขนาด SDK
- เมื่อติดตั้งสำเร็จ สถานะจะเปลี่ยนเป็น
Installed
ไอคอนควบคุมจะเปลี่ยนเป็น ถอนการติดตั้ง (Uninstall) (รูปถังขยะ)
การจัดการ SDK ที่ติดตั้งแล้ว
- ดูเวอร์ชันที่ติดตั้ง: ในรายการจะแสดงสถานะ
Installed
ชัดเจนสำหรับ SDK/Mono ทุกตัวที่มีในระบบแล้ว - ถอนการติดตั้ง SDK: หากไม่ต้องการใช้งานเวอร์ชันใดอีกแล้ว ให้คลิกไอคอน ถอนการติดตั้ง (Uninstall) (ถังขยะ) ข้างเวอร์ชันที่ต้องการ แล้วกดยืนยันเพื่อลบออกจากระบบ
การใช้งาน .NET SDK ที่ติดตั้งแล้ว
เมื่อคุณติดตั้ง .NET SDK ผ่าน ServBay ระบบจะเพิ่มคำสั่ง dotnet
ที่เหมาะสมลงใน PATH ของระบบโดยอัตโนมัติ (ขณะใช้งานสภาพแวดล้อม ServBay) ส่งผลให้คุณสามารถใช้คำสั่ง dotnet
ได้โดยตรงบน Terminal ของ macOS
ตัวอย่างคำสั่งการใช้งาน:
เช็คเวอร์ชัน SDK ที่มีอยู่: เปิด Terminal แล้วพิมพ์
bashdotnet --list-sdks
1จะแสดงรายการ SDK ที่ติดตั้งทั้งหมดผ่าน ServBay รวมถึง path ติดตั้ง
เช็ค SDK เวอร์ชันที่ถูกเลือกใช้งานอยู่ (มักเป็นตัวล่าสุดหรือที่กำหนดเป็นค่า default):
bashdotnet --version
1สร้างแอปคอนโซลใหม่ (ใช้ SDK ค่า default):
bash# สร้างโฟลเดอร์โปรเจกต์ชื่อ MyConsoleApp mkdir MyConsoleApp cd MyConsoleApp # สร้างโปรเจกต์คอนโซลใหม่ด้วย SDK default dotnet new console
1
2
3
4
5
6รันแอปพลิเคชัน:
bashdotnet run
1เลือกใช้ SDK เวอร์ชันเฉพาะ (ถ้าต้องการ): หากโปรเจกต์ของคุณต้องใช้ SDK เวอร์ชันที่จำเพาะ ให้กำหนดลงในไฟล์
global.json
ที่โฟลเดอร์รากโปรเจกต์ เช่นjson{ "sdk": { "version": "8.0.408" // ระบุเวอร์ชัน SDK ที่มีในเครื่องและโปรเจกต์ต้องการ } }
1
2
3
4
5เมื่อสั่งรัน
dotnet
ในโฟลเดอร์นั้น ระบบจะใช้เวอร์ชัน SDK ตามที่ระบุใน global.json นี้ก่อนเสมอ
การรองรับ Mono
นอกจาก .NET SDK ปกติแล้ว ServBay ยังสามารถติดตั้ง Mono ได้ด้วย ซึ่ง Mono คือซอฟต์แวร์โอเพ่นซอร์สสำหรับ .NET Framework แบบข้ามแพลตฟอร์ม ถ้าคุณต้องรันแอปหรือพัฒนาเครื่องมือเฉพาะที่ต้องการฟีเจอร์จาก .NET Framework บน macOS ก็สามารถติดตั้ง Mono ผ่าน ServBay ได้ ขั้นตอนติดตั้ง-ถอนการติดตั้งเหมือนกับ .NET SDK ทุกประการ
Mono เหมาะสำหรับการรันไฟล์ปฏิบัติการที่คอมไพล์ด้วย .NET Framework (.exe
) หรือต้องใช้งานเครื่องมือพิเศษที่อิงกับสภาพแวดล้อมของ Mono รวมถึง รันแอป ASP.NET รุ่นเก่า
เช็คเวอร์ชัน Mono:
bashmono --version
1รันไฟล์ .exe ที่สร้างจาก .NET Framework: สมมติว่าคุณมี
LegacyApp.exe
bashmono LegacyApp.exe
1รันแอป ASP.NET รุ่นเก่า (รองรับอย่างจำกัด): Mono มาพร้อมเครื่องมือ xsp ซึ่งเป็นเว็บเซิร์ฟเวอร์ง่ายๆ สำหรับรัน Web Forms หรือ System.Web MVC ในสภาพแวดล้อม dev สามารถใช้แบบบูรณาการกับ
Nginx
+FastCGI
หรือApache
+mod_mono
ได้เช่นกันหมายเหตุสำคัญ:
- การรันแบบนี้รองรับ ASP.NET Framework แบบ จำกัด อาจใช้งานไม่ได้สมบูรณ์กับทุกแอป โดยเฉพาะที่ขึ้นกับฟีเจอร์เฉพาะของ Windows
- ประสิทธิภาพมักจะด้อยกว่ารันบน Windows/IIS
- ไม่แนะนำสำหรับงานใหม่ การพัฒนาเว็บยุคใหม่ควรใช้ ASP.NET Core
- ServBay มีเอกสารอธิบายขั้นตอนโดยละเอียด: วิธีรันเว็บ ASP.NET Framework 4.x บน macOS
หากต้องใช้เพื่อทดสอบหรือ maintain ตัวเก่า ตัวอย่างคำสั่งที่อาจใช้ (ขึ้นกับโปรเจกต์/อิมพลีเมนต์)
bash# ตัวอย่าง: สั่งให้ xsp รันที่โฟลเดอร์โปรเจกต์ # cd /Applications/ServBay/www/your_legacy_aspnet_app # xsp4 --port 8080 # (xsp4 สำหรับ .NET 4.x)
1
2
3
การบูรณาการกับเว็บเซิร์ฟเวอร์ (ASP.NET Core)
ด้วย .NET SDK ที่ติดตั้งผ่าน ServBay คุณสามารถพัฒนาแอป ASP.NET Core ได้ และสำหรับการดีพลอยสามารถใช้งานร่วมกับเว็บเซิร์ฟเวอร์ในตัวของ ServBay (Nginx, Caddy, Apache) ได้ดังนี้
- Publish แอป ASP.NET Core ด้วยคำสั่ง
dotnet publish
- เพิ่ม เว็บไซต์ (Website) ใหม่ใน ServBay
- ตั้งค่าตัวเว็บไซต์ ให้ทำงานเป็น reverse proxy ส่งต่อ request ไปที่พอร์ตของแอป ASP.NET Core (ที่ Kestrel ฟังอยู่ เช่น
http://localhost:5000
) วิธีเซ็ตอัพ reverse proxy ขึ้นกับว่าเลือกใช้ Nginx, Caddy หรือ Apache
ดูรายละเอียดในเอกสารหัวข้อการเพิ่มเว็บไซต์และตั้งค่า reverse proxy ของ ServBay
สรุป
ServBay ช่วยให้นักพัฒนาสามารถจัดตั้งและดูแลสภาพแวดล้อม .NET บน macOS ได้อย่างง่ายดาย ผ่านอินเทอร์เฟซที่เข้าใจง่าย คุณสามารถติดตั้ง เปลี่ยนเวอร์ชัน หรือถอน .NET SDK และ Mono กี่เวอร์ชันก็ได้ตามต้องการ พร้อมโฟกัสกับการพัฒนาและทดสอบแอป C#, F# และ ASP.NET Core ได้อย่างเต็มที่