การเปลี่ยนแปลงที่สำคัญที่สุดของ Windows Phone 8 ในระดับฐานรากมี 2 เรื่อง อย่างแรกคือใช้แกนร่วมกับ Windows 8 และอย่างที่สองคือเปลี่ยนแพลตฟอร์มการพัฒนาจาก .NET CF/Silverlight มาเป็น .NET รุ่นใหญ่
เมื่อคืนนี้นอกจากไมโครซอฟท์ได้เปิดตัว [WP8 SDK](http://www.blognone.com/node/37615) ก็ยังเผยรายละเอียดของ __.NET Framework for Windows Phone 8__ ที่เปลี่ยนแพลตฟอร์มการพัฒนาแอพบน WP8 ด้วย
ประเด็นที่น่าสนใจมีดังนี้
### CoreCLR
- แพลตฟอร์มของ WP8 จะทำงานบน __CoreCLR__ ซึ่งเป็นแกนหลักของ common language runtime (CLR) ที่ใช้ใน .NET รุ่นปกติ - อธิบายง่ายๆ คือ CoreCLR เป็น .NET รุ่นปกติที่ลดฟีเจอร์ลงมาบางอย่าง แต่มีฟีเจอร์เยอะกว่า .NET CF เดิม - CoreCLR จะทำงานอยู่บน Windows Phone OS core อีกชั้นหนึ่ง สองส่วนนี้คือแกนหลักของ WP8 - CoreCLR ใช้พลังของซีพียูมัลติคอร์ได้อย่างเต็มที่ ผลลัพธ์คือประสิทธิภาพดีขึ้น เวลาที่ใช้เรียกแอพ (startup time) ดีขึ้นเฉลี่ย 50% และประหยัดพลังงานมากขึ้น - CoreCLR engine ใช้ garbage collector ตัวเดียวกับ .NET 4.5
### Async
- ไมโครซอฟท์นำฟีเจอร์ [async programming model](http://msdn.microsoft.com/en-us/library/vstudio/hh191443.aspx) ของ .NET 4.5 มาใส่ใน .NET WP ด้วย ช่วยให้การทำงานแบบขนานได้ดีกว่าเดิม - async method เกือบทุกตัวใน .NET รุ่นเต็มจะอยู่ใน .NET WP
### Compiler in the Cloud
- แอพที่เราส่งขึ้น Windows Store จะคอมไพล์เป็น CIL ตามปกติ - จากนั้นไมโครซอฟท์จะมี compiler in the cloud ทำงานบนกลุ่มเมฆ แปลงโค้ด CIL ให้เป็น ARM native ให้ก่อน (pre-compiled) - ผู้ใช้ดาวน์โหลดแอพจาก Windows Store ที่แปลงเป็น ARM native แล้ว ผลคือประสิทธิภาพของแอพดีขึ้น และประหยัดพลัง-แบตของเครื่องมือถือ เพราะไม่ต้องมาคอมไพล์เองอีกรอบ - การคอมไพล์บนกลุ่มเมฆช่วยให้ไมโครซอฟท์สามารถใช้เทคนิคการ optimization ขั้นสูงได้ โดยนักพัฒนาไม่ต้องกังวลเรื่องสมรรถนะของเครื่องตัวเองที่ใช้คอมไพล์อีก
### Windows Phone Runtime
- Windows 8 มี [WinRT หรือ Windows Runtime](http://www.blognone.com/topics/winrt) ฝั่งของ Windows Phone 8 ก็มี __Windows Phone Runtime__ (ไม่มีตัวย่อ) เช่นกัน - แอพสามารถเข้าถึง native API ของ WP8 ได้ผ่าน Windows Phone Runtime - ไมโครซอฟท์มีเครื่องมือ Portable Class Libraries สำหรับการเขียนแอพข้ามแพลตฟอร์มระหว่าง WinRT กับ Windows Phone Runtime ให้ด้วย
ที่มา - [.NET Framework Blog](http://blogs.msdn.com/b/dotnet/archive/2012/10/30/announcing-the-release-of-the-net-framework-for-windows-phone-8.aspx)
นอกจากนี้ ไมโครซอฟท์ยังปรับ Blend (หรือชื่อเดิมคือ Expression Blend) เครื่องมือออกแบบ UI ให้ทำงานร่วมกับ Visual Studio 2012 และ WP8 SDK ด้วย (Blend อยู่ในชุด WP8 SDK อยู่แล้ว)
รายละเอียดอ่านจาก [Blend Insider](http://blendinsider.com/news/announcing-windows-phone-8-sdk-design-great-apps-with-blend-2012-10-30/)
Comments
จริง ๆ ผมไม่เข้าใจเลยนะว่าจะแยก WinRT กับ WinPRT ทำไม ... คือ เทียบ HW กันแล้วบน Tablet (Windows RT) กับ มือถือ (Windows Phone 8) มันแทบจะเหมือนกัน ต่างกันแค่ว่าบนมือถือมีส่วนของโทรศัพท์เพิ่มขึ้นมา ซึ่งก็แค่เพิ่ม Telephony API เข้าไปก็จบแล้ว
คิดว่าเป็นเรื่องการเมืองภายในระหว่างทีมมากกว่า
ไม่แน่ใจว่าเพราะมีอยู่ช่วงหนึ่งที่ เขาพยายาม optimize WP ให้ใช้งาน RAM ต่ำกว่า 512 ได้หรือเปล่า จึงต้องทำแยก version (ซึ่งผมไม่เห็นด้วยแต่แรกอยู่แล้ว เพราะอย่างที่เห็น HW มันไปเร็วมากจนเรียกว่าตอนนี้ อยากทำไรก็ทำ)
+1 รวมไปเลยดีกว่า หรือว่าเดี๋ยวมันจะรวมใน WP9
Coder | Designer | Thinker | Blogger
C# vb c++ หรือ JavaScript กันเนี่ย
WinRT บังคับ JavaScript แต่อันนี้ .net เอาไงเนี่ย
ไม่บังคับครับ คุณจะกลับไปเขียน C#, VB ก็ได้ครับ เขามีตัวเลือกให้คุณ 3 ทาง (รวม HTML+JS ด้วย)
อ่านแล้วรู้สึกว้าวๆไงไม่รู้ - -a
ก็ Apple กับ Google ไม่ค่อยจะนำเสนอข้อมูลเชิงสถาปัตกรรมของระบบตัวเองหนิครับ เห็นบอกแต่ feature ซะส่วนมาก
Apple ผมไม่รู้นะ
แต่ Google ผมว่านี่เปิดสุด ๆ แล้วมั๊งครับ
ผมหมายถึงข้อมูลเชิงสถาปัตกรรมของระบบครับ
ไม่ใช่ความเปิดกว้างของ source code ของระบบ
ข้อมูลเชิงสถาปัตกรรมมันมีกันทุกระบบครับ เพียงแต่ Apple กับ Google ไม่ค่อยนำมาโชว์
ผมว่าแอนดรอยด์มันก็เปิดหมดนะทั้งสถาปัตยกรรม คุณอยากรู้รายละเอียดอะไรก็ได้นี่ครับ แค่เข้าไปเว็บแอนดรอยด์มันก็บอกหมดนี่นา
เขาไม่ได้เอามาโปรโมทหรือเปล่าครับ
ใช่ครับ
เขาโปรโมทครับ ข่าวบล็อกนันเองผมก็จำได้ว่าเคยมี
เพียงแต่ข่าวมันน้อย ... บางทีคนไม่สนใจอ่านก็ไปโทษการโปรโมทอีก
-*- ทำไมเห็นโลโก้แล้วนึกถึง Net bank
ผมเห็นโลโก้ Net Bank แล้วนึกถึง .NET Fx แทนนะ จริง ๆ เพราะโลโก้ .NET Fx มันเกิดก่อน
+1 อะไรเกิดก่อนผมคงไม่รู้ แต่เห็นโลโก้ Net Bank แล้วนึกถึง .NET
อ้าว ไหนก่อนหน้านี่บอก Silverlight ตายไง โผล่มาร่างใหม่หรอ?
ช่วงนั้นทับถมเพื่อน Silverlight สุดๆ (ผมขาAdobeอ่ะ=_=)
มันตายไปจากใจผมตั้งแต่ได้เข้าเว็บที่ใช้ Silverlight ครั้งแรกแล้วครับ
ตกลงถ้าต้องการเขียนแอพลงทั้ง windows phone 8 / windows 8 RT / windows 8 Pro นี่ ต้องเขียนเป้น 3 เวอร์ชั่นเลยหรือ หรือสามารถเขียนครั้งเดียวแต่รันได้ทั้ง 3 platforms ?
code behind น่าจะชุดเดียวกันได้นะ ส่วนหลักๆ ที่น่าจะแตกต่างกันน่าจะเป็นเฉพาะส่วน view มั้ง เพราะจากที่เคยเขียนมา code behind reuse จาก .Net Desktop App ได้เลย
แก้ครับ ผมว่า มันต้องคอมไพล์เป็น IL (Intermediate Language) สิครับ ไม่ใช่ CLR (Common Language Runtime)
จริงด้วยครับ ผมจำสับสนกันระหว่าง CIL/CLR