ป้ายกำกับ: c-sharp

C# & .NET Modern 101: ลบความรู้ .NET Framework เก่า แล้วเริ่มนับหนึ่งใหม่กับ .NET Cross-PlatformC# & .NET Modern 101: ลบความรู้ .NET Framework เก่า แล้วเริ่มนับหนึ่งใหม่กับ .NET Cross-Platform

ในโลกของการพัฒนาซอฟต์แวร์ยุคใหม่ การยึดติดกับเทคโนโลยีที่ผูกติดกับระบบปฏิบัติการใดระบบปฏิบัติการหนึ่ง (Vendor Lock-in) คือข้อจำกัดที่ใหญ่ที่สุด การเปลี่ยนผ่านจาก .NET Framework สู่ .NET Core และ .NET 6/7/8+ จึงไม่ใช่แค่การอัปเดตเวอร์ชัน แต่คือการเปลี่ยนกระบวนทัศน์ (Paradigm Shift) ครั้งใหญ่ที่เปิดโอกาสให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่มีประสิทธิภาพสูง ทำงานได้ทุกระบบปฏิบัติการ และพร้อมรองรับการขยายตัวในอนาคต

ทำความเข้าใจการเปลี่ยนผ่านสู่ Cross-Platform .NET

หัวใจหลักของการพัฒนา .NET ยุคใหม่คือการปลดปล่อยโค้ดเบสให้เป็นอิสระจาก Windows โดยการใช้ Runtime ที่เป็นแบบ Unification ทำให้เราสามารถรันโค้ด C# บน Linux, macOS, และ Windows ได้อย่างเท่าเทียมกัน ความแตกต่างที่สำคัญคือการที่ .NET Modern ได้ปรับปรุงประสิทธิภาพของ Web API อย่างมหาศาล ด้วยการใช้ Kestrel Web Server ซึ่งเป็นเซิร์ฟเวอร์ที่ออกแบบมาให้รวดเร็วและเบาที่สุด

การเชื่อมต่อข้อมูล: C# กับ PostgreSQL ในยุคสมัยใหม่

เมื่อเราพูดถึงการพัฒนา Cross-Platform ที่สมบูรณ์แบบ การจัดการกับฐานข้อมูลก็ต้องเป็นแบบไร้รอยต่อ ในบริบทของ .NET Modern การใช้ PostgreSQL เป็นฐานข้อมูลหลักเป็นทางเลือกที่ยอดเยี่ยม เนื่องจาก PostgreSQL เป็นฐานข้อมูล Open Source ที่มีประสิทธิภาพสูงและรองรับการเชื่อมต่อกับภาษาโปรแกรมสมัยใหม่ได้อย่างสมบูรณ์

ในทางปฏิบัติ เราจะใช้ไลบรารีเช่น Npgsql (สำหรับ .NET) เพื่อจัดการการเชื่อมต่อ ทำให้โค้ด C# ของเราสามารถส่งคำสั่ง SQL ไปยัง PostgreSQL ได้อย่างมีประสิทธิภาพ โดยไม่ต้องกังวลว่าโค้ดจะทำงานได้แค่บน Windows เท่านั้น

ตัวอย่างการเรียกใช้คำสั่ง PostgreSQL จาก C#

สมมติว่าเราต้องการดึงรายการ ID และชื่อสินค้า 3 รายการจากตาราง `products` โดยใช้ C# และส่งคำสั่งไปยัง PostgreSQL:

SQL

// C# Code Snippet (Conceptual) - Using Npgsql Library

string connectionString = "Host=localhost;Port=5432;Database=shopdb;Username=user;Password=pass;";
using (var conn = new NpgsqlConnection(connectionString)) {
    conn.Open();
    // SQL Query ที่ถูกส่งไปยัง PostgreSQL
    string sql = "SELECT id, name FROM products WHERE id IN (1, 2, 3);";
    
    using (var cmd = new NpgsqlCommand(sql, conn)) {
        using (var reader = cmd.ExecuteReader()) {
            while (reader.Read()) {
                int id = reader.GetInt32(0);
                string name = reader.GetString(1);
                Console.WriteLine($"ID: {id}, Name: {name}");
            }
        }
    }
}

โค้ดตัวอย่างนี้แสดงให้เห็นว่าไม่ว่าแอปพลิเคชัน C# ของเราจะรันบน Linux หรือ macOS ก็ตาม ตราบใดที่ติดตั้ง PostgreSQL Client และ Driver ที่ถูกต้อง การเชื่อมต่อและเรียกใช้คำสั่ง SQL จะยังคงทำงานได้อย่างเสถียรและรวดเร็ว

บทสรุป: ก้าวสู่การพัฒนาที่ยืดหยุ่น

การเปลี่ยนผ่านสู่ .NET Cross-Platform และการผสานรวมกับฐานข้อมูลอย่าง PostgreSQL คือกุญแจสำคัญที่ช่วยให้นักพัฒนาสามารถสร้างระบบที่ทันสมัย ปรับขนาดได้ (Scalable) และมีความยืดหยุ่นสูง (Portable) อีกต่อไป การเรียนรู้แนวคิดเหล่านี้จะช่วยให้นักพัฒนาสามารถหลุดพ้นจากข้อจำกัดของเทคโนโลยีเก่า และพร้อมสำหรับการพัฒนาซอฟต์แวร์ในโลกยุคดิจิทัลที่ไม่มีขอบเขตของระบบปฏิบัติการใดๆ อีกต่อไป