รีวิว Windows Developer Preview– สำหรับ Developer

Posted 18/09/2011 04:06 by nantcom

image

หลังจากเป็นข่าวอึกทึกครึกโครม (โดยเฉพาะใน Facebook Group ที่ผมอยู่) ผมก็จัดแจงหาเวลาลง Windows 8 Developer Preview เล่นกับเขาบ้าง เพื่อจะแอบด้อมๆ มองๆ ว่าถ้าเกิดอยากจะลองพัฒนาแอบบแบบ “Metro Style” บน Windows 8 จะมีเครื่องไม้เครื่องมืออะไรใหม่ๆ ให้เล่นบ้าง และจากการใช้งานมันอยู่ราวๆ 4-5 ชั่วโมง ก็เลยเกิดเป็นบล็อกนี้ขึ้นครับ

คุณจะเจออะไรใน Build นี้?

แน่นอนว่าขาดไม่ได้ กับ Visual Studio vNext ซึ่งตอนนี้ถูกเรียกว่า 11 และ Blend 5 Preview

image

สำหรับ Visual Studio 11 นั้น ก็ติดตั้งเพื่อให้สร้าง Metro Style App โดยเฉพาะครับ โดยมี Project Template เป็นตัวอย่างเช่นเคย เหมือนกับ Windows Phone

image

โดย Sample ที่ให้มา ก็มี 2 แบบ คือ Grid

image

กับ Split

image

และเรื่องน่ายินดีก็คือสิ่งที่คุ้นเคยกันอย่าง VisualStateManager, Gridm List, SampleData ก็ยังอยู่เหมือนเคย และหลักการทำงานโดยทั่วไปก็เหมือนกับการเขียน App บน Windows Phone นั่นเอง

ถัดมาก็จะเป็น Blend 5 Preview ซึ่งคุณไม่สามารถใช้มันในการเปิด Project XAML ของ Metro Style App ได้ ซะอย่างนั้น ซึ่งแต่ก่อน Blend เป็น Tool หลักที่ใช้ในการสร้าง UI แบบ Interactive (เขาเรียกเจ้านี่ว่า Interaction Designer) บนเทคโนโลยี XAML โดยเฉพาะ ซึ่ง App ที่สามารถใช้ Blend ในการพัฒนาได้ก็คือ App ที่ใช้ Silverlight หรือ Windows Presentation Foundation (WPF) นั่นเอง แต่กลับไม่มีให้เห็นใน Developer Preview นี้

image

สำหรับ Project ที่เปิดได้ใน Blend นั้นจะเป็นเฉพาะแบบ JavaScript เท่านั้น โดยมีชื่อเรียกแปลกๆ ว่า “WinWebApp” จากการพยายามเดาสุ่ม (มั่ว) ไปเรื่อยๆ ผมเองก็ยังไม่ Get ว่าเจ้า Blend นี้จะช่วยให้เขียน Metro Style App ให้ง่ายขึ้นได้อย่างไร เนื่องจาก Code ก็เขียนในลักษณะแบบ Functional อย่างของ jQuery แล้วก็มีการเรียกใช้ Library แปลกๆ มากมาย

image

image

เขียนแบบนี้ ต่อให้ Tool เทพแค่ไหนก็ไม่น่าจะช่วยอะไรได้ ยิ้ม (List Event Handler ทั้งหมดยังยากเลยครับ)

image

โดยสรุปแล้ว สำหรับในด้าน Developer Tools ก็เป็น Preview จริงๆ จะว่าไปงาน BUILD นี้ เหมือนจะเป็นงานแจก Tablet Samsung และสร้าง Awareness ซะมากกว่านะเนี่ย ยังไม่รู้เลยว่าจะ Build อะไร ยิ้ม

อะไรใช้ได้บ้าง?

สำหรับ Build นี้ยังขาด App เด็ดๆ ที่โชว์ในงาน BUILD อีกหลายตัว แต่ว่า Feature ที่ใช้ได้ตัวหนึ่งที่เป็นที่กล่าวถึงกันมาก ก็คือ “Hybrid Boot” ที่ทำให้คุณสามารถเปิด เครื่องใช้งานจาก Cold Boot ได้ในเวลาไม่ถึง 10 วินาที (แน่นอนว่าถ้าเป็น SSD ถึงจะได้ความเร็วเท่านี้)

image

นอกจากนั้น App ต่างๆ บน Windows ที่เราคุ้นเคยก็สามารถติดตั้งได้ตามปกติ ในเรื่องของ Compatibility นั้นคงต้องยกให้ Windows อยู่แล้ว ไม่ได้ Fanboy นะครับ ยิ้ม แต่ว่า App ที่มันใช้กันไม่ได้ บน Vista/7 ส่วนใหญ่จะเป็น เกมที่ต้อง C*ack เพราะว่าติด UAC กับ Buffer Underrun Protection หรือว่า App ตัวนั้น มันออกแบบมาว่าต้องลง Kernel Driver ของมันเอง หรือใช้ Kernel Hook ซึ่งมันก็คงออกแบบมาเพื่อ Windows เวอร์ชั่นใดเวอร์ชั่นหนึ่งอยู่แล้ว ผมยังนึกไม่ออกเลยว่าแอปฯ ทั่วๆ ไปมันจะไม่ Compat ได้อย่างไร

image

Aero Glass ใน VM!!!?

ส่วนหนึ่งที่ผมอึ้งไปเลย ก็คือ Aero Glass และ Desktop Windows Manager สามารถใช้ใน VirtualBox ได้เลย โดยไม่ต้องลง Virtual Box Guest Additions เพราะว่ามันลงไม่ได้เนื่องจากมันจะลงบน 7 เท่านั้น (ซึ่งตัวมันจะติดตั้ง Driver VGA ลงไป) และผมก็ไม่ได้เลือกให้มันใช้ 3D Acceleration ด้วย! นั่นก็หมายความว่า Windows สามารถใช้ CPU เพื่อจำลองการทำงาน Pixel Shader ของ GPU ได้น่ะสิ???

image

และข้อมูลบน WikiPedia ก็ยืนยันตามนั้นครับ ว่า Windows จะใช้ Software Rendering ให้เอง

image

อะไรใช้ได้ไม่ได้บ้าง?

อ้าว เมื่อกี้เพิ่งบอกไปหยกๆ เรื่อง Compat แต่ปรากฏว่าตัวนึงที่ผมเจอว่าใช้ไม่ได้ ก็ดันเป็นตัวสำคัญสำหรับผมซะด้วย คือ Windows Phone Emulator ครับ เนื่องจากว่า Windows 8 เปลี่ยนระบบ Graphic ใหม่เป็น WDDM 1.2 เจ้า Windows Phone Emulator ซึ่งพึ่งพาระบบ GPU Virtualization ของ Windows 7 อย่างเต็มที่ ก็รันไม่ได้อย่างแน่นอน แถมยังไม่ยอมรันแบบ Software อีกแน่ะ (ปกติแล้ว ถ้าลงในเครื่องที่การ์ดจอไม่รับ DirectX10 ตัว Emulator จะรันในแบบ Software ได้)

image

เกี่ยวกับ Metro Style Apps

image

สำหรับพระเอกของเราในงานนี้ คงจะหนีไม่พ้น “Metro Style Apps” หรือจริงๆ ก็คือ แอปฯ แบบเต็มจอ ที่เจาะกลุ่มคนใช้ Tablet โดยเฉพาะ หรือแอปฯ ประเภท “Life Style” ก็ว่าได้ โดยเป็นแอปฯ ที่เน้นการใช้งานแบบ “ชิวๆ” หน้าตาสวยๆ เป็นหลัก ซึ่งนับว่าเป็นสิ่งที่เราไม่ค่อยเจอนักในแอปฯ สำหรับ Desktop OS ถ้านึกภาพไม่ออกว่า ตอนนี้มีแอปฯ อะไรบน Windows 7 ที่จัดเป็น “Metro" Style” ก็คงต้องดูที่ Zune Client, Windows Media Center และก็พวกเกมต่างๆ นั่นเอง สังเกตได้ว่าแอปฯ อย่าง Zune หรือ MCE นี้ จะแตกต่างจาก แอปฯ ทั่วไปที่เราใช้งานบน Windows (หรือแม้แต่บน Mac OSX) อย่างสิ้นเชิง ลองดูตัวอย่าง Zune และ iTunes…

image

image

เทียบกับ เอ่อ…

image

ซึ่งแอปพลิเคชั่นเหล่านี้แน่นอนว่าคงจะใช้ Windows Form อายุราว 25 ปี พัฒนาไม่ได้อย่างแน่นอน อย่างโปรแกรมด้านบน ที่ถึงแม้จะมีการใส่ Skin เข้ามา แต่ว่าก็ยังหนีไม่พ้นขอจำกัดของ Windows Form อยู่ดี เราจึงจำเป็นจะต้องมี UI Framework ตัวใหม่ที่ยืดหยุ่นพอที่จะให้เราทำอะไรได้มากขึ้น จึงเป็นจุดกำเนิดของ WPF และ Silverlight ขึ้น

image

ด้านบน: Metrotwit App Twitter สุดงามที่เขียนด้วย เป็น App WPF ที่ผมรู้จัก…นอกเหนือจาก Zune และ App ที่ผมรับเขียนให้ลูกค้า แลบลิ้น

ตัว WPF นั่น อาจจะเรียกได้ว่าเป็น Platform ที่ “ไม่เกิด” ซะก็คงไม่ผิดนัก เพราะไม่อย่างนั้นตอนนี้เราคงเห็นแอปฯ สวยๆ ที่ใช้ WPF กันเกลื่อนไปหมดแล้ว เศร้า ทั้งที่มันมีความสามารถสูงมาก และลดเวลาในการพัฒนาได้อย่างเหลือเชื่อ โดยความเห็นส่วนตัวแล้ว WPF เหมือนมันก็จะถูกทิ้งร้างอย่างเป็นทางการมานานแล้ว อย่างเช่น WPF Toolkit http://wpf.codeplex.com/ ตัวล่าสุด ก็ออกมาได้จะสองปีแล้ว เป็นต้น ในขณะที่ Silverlight Toolkit ยังมีการพัฒนาอยู่เรื่อยๆ และ Visual Studio LightSwitch ก็ใช้ Silverlight ในการสร้าง App ที่รันบน Windows ทั้งที่ควรจะเป็น WPF (แต่ทั้งคู่เป็นเทคโนโลยีที่ทำงานด้วย XAML เหมือนกัน)

ในส่วนของ Metro Style App นั้น Microsoft เสนอทางเลือกของ UI Framework ให้เราสองตัว ก็คือ XAML และ HTML5 ครับ โดยใครที่เคยเขียน .NET ก็ใช้ XAML ไป ใครเคยเขียนเว็บ คล่อง HTML/CSS อยู่แล้ว ก็ใช้ HTML สร้าง App ได้ด้วย

image

HTML5 ในแบบ “Metro Style Apps”

แนวคิดในการใช้ HTML สร้าง Application นั้น ก็ไม่ใช่เรื่องใหม่ เพราะว่าถ้าคุณเคยใช้ Windows XP มาก่อน คุณจะต้องได้เคยสัมผัสกับ App ที่สร้างด้วย HTML มาแล้วเป็นที่เรียบร้อย นั่นก็คือส่วน Out-of-Box Experience ตอนสร้าง User และส่วน Activation ของ Windows XP นั้นก็เป็น App ที่สร้างจาก HTML เรียกว่า HTML Application ครับ ซึ่งปัจจุบันเจ้า HTA นี้เราก็ยังสามารถเขียนขึ้นมาได้อยู่ ลองดูจากลิงค์นี้ได้ครับ http://msdn.microsoft.com/en-us/library/ms536496(v=VS.85).aspx (แม้แต่ผมเองก็เคยพยายามเอาแนวคิดนี้ไปใช้บน App ของ PocketPC ด้วยเหมือนกัน โดยการใช้ WebBrowser Control วางลงไปบน Form และให้ App ที่ผมเขียน แสดงผลด้วย HTML และติดต่อกันผ่าน URL ตอน Event Navigating ในเรื่อง Interaction ก็ใช้ JavaScript ในการทำ)

สำหรับเหล้าก่าในขวดใหม่ครั้งนี้ที่ Microsoft เสนอให้เรานำไปใช้ในการพัฒนา “Metro Style Apps” นั้น ดูเผินๆ อาจจะเหมือนกับ HTML5 ธรรมดาๆ เหมือนที่เราเจอใน HTML Application

image

แต่ว่าที่ผมเป็นห่วงคือ Extensions ทั้งหลายที่จะทำให้ HTML5 ออกมาแล้วหน้าตาเหมือนกับ “Metro Style Application” เพื่อรันบน Windows 8 นี่ต่างหาก

image

จากที่ผมลองอ่านดูคร่าวๆ ดูเหมือนว่าแม้คุณจะเป็น Web Developer ที่ช่ำชองมาก่อน แต่ก็ไม่ได้หมายความว่าคุณจะสามารถสร้าง Metro Style App ด้วย HTML แล้วออกมาหน้าตา Metro เหมือนที่มันควรจะเป็นได้ในชั่วข้ามคืน เป็นไปได้ไหมว่า ด้วยพลังงานในการไต่ Learning Curve ในการสร้าง “Metro Style Application” จาก HTML5 (เหรอ?) และ JavaScript นั้น สู้เอาไปใช้ในการศึกษา XAML และ C# ที่มีประวัติศาสตร์ยาวนานกว่า มี Articles และ Tutorial มากมายให้ศึกษาอยู่แล้ว? สำหรับผมในฐานะที่ก็เขียนเว็บด้วย ทำ Windows Phone/Windows App ด้วย เห็นแล้วยังรู้สึกสยองเลยทีเดียว

Metro Style Apps ด้วย XAML

สำหรับทางเลือกนี้ คงจะน่าสนใจไม่น้อยสำหรับคนที่ใช้ Silverlight/WPF อยู่แล้ว แต่ Microsoft ก็ยังอุตส่าห์จะทำให้มันยากขึ้นไปอีกหน่อย โดยการเปลี่ยนเนมเสปซบ้าง เปลี่ยนชื่อคลาสบ้าง และเลือกที่จะไม่ใช้ Silverlight ในการทำ Metro Style Apps ซะเลยให้มันรู้แล้วรู้รอด โดยสรุปแล้ว สิ่งที่เปลี่ยนหลักๆ (อ้างอิงจาก MSDN) ก็คือ

  • คลาส UI ย้ายจาก System.Windows ไปอยู่ Windows.UI.Xaml (เพื่ออะไร?)
  • IsolatedStorage เปลี่ยนเป็น Windows.Storage.ApplicationData.Current.LocalFolder และ Windows.Storage.ApplicationData.Current.LocalSettings
  • Thread หายไป เหลือแต่ ThreadPool ให้ใช้ และไปถึงขั้นแนะนำให้ใช้ Parallel Framework กันเลย (อันนี้เข้าใจได้ และเป็นเรื่องดี เพราะเราควรจะมองที่ระดับ Task มากกว่า Thread)

แต่สิ่งที่ทำให้ผมงงงวยเป็นอย่างมากก็คือการที่ Microsoft เลือกที่จะไม่ใช้ Silverlight ในการทำ Metro Style Apps ไปเลย ทั้งทีเครื่องมือ นักพัฒนา และ Community ก็พร้อมสรรพอยู่แล้ว แต่ก็เป็นไปได้ที่อาจจะมีจุดแตกต่างกันเล็กน้อยมาก และเผลอๆ มันก็เป็น Runtime เดียวกันกับ Silverlight นั่นแหละ แลบลิ้น

แต่ก็น่าเสียดายที่ตอนนี้ Microsoft ยังไม่ได้ปล่อย Tools สำหรับ XAML ออกมาให้ใช้ จึงไม่สามารถตอบอะไรได้มากไปกว่านี้

ร่วมให้กำลังใจนักเขียน

อ่านแล้วชอบใจ อยากให้กำลังใจกับผู้แต่งบทความนี้ ขอเชิญร่วมให้กำลังใจผ่าน Paysbuy/Paypal นะครับ ปลอดภัยเพราะทำงานผ่าน SSL และไม่มีค่าใช้จ่ายเพิ่มเติมครับ เว็บเราให้นักเขียน 100% ครับ

Comment ระบบเก่า

 

varavut said:

แล้ว XNA ของผมล่ะ ไม่มีอะไรแทน ต้องไปเขียน C/C++ + DirectX = ="

September 18, 2011 9:06 AM
 

pandula said:

Silverlight จะเป็นอย่างไรต่อไป ><"

September 18, 2011 10:45 AM
(required)  
(optional)
(required)  
Add

DisQUS Comment (ยังเอ๋อๆ อยู่)

blog comments powered by Disqus