ไมโครซอฟท์เปลี่ยนโลโก้ .NET พร้อมประกาศวิสัยทัศน์ใหม่ของ .NET ยุคหน้า

by mk
5 April 2014 - 01:34

ที่งาน BUILD 2014 ไมโครซอฟท์ประกาศแผนการใหม่ๆ ของเทคโนโลยีสายการพัฒนาโปรแกรมหลายอย่าง ในฝั่งของ .NET นอกจากการก่อตั้ง .NET Foundation ซึ่งเป็น "องค์กร" แล้ว ไมโครซอฟท์ยังเปลี่ยนโลโก้ .NET มาเป็นแนว Metro และประกาศทิศทาง/วิสัยทัศน์/ฟีเจอร์ใหม่ของ .NET ด้วย

จากภาพจะเห็นว่าตัวเทคโนโลยี .NET ถูกแบ่งออกเป็น 2 ส่วนคือตัวแกนหลัก Core .NET และการขยาย .NET ไปยังอุปกรณ์ (devices) และบริการ (services) ให้มากกว่าเดิม ผ่านกระบวนการพัฒนาที่เปิดกว้างมากขึ้นโดยใช้ .NET Foundation เป็นองค์กรกลาง

1) Core .NET

แกนของ .NET สามารถแบ่งออกได้เป็นอีก 2 ส่วนใหญ่ๆ คือ รันไทม์ และคอมไพเลอร์

.NET Compiler Platform (Roslyn)

.NET Compiler Platform คือคอมไพเลอร์ภาษา VB และ C# รุ่นหน้า รวมถึง API ที่จะให้ IDE เรียกใช้งานคอมไพเลอร์ในลักษณะ compiler-as-a-service ด้วย (อธิบายง่ายๆ คือ IDE จะมองคอมไพเลอร์เป็นบริการสำหรับคอมไพล์โปรแกรม)

ไมโครซอฟท์เคยโชว์ .NET Compiler Platform มาแล้วตั้งแต่ปี 2012 ในชื่อโค้ดเนมว่า Roslyn มาถึงวันนี้มันได้ชื่อจริง และออกรุ่นพรีวิวมาให้ทดสอบกับ Visual Studio 2013 แล้ว รุ่นสมบูรณ์จะถูกผนวกมาเป็นส่วนหนึ่งของ .NET และ Visual Studio รุ่นหน้า

ไมโครซอฟท์ยังประกาศเปิดซอร์ส .NET Compiler Platform (สัญญาอนุญาต Apache 2.0) และพัฒนาภายใต้ .NET Foundation ด้วย รายละเอียดดูได้ที่ Codeplex

นอกจากนี้ .NET Compiler Platform ยังรองรับฟีเจอร์ใหม่ๆ ในภาษา C# และ VB (เป็นการเปลี่ยนแปลงที่ตัวภาษา) เช่น primary constructors, auto-property initializers ด้วย

.NET JIT Compiler (RyuJIT)

ในส่วนของรันไทม์ (การนำซอฟต์แวร์ที่คอมไพล์แล้วไปรัน) ไมโครซอฟท์ก็ออก .NET JIT compiler ตัวใหม่ที่เคยใช้โค้ดเนมว่า RyuJIT รุ่นพรีวิว โดย JIT ตัวใหม่จะช่วยให้การรันแอพ .NET มีประสิทธิภาพดีขึ้นทั้งตอนโหลดและตอนทำงาน

RyuJIT รุ่นล่าสุดยังรองรับชุดคำสั่งแบบ SIMD (Single Instruction, Multiple Data) ที่มากับซีพียูรุ่นใหม่ๆ (เช่น SSE2, AVX) ที่ช่วยเร่งประสิทธิภาพการประมวลผลแบบเวกเตอร์มากขึ้นด้วย

ตอนนี้ RyuJIT ยังมีสถานะเป็นพรีวิวรุ่นที่สาม

2) .NET in Devices and Services

ในแง่ของการนำ .NET ไปใช้งาน ไมโครซอฟท์ก็มีโครงการและความร่วมมืออีกหลายประการที่จะดัน .NET ไปยังอุปกรณ์และบริการใหม่ๆ

.NET Native

ข่าวใหญ่ของงาน BUILD ครั้งนี้คือ Universal Windows Apps รูปแบบการพัฒนาแอพแบบใหม่ที่จะรันได้ทั้งบน Windows, Windows Phone, Xbox One ซึ่งถือเป็นอนาคตของการพัฒนาแอพสายไมโครซอฟท์

คำถามต่อมาคือ แล้วการพัฒนาแอพแบบ native ที่แล้วๆ มาจะทำอย่างไร แอพแบบ Universal จะมีประสิทธิภาพดีแค่ไหนเมื่อเทียบกับ native

คำตอบของไมโครซอฟท์คือรันแอพ .NET (ที่เขียนด้วย C#) แบบ native แทนสิ โดยใช้ .NET Native รุ่นพรีวิวมาให้ทดสอบกันแล้ว (ต้องใช้ร่วมกับ Visual Studio 2013 Update 2)

ไมโครซอฟท์บอกว่าจากการทดสอบภายใน แอพ Windows Store เดิมเอามารันแบบ native จะรันได้เร็วกว่าเดิมถึง 60% และลดปริมาณหน่วยความจำลง ตอนนี้ .NET Native รองรับสถาปัตยกรรม ARM และ x64 (x86 จะตามมาในภายหลัง)

ไมโครซอฟท์มีสโลแกนอย่างไม่เป็นทางการของ .NET Native ว่า "the performance of C++ with the productivity of C#"

รายละเอียดดูได้จาก .NET Native และ .NET Framework Blog

การทำงานบนอุปกรณ์ต่างค่าย

จากแผนภาพข้างต้นจะเห็นรายชื่อของอุปกรณ์ที่ .NET จะรองรับคือ

  • Azure and Windows Server
  • Windows Desktop
  • Windows Store
  • iOS and Android

สามอย่างแรกอยู่ภายในอาณาจักรของไมโครซอฟท์เอง แต่กรณีของ iOS/Android ที่เป็นอุปกรณ์คนละค่ายกัน ไมโครซอฟท์ใช้วิธีจับมือเป็นพาร์ทเนอร์กับบริษัท Xamarin ที่ทำเรื่องนี้อยู่แล้ว (ข่าวเก่า)

รูปแบบจะเหมือนกับการพัฒนาแอพด้วย Xamarin ในปัจจุบัน คือสร้างแอพด้วย C# และเรียกใช้ .NET Portable Class Libraries (ส่วนตัว logic ของแอพจะเหมือนกันหมด) แล้วเขียนส่วน UI แยกตามแพลตฟอร์มนั้นๆ

กระบวนการรันจะอยู่บน .NET ในกรณีของแพลตฟอร์มไมโครซอฟท์ และอยู่บน Xamarin Runtime ถ้าใช้บน iOS/Android

เครื่องมือพัฒนาสามารถใช้ Visual Studio ได้โดยตรงถ้าถนัดมือ หรือจะใช้ Xamarin Studio ก็ได้

Azure Mobile Services

ฝั่งของบริการบนกลุ่มเมฆ ไมโครซอฟท์มีบริการชื่อ Azure Mobile Services ซึ่งเป็นบริการ backend ของแอพมือถือต่างๆ อยู่ก่อนแล้ว งานนี้ไมโครซอฟท์จึงประกาศว่าสามารถเขียน .NET ร่วมกับ Azure Mobile Services ได้แล้ว (มี API บน .NET ที่เรียกใช้งาน Azure Mobile Services บนกลุ่มเมฆได้โดยตรง)

ที่มา - Somasegar's Blog, .NET Future

Blognone Jobs Premium