เก็บตกประเด็นจากงาน Build 2024 ประกาศอันหนึ่งที่น่าสนใจในงานคือ ไมโครซอฟท์บอกว่าการพัฒนาแอพแบบ Win32 บนวินโดวส์ จากนี้ไปจะแนะนำให้ใช้เครื่องมือสร้าง UI เพียงแค่ 2 ตัวคือ WPF (Windows Presentation Foundation) และ WinUI 3 เท่านั้น (ลาก่อน WinForms คือไม่ถึงขั้นไม่ยอมให้รัน แต่ไม่แนะนำให้ใช้แล้ว)
กรณีของ WinUI 3 นั้นเข้าใจได้ไม่ยาก เพราะเป็นเฟรมเวิร์คสร้าง UI ตัวใหม่ล่าสุดของไมโครซอฟท์ มีฟีเจอร์ยุคใหม่ๆ ครบครัน ไมโครซอฟท์แนะนำว่าหากเป็นการสร้างแอพใหม่ขึ้นมาตอนนี้ ก็ขอให้เลือก WinUI 3 เป็นอย่างแรก
ตอนนี้ไมโครซอฟท์เริ่มย้ายแอพของตัวเองมาใช้ WinUI 3 แล้วบางตัว เช่น File Explorer, Photos ส่วนบริษัทพันธมิตรที่ปรับมาใช้ WinUI 3 แล้วคือ แอปเปิล (ใช่ครับอ่านไม่ผิด) ที่ตอนนี้สร้างแอพ Apple TV, Apple Music, iCloud, Apple Devices บนวินโดวส์ ด้วย WinUI 3 แล้ว
ส่วนกรณีของ WPF ไมโครซอฟท์บอกว่าเป็นสิ่งที่ชาว .NET คุ้นเคยมานานกว่า 15 ปี มีเครื่องมือช่วยสนับสนุนมากมาย สิ่งที่ยังขาดไปคือการปรับหน้าตาของ WPF ให้ทันสมัย เข้ายุคกับธีม Windows 11 ซึ่งตอนนี้ไมโครซอฟท์ทำเสร็จไปบางส่วน นำมาโชว์แล้วในงาน Build รอบนี้ และเริ่มทดสอบได้แล้วใน .NET 9 Preview 4
หน้าตาของ WPF ที่ใช้ธีม Windows 11 จากแอพตัวอย่างของไมโครซอฟท์เองชื่อ WPF Gallery
ไมโครซอฟท์ยังแนะนำให้นักพัฒนา .NET/WPF หันมาใช้ Windows App SDK เป็นเครื่องมือเชื่อมแอพเข้ากับฟีเจอร์ของระบบปฏิบัติการ เพื่อให้แอพได้ประโยชน์จากฟีเจอร์ใหม่ๆ เช่น ความปลอดภัย การแจ้งเตือน การติดตั้ง-ถอนการติดตั้งที่เร็วขึ้น ฯลฯ โดยตอนนี้ไมโครซอฟท์ออก Windows App SDK 1.5+ ที่รองรับ .NET ได้ดีขึ้นกว่าเดิม แอพรันเร็วขึ้น ขนาดไฟล์เล็กลง
ที่มา - Microsoft Blog, Microsoft Build
Comments
เรื่อง UI นี่ MS สู้ Apple ไม่ได้จริง ๆ UI บางอย่างของ Windows คือ หน้าตาเดิมมาตั้งแต่ Windows 95 พอเจอจอที่มี DPI สูง ๆ คือ เบลอน่าเกลียด
ซึ่งแอปยุคเดียวกันที่เป็น Apple Carbon คือปัจจุบันรันบน macOS ไม่ได้แล้ว แต่ของไมโครซอฟท์ยังรันได้อยู่
+++
ผมให้ความสำคัญกับ Backwards Compatibility สูงมาก ถึงแม้ว่า Apple จะยังไม่น่าเกลียดเท่า Linux ก็ตาม
เป็นปัญหามากเครื่องmacเก่าๆ อัพOSแล้วชอบพังตั้งแต่ลองอัพมาไม่พังก็รวนหนักแบบเครื่องอืดไปเลย
พอไม่อัพก็ลงแอพverใหม่ๆไม่ได้เลย ต้องไปหาverเก่าๆใช้แต่ถ้าแอพบังคับอัพก็คือแตกพ่ายต้องไปหาช่องทางใช้ประทางอื่นอีก ยกตัวอย่างแอพสามัญประจำเครื่องคนไทยก็ Line ที่ต้องไปใช้lineในโครมแทน แล้วเอาจริงๆอายุOSเก่าที่ว่าก็ไม่ได้เก่ามากมายอะไรแค่ 5-6 ปีก็เริ่มมีปัญหาแล้ว
ก็ดีนะ แอพจะได้ ไปในทิศทางเดียวกัน หมด
ถ้าเป็น API เดียวกับที่ใช้ทำ menu ของ System tray ใน Windows 11
นี้โคตรช้าและทำเครื่องกระตุกอีก สังเวย performance เยอะไป