การเปลี่ยนแปลงที่สำคัญที่สุดของ Windows Phone 8 ในระดับฐานรากมี 2 เรื่อง อย่างแรกคือใช้แกนร่วมกับ Windows 8 และอย่างที่สองคือเปลี่ยนแพลตฟอร์มการพัฒนาจาก .NET CF/Silverlight มาเป็น .NET รุ่นใหญ่
เมื่อคืนนี้นอกจากไมโครซอฟท์ได้เปิดตัว WP8 SDK ก็ยังเผยรายละเอียดของ .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 ของ .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 ฝั่งของ Windows Phone 8 ก็มี Windows Phone Runtime (ไม่มีตัวย่อ) เช่นกัน
- แอพสามารถเข้าถึง native API ของ WP8 ได้ผ่าน Windows Phone Runtime
- ไมโครซอฟท์มีเครื่องมือ Portable Class Libraries สำหรับการเขียนแอพข้ามแพลตฟอร์มระหว่าง WinRT กับ Windows Phone Runtime ให้ด้วย
ที่มา - .NET Framework Blog
นอกจากนี้ ไมโครซอฟท์ยังปรับ Blend (หรือชื่อเดิมคือ Expression Blend) เครื่องมือออกแบบ UI ให้ทำงานร่วมกับ Visual Studio 2012 และ WP8 SDK ด้วย (Blend อยู่ในชุด WP8 SDK อยู่แล้ว)
รายละเอียดอ่านจาก Blend Insider
<iframe width="640" height="360" src="http://www.youtube.com/embed/QyEOsvsfjfw?feature=player_embedded" frameborder="0" allowfullscreen></iframe>
on
จริง ๆ
mr_tawan Wed, 31/10/2012 - 11:31
จริง ๆ ผมไม่เข้าใจเลยนะว่าจะแยก WinRT กับ WinPRT ทำไม ... คือ เทียบ HW กันแล้วบน Tablet (Windows RT) กับ มือถือ (Windows Phone 8) มันแทบจะเหมือนกัน ต่างกันแค่ว่าบนมือถือมีส่วนของโทรศัพท์เพิ่มขึ้นมา ซึ่งก็แค่เพิ่ม Telephony API เข้าไปก็จบแล้ว
คิดว่าเป็นเรื่องการเมืองภายในระหว่างทีมมากกว่า
ไม่แน่ใจว่าเพราะมีอยู่ช่วงหนึ
leonoinoi Wed, 31/10/2012 - 11:52
In reply to จริง ๆ by mr_tawan
ไม่แน่ใจว่าเพราะมีอยู่ช่วงหนึ่งที่ เขาพยายาม optimize WP ให้ใช้งาน RAM ต่ำกว่า 512 ได้หรือเปล่า จึงต้องทำแยก version (ซึ่งผมไม่เห็นด้วยแต่แรกอยู่แล้ว เพราะอย่างที่เห็น HW มันไปเร็วมากจนเรียกว่าตอนนี้ อยากทำไรก็ทำ)
+1 รวมไปเลยดีกว่า
Be1con Wed, 31/10/2012 - 14:01
In reply to จริง ๆ by mr_tawan
+1 รวมไปเลยดีกว่า หรือว่าเดี๋ยวมันจะรวมใน WP9
C# vb c++ หรือ JavaScript
cmmadnat Wed, 31/10/2012 - 11:31
C# vb c++ หรือ JavaScript กันเนี่ย
WinRT บังคับ JavaScript
cmmadnat Wed, 31/10/2012 - 11:36
WinRT บังคับ JavaScript แต่อันนี้ .net เอาไงเนี่ย
ไม่บังคับครับ
Manta Wed, 31/10/2012 - 12:52
In reply to WinRT บังคับ JavaScript by cmmadnat
ไม่บังคับครับ คุณจะกลับไปเขียน C#, VB ก็ได้ครับ เขามีตัวเลือกให้คุณ 3 ทาง (รวม HTML+JS ด้วย)
อ่านแล้วรู้สึกว้าวๆไงไม่รู้
nonth Wed, 31/10/2012 - 11:39
อ่านแล้วรู้สึกว้าวๆไงไม่รู้ - -a
ก็ Apple กับ Google
rattananen Wed, 31/10/2012 - 11:47
In reply to อ่านแล้วรู้สึกว้าวๆไงไม่รู้ by nonth
ก็ Apple กับ Google ไม่ค่อยจะนำเสนอข้อมูลเชิงสถาปัตกรรมของระบบตัวเองหนิครับ เห็นบอกแต่ feature ซะส่วนมาก
Apple ผมไม่รู้นะ แต่ Google
newstar Wed, 31/10/2012 - 12:34
In reply to ก็ Apple กับ Google by rattananen
Apple ผมไม่รู้นะ
แต่ Google ผมว่านี่เปิดสุด ๆ แล้วมั๊งครับ
ผมหมายถึงข้อมูลเชิงสถาปัตกรรม
rattananen Wed, 31/10/2012 - 13:30
In reply to Apple ผมไม่รู้นะ แต่ Google by newstar
ผมหมายถึงข้อมูลเชิงสถาปัตกรรมของระบบครับ
ไม่ใช่ความเปิดกว้างของ source code ของระบบ
ข้อมูลเชิงสถาปัตกรรมมันมีกันทุกระบบครับ เพียงแต่ Apple กับ Google ไม่ค่อยนำมาโชว์
ผมว่าแอนดรอยด์มันก็เปิดหมดนะท
newstar Wed, 31/10/2012 - 15:35
In reply to ผมหมายถึงข้อมูลเชิงสถาปัตกรรม by rattananen
ผมว่าแอนดรอยด์มันก็เปิดหมดนะทั้งสถาปัตยกรรม คุณอยากรู้รายละเอียดอะไรก็ได้นี่ครับ แค่เข้าไปเว็บแอนดรอยด์มันก็บอกหมดนี่นา
เขาไม่ได้เอามาโปรโมทหรือเปล่า
TeamKiller Wed, 31/10/2012 - 15:47
In reply to ผมว่าแอนดรอยด์มันก็เปิดหมดนะท by newstar
เขาไม่ได้เอามาโปรโมทหรือเปล่าครับ
ใช่ครับ
rattananen Wed, 31/10/2012 - 15:57
In reply to เขาไม่ได้เอามาโปรโมทหรือเปล่า by TeamKiller
ใช่ครับ
เขาโปรโมทครับ
PaPaSEK Thu, 01/11/2012 - 09:39
In reply to เขาไม่ได้เอามาโปรโมทหรือเปล่า by TeamKiller
เขาโปรโมทครับ ข่าวบล็อกนันเองผมก็จำได้ว่าเคยมี
เพียงแต่ข่าวมันน้อย ... บางทีคนไม่สนใจอ่านก็ไปโทษการโปรโมทอีก
-*- ทำไมเห็นโลโก้แล้วนึกถึง
Ginosty Wed, 31/10/2012 - 11:48
-*- ทำไมเห็นโลโก้แล้วนึกถึง Net bank
ผมเห็นโลโก้ Net Bank
Manta Wed, 31/10/2012 - 12:53
In reply to -*- ทำไมเห็นโลโก้แล้วนึกถึง by Ginosty
ผมเห็นโลโก้ Net Bank แล้วนึกถึง .NET Fx แทนนะ จริง ๆ เพราะโลโก้ .NET Fx มันเกิดก่อน
+1 อะไรเกิดก่อนผมคงไม่รู้
langisser Wed, 31/10/2012 - 21:46
In reply to ผมเห็นโลโก้ Net Bank by Manta
+1 อะไรเกิดก่อนผมคงไม่รู้ แต่เห็นโลโก้ Net Bank แล้วนึกถึง .NET
อ้าว ไหนก่อนหน้านี่บอก
EngineerRiddick Wed, 31/10/2012 - 12:36
อ้าว ไหนก่อนหน้านี่บอก Silverlight ตายไง โผล่มาร่างใหม่หรอ?
ช่วงนั้นทับถมเพื่อน Silverlight สุดๆ (ผมขาAdobeอ่ะ=_=)
มันตายไปจากใจผมตั้งแต่ได้เข้า
PaPaSEK Thu, 01/11/2012 - 09:39
In reply to อ้าว ไหนก่อนหน้านี่บอก by EngineerRiddick
มันตายไปจากใจผมตั้งแต่ได้เข้าเว็บที่ใช้ Silverlight ครั้งแรกแล้วครับ
ตกลงถ้าต้องการเขียนแอพลงทั้ง
giogio Wed, 31/10/2012 - 17:27
ตกลงถ้าต้องการเขียนแอพลงทั้ง windows phone 8 / windows 8 RT / windows 8 Pro นี่ ต้องเขียนเป้น 3 เวอร์ชั่นเลยหรือ หรือสามารถเขียนครั้งเดียวแต่รันได้ทั้ง 3 platforms ?
code behind
Ford AntiTrust Wed, 31/10/2012 - 18:01
In reply to ตกลงถ้าต้องการเขียนแอพลงทั้ง by giogio
code behind น่าจะชุดเดียวกันได้นะ ส่วนหลักๆ ที่น่าจะแตกต่างกันน่าจะเป็นเฉพาะส่วน view มั้ง เพราะจากที่เคยเขียนมา code behind reuse จาก .Net Desktop App ได้เลย
แอพที่เราส่งขึ้น Windows
inwwin Wed, 31/10/2012 - 20:43
แก้ครับ ผมว่า มันต้องคอมไพล์เป็น IL (Intermediate Language) สิครับ ไม่ใช่ CLR (Common Language Runtime)
จริงด้วยครับ
mk Thu, 01/11/2012 - 10:36
In reply to แอพที่เราส่งขึ้น Windows by inwwin
จริงด้วยครับ ผมจำสับสนกันระหว่าง CIL/CLR