ถ้าผู้ที่ตามข่าวหรือได้ทดลองใช้ Windows 8 จะต้องรู้จักคำว่า Metro Style หรือ Metro UI ซึ่งทางไมโครซอฟต์ได้พัฒนาขึ้นมาเพื่อใช้ใน Windows 8 ระบบปฎิษัติการตัวใหม่ของไมโครซอฟต์
แต่ในความจริงแล้วทางไมโครซอฟต์ก็ไม่ได้พัฒนา Windows 8 ให้ใช้ Metro Style อย่างเดียว ไมโครซอฟต์ได้แยกประเภทของ ?Apps ที่ใช้ใน Windows 8 เป็น 2 อย่าง คือ Desktop Apps ก็คือ Apps แบบเดิมๆ ที่เราเคยใช้กันทุกวันนี้ที่อยู่บนคอมพิวเตอร์ทั้งแบบ Desktop และ Laptop กับ Metro Style Apps ซึ่งเป็น Apps ชนิดใหม่ออกแบบมาสำหรับอุปกรณ์จำพวกแท็บเล็ต ซึ่งรวมไปถึง ARM
ARM (Advanced RISC Machine) ก็คือ Microprocessor ที่มี สถาปัตยกรรมแบบ RISC (Reduced Instruction Set Computer) พัฒนาให้นำไปใช้กับไมโครคอนโทรเลอร์สำหรับอุปกรณ์หลายชนิด เช่น โทรศัพท์เครื่องที่, ออร์แกนไนเซอร์, โมเดม, กล้องถ่ายรูป, workstation ประสิทธิภาพสูง
ถ้าท่านที่ทำงานอยู่กับข่าวสารด้านคอมพิวเตอร์จะเคยทราบข่าวที่ไมโครซอฟต์ประกาศออกมาเมื่อปลายปี 2010 ว่าจะเปิดตัว Windows สำหรับชิปในสถาปัตยกรรม ARM และมาปัจจุบันนี้ก็เป็นความจริงแล้ว เพราะไมโครซอฟต์ได้ออกแบบให้ Windows 8 สามารถทำงานใน ARM ได้
ถ้าจะให้เห็นภาพว่า Metro Style นั้นเกี่ยวกับ Windows 8 ขนาดไหน ก็ขอให้ดูที่ Diagram? ของ Windows 8 ที่ไมโครซอฟต์แสดงออกมา
?
บริเวณสีเขียวในภาพ คือ พื้นที่ใหม่ของการพัฒนา APPs ในของไมโครซอฟต์ ซึ่งก็คงทำให้หลายๆ คนเกิดคำถามว่าบทบาทของมันต่อการพัฒนา? APPs แบบเดิมๆ อย่าง native/.NET จะเป็นอย่างไรบ้าง ?เช่น เราจะต้องเลิกเขียน native/.NET กันแล้วเปลี่ยนมาเขียน ?Metro แทนหรือเปล่า
แต่เท่าที่หาข้อมูลได้ ก็ตอบได้เลยว่าไม่ได้มาแทน .NET
Metro Style Apps เพียงแค่ออกมาเพื่อแท็บเล็ตและจอสัมผัสเท่านั้น และเป็น APPs ในฝั่ง client เพียงอย่างเดียวด้วย ทำงานได้เฉพาะบนแพลตฟอร์ม Windows และ Windows Phone ในอนาคต ไม่สามารถทำงานข้ามแพลตฟอร์มแบบ .NET ได้
ส่วนตัวคิดว่าไมโครซอฟต์ทำออกมาเพื่อเป็นคู่แข่งของ ?Android หรือ iOS ?เพราะตลาดด้านนี้อัตราการเติบโตสูงมาก ไมโครซอฟต์ยักษ์ใหญ่แห่งวงการคอมพิวเตอร์คงไม่ปล่อยให้หลุดมือไปหรอก
ก่อนจะลงลึกไปที่ Metro Style App เราต้องย้อนดู “ทางเลือก” ของการพัฒนา APPs ในของไมโครซอฟต์ก่อน
ปัจจุบันไมโครซอฟต์เปิดโอกาสให้เราพัฒนา APPs ได้ 4 แบบ
- native code เขียนเชื่อมต่อกับ Win32 API ที่อยู่คงกระพันมานาน เป้าหมายของมันก็คือ APPs ที่ทำงานบนเดสก์ท็อปวินโดวส์ ไม่รันข้ามแพลตฟอร์ม
- .NET เขียนเชื่อมต่อกับ .NET API (เช่น WPF, WCF) เลือกภาษาได้หลายภาษา (ที่นิยมคือ C#/VB) ทำงานข้ามแพลตฟอร์มได้ (อย่างน้อยก็บนแมค)
- web app เขียนด้วย HTML/JavaScript รันผ่านเบราว์เซอร์ทั้งหมด ไม่ต้องติดตั้ง (อันนี้เหมือนกับ web app บนแพลตฟอร์มอื่นๆ) ทำงานข้ามแพลตฟอร์ม ไม่ต้องคอมไพล์ แต่ความสามารถอาจจะน้อยไปบ้าง และต้องต่อเน็ตเพื่อใช้งาน
- Silverlight/WP7 เป็นเวอร์ชันลดรูปของข้อ .NET และใช้งานบนมือถือ Windows Phone เท่านั้น
การมาถึงของ Metro Style ถือเป็นวิธีการพัฒนา APPs แบบที่ 5 ของไมโครซอฟต์ มันจะมาพร้อมกับ API ตัวใหม่ที่เรียกว่า ?WinRT (ย่อมาจาก Windows Runtime) ซึ่งถือเป็น ?API ชุดใหม่ที่ไม่เกี่ยวข้องกับ Win32 และ .NET เดิมเลย
Metro/WinRT ถือเป็นแพลตฟอร์มการพัฒนาแบบใหม่ทั้งหมด แต่ก็อิงอยู่บนเทคโนโลยีเดิมหลายจุด
ในส่วนของ WinRT ที่อยู่ด้านล่าง ไมโครซอฟต์จะนำความสามารถใน Win32 และ .NET API มาจัดระเบียบใหม่ คัดเฉพาะสิ่งที่จำเป็นจริงๆ เพื่อให้เบา (เช่น ตัด WinForm ออกไป, ไม่มี GDI, ไม่มี XNA ต้องเรียก DirectX ตรงๆ – ดูรายการ API ทั้งหมดของ WinRT และ การเปรียบเทียบ API ระหว่าง WinRT กับ API แบบเดิมๆ)
ส่วนของภาษาที่ใช้พัฒนา APPs Metro ก็มีให้เลือก 3 แนวทาง
- HTML + JavaScript (โดยเชื่อมกับ WinRT API ลักษณะเดียวกับ webOS หรือ Silverlight รุ่นแรกๆ ซึ่งแน่นอนว่ามันเอาไปรันบนแพลตฟอร์มอื่นๆ ไม่ได้) รันผ่านเอนจินจาวาสคริปต์ของ IE
- XAML + C/C++ รันแบบ native
- XAML + C#/VB โดยรันผ่าน CLR ของ .NET
ตอนนี้เป้าหมายของAPPs แบบ Metro คือการรันบน Windows 8 (ไม่ว่าจะเป็น x86/ARM) เท่านั้น แต่ใน keynote เราก็เห็นเดโมการพอร์ตAPPs Metro ไปอยู่บน Windows Phone ได้ด้วย (ซึ่งเดิมทีAPPs Windows Phone เป็น Silverlight) ตรงนี้คงเห็นชัดว่าไมโครซอฟท์เริ่มขยับหนี Silverlight ในความหมายเดิม และใน Windows Phone รุ่นถัดๆ ไป เราน่าจะเห็นการใช้ Metro/WinRT มากขึ้น
อธิบายง่ายๆ ว่า Metro/WinRT จะมาแทนวิธีการพัฒนาแบบที่สี่เป็นหลัก นั่นคือ Silverlight จะค่อยๆ ลดบทบาทลง ส่วนวิธีการพัฒนาโปรแกรม 3 แบบแรกคือ native/.NET/web app จะยังมีที่ทางของมันอยู่เหมือนเดิม (อย่างน้อยก็ใน Windows 8 แบบเดสก์ท็อป x86) เพียงแต่ในระยะยาว ไมโครซอฟท์น่าจะผลักดันให้APPsบนแพลตฟอร์มวินโดวส์หันมาใช้ Metro/WinRT มากขึ้น
ข้อมูลจาก ReadWriteWeb ระบุว่าตอนนี้ไมโครซอฟท์ยังไม่มีแผนจะทำ Metro/WinRT แบบข้ามแพลตฟอร์ม (เหมือนกับ .NET ที่มีรันไทม์ไปติดตั้งบนแพลตฟอร์มอื่นๆ ได้) และการนำ Metro/WinRT ไปรันบนกลุ่มเมฆ (เหมือนกับ .NET บน Azure) ในช่วงแรกคงเป็นเฉพาะสภาพแวดล้อมในการพัฒนาแบบ client บนแท็บเล็ตเท่านั้น
กระบวนการพัฒนาAPPs Metro นอกจากตัวAPPsแล้ว ยังมีเรื่องการทำแพกเกจและส่งขึ้นไปขายบน Windows Store (ร้านขายAPPsของ Windows 8 ซึ่งไม่ใช่ Windows Marketplace) แต่ตรงนี้คงไม่ต่างอะไรจากAPPsบนมือถือในปัจจุบันมากนัก
ในสายตาของนักพัฒนาฝั่งไมโครซอฟท์ คงปรับตัวกันไม่ยากนักเพราะใช้เทคโนโลยีเดิมๆ อย่าง C#, VB, HTML/JavaScript, XAML แต่ก็มีส่วน WinRT และสไตล์ของ Metro ที่ต้องเรียนรู้ใหม่บ้าง และการพัฒนาโปรแกรมที่ต้องเริ่มใหม่ตั้งแต่แรก เครื่องมือพัฒนาเป็น Visual Studio 11 ซึ่งถ้าอยู่สายนี้ก็คงคุ้นมืออยู่แล้ว
ช่วงนี้ Metro/WinRT ยังเพิ่งเริ่มต้นเท่านั้น แต่ดูจากทิศทางของไมโครซอฟต์แล้ว ก็คงอยู่กับมันยาวทีเดียว
ข้อมูลจาก Tim Anderson?s ITWriting, ReadWriteWeb, http://www.blognone.com/
เอกสารเพิ่มเติมของไมโครซอฟต์
- What are Metro style apps? แนะนำแนวคิด
- Getting started with Windows Metro style app development เริ่มต้นพัฒนา APPs แบบ Metro
- Metro style app reference คู่มืออ้างอิงของ ?Metro
- The Windows Runtime รู้จักตัวเทคโนโลยี ?WinRT