คนที่เคยเขียน Xamarin คงทราบดีว่าเป็นแพลตฟอร์มพัฒนาแอพที่ใช้ภาษาตระกูล .NET (C#/XAML) แต่เขียนเป็นแอพมือถือ Android/iOS โดยมีจุดเด่นคือใช้เครื่องมือที่นักพัฒนาสาย .NET คุ้นเคย และแชร์โค้ดร่วมกันระหว่างแอพ Android/iOS ได้สะดวก (Xamarin ทำหน้าที่แปลงให้)
หลังไมโครซอฟท์ซื้อ Xamarin ในปี 2016 ก็ประกาศแผนการรวม Xamarin เข้ากับแพลตฟอร์ม .NET 5 โดยมีตั้งแต่การรวมระดับของรันไทม์ (CoreCLR และ Mono) และระดับของ GUI
ในงาน Build 2019 เมื่อปีที่แล้ว ไมโครซอฟท์เปิดตัว .NET 5 ที่เป็นการรวม .NET Core เข้ากับ Xamarin/Mono โดย .NET 5 ออกรุ่น Preview 1 เมื่อเดือนมีนาคม 2020 ที่ผ่านมา
เวลาผ่านมาจนถึง Build 2020 ไมโครซอฟท์ออก .NET 5 Preview 4 พร้อมข่าวสำคัญคือปรับแผนใหม่ ยังไม่รวม Xamarin/Mono เข้ามาเต็มรูปแบบ (เพราะทำไม่ทัน) แต่จะออกเวอร์ชันแยกในชื่อว่า .NET MAUI ออกเป็นพรีวิวในเดือนพฤศจิกายน 2020 และตัวจริงค่อยไปรวมกับ .NET 6 LTS ที่จะออกในเดือนพฤศจิกายน 2021 แทน
แต่ถึงแม้ .NET 5 ตัดส่วนของ Xamarin/Mono ออกไป ก็ยังมีของใหม่อีกหลายอย่าง ได้แก่
นอกจาก .NET 5 Preview 1 วันนี้ไมโครซอฟท์ปล่อยของสายนักพัฒนามาหลายตัว ของใหญ่อีกตัวที่ออกมาคือ Visual Studio 2019 version 16.5 ซึ่งเป็นรุ่นอัพเดตย่อยตัวที่ 5 ของ VS2019 (ไมโครซอฟท์ออกรุ่นย่อยทุก 3-4 เดือน)
ของใหม่ในเวอร์ชันนี้ได้แก่
ไมโครซอฟท์ออก .NET 5 Preview 1 พรีวิวตัวแรกของ .NET 5 ที่มีกำหนดออกช่วงปลายปีนี้ (อธิบายความแตกต่าง .NET Framework, .NET Core, .NET 5)
แกนกลางสำคัญของ .NET 5 คือการหลอมรวม .NET ทั้งสามตัวย่อย (.NET Framework, .NET Core, Xamarin) เป็นตัวเดียว โดยจะอิงจาก Base Class Library (BCL) ของ .NET Core เป็นหลัก ตอนนี้ .NET Framework และ .NET Core ใช้ BCL ตัวเดียวกันแล้ว ยังเหลือ Xamarin ที่ยังใช้ BCL เวอร์ชันของตัวเองอยู่ และจะทยอยย้ายตามมา
การเดินทางอันยาวนานของ .NET หลากหลายแพลตฟอร์มกำลังจะสิ้นสุดลง เพราะไมโครซอฟท์ประกาศทำ .NET 5 ที่เป็นการรวม .NET ทั้ง 3 สายคือ .NET Framework ตัวดั้งเดิม, .NET Core เวอร์ชันโอเพนซอร์ส และ Xamarin เข้าด้วยกัน
ผลคือ .NET 5 (ใช้ชื่อ .NET เฉยๆ ไม่มีสร้อยใดๆ ต่อท้าย) จะเป็น .NET ตัวเดียวที่ทำงานได้หลากหลายแพลตฟอร์ม ตั้งแต่ Windows, Linux, macOS, iOS, Android ไปจนถึงอุปกรณ์ IoT และเอนจินเกม Unity
ในโลกของไมโครซอฟท์มีภาษา XAML (อ่านว่า "ซาเมล") สำหรับบรรยาย UI แยกจากส่วนของโค้ดโปรแกรม ภาษา XAML ถูกสร้างขึ้นมาตั้งแต่สมัย .NET 3.0 และถูกใช้งานอย่างแพร่หลาย
ในยุคถัดมา XAML ถูกนำมาใช้กับการพัฒนาโปรแกรมบนแพลตฟอร์มอื่นที่ไม่ใช่ .NET เช่น Windows Phone (ปัจจุบันคือ UWP) หรือ Xamarin.Forms ของค่าย Xamarin (สมัยยังไม่ถูกไมโครซอฟท์ซื้อ) ปัญหาที่เกิดขึ้นคือแต่ละแพลตฟอร์มก็สร้างแท็ก XAML เฉพาะของตัวเองที่ใช้งานร่วมกันไม่ได้ สร้างความยุ่งยากให้กับนักพัฒนา
ข้อจำกัดของการเขียนแอพ iOS ในปัจจุบันคือเราจำเป็นต้องใช้แมคเพื่อเชื่อมต่อกับ iOS ในการรันและทดสอบแอพบนเครื่องจริง อย่างไรก็ตาม ในงาน Build 2017 เมื่อคืนนี้ ไมโครซอฟท์ก็ทำลายข้อจำกัดนี้แล้วด้วย Xamarin Live
Xamarin Live เป็นแอพที่ติดตั้งบน iOS/Android ให้เราสามารถส่งไฟล์ไบนารีของแอพจาก Visual Studio ไปรันบนสมาร์ทโฟนได้แบบไม่ต้องต่อสาย
ขั้นตอนการทำงานคือเราต้องเชื่อมต่อ (pair) ฝั่งของ Visual Studio กับแอพ Xamarin Live บนมือถือก่อนด้วยการสแกน QR Code เมื่อจับคู่กันเสร็จแล้ว Xamarin Live จะพรีวิวโค้ดของเราบนหน้าจอสมาร์ทโฟน เมื่อเราแก้ไขโค้ด แอพบนหน้าจอ Xamarin Live ก็จะเปลี่ยนแปลงแบบเรียลไทม์
นอกจาก Visual Studio for Mac ไมโครซอฟท์ยังเปิดตัวบริการใหม่ใต้แบรนด์ Visual Studio อีกตัวคือ Visual Studio Mobile Center
Visual Studio Mobile Center คือ "บริการ" สนับสนุนการพัฒนาแอพบนอุปกรณ์พกพา โดยหลักแล้วมันคือการนำ Xamarin Test Cloud บริการทดสอบแอพบนคลาวด์ของ Xamarin มาเพิ่มฟีเจอร์ด้านการคอมไพล์บนคลาวด์, การทดสอบแอพกับกลุ่มผู้ใช้เบต้า (HockeyApp เดิม), การเก็บสถิติการแครชและบั๊ก, สถิติการใช้งาน และเชื่อมต่อกับระบบ backend อย่างการซิงก์ข้อมูลหรือการตรวจสอบตัวตน
มีข่าวเมื่อวันก่อนว่า ไมโครซอฟท์จะเปิดตัว Visual Studio for Mac เมื่อคืนนี้ ข่าวอย่างเป็นทางการก็มาแล้ว
โดยเนื้อแท้แล้ว Visual Studio for Mac คือการนำ Xamarin Studio ของบริษัท Xamarin ที่ไมโครซอฟท์ซื้อมาเมื่อกลางปี มาปรับปรุงใหม่ในชื่อ Visual Studio ดังนั้นความสามารถของมันจะยังไม่เทียบเท่ากับ Visual Studio เวอร์ชันพีซี
Visual Studio for Mac จะรองรับการเขียนภาษา C#, F# ในตัว และรองรับการเขียน .NET เพื่อแปลงเป็นแอพมือถือทั้ง iOS/Android (ฟีเจอร์เดิมของ Xamarin) ฝั่งของการพัฒนาบนเว็บและคลาวด์ รองรับ .NET Core, ASP.NET Core และการเชื่อมต่อกับ Azure App Services
Mono โครงการพัฒนา .NET แบบโอเพนซอร์ส ที่เริ่มโดยทีมของบริษัท Xamarin (ที่โดนไมโครซอฟท์ซื้อกิจการไปหมาดๆ) เดิมทีใช้สัญญาอนุญาตแบบ LGPL ที่บังคับว่าโค้ดส่วนที่นักพัฒนาใส่เพิ่มหรือแก้ไขจะต้องเปิดซอร์สโค้ดด้วย
ล่าสุด Mono ประกาศใช้สัญญาอนุญาตแบบ MIT ที่มีเงื่อนไขเปิดกว้างมากกว่า ไม่จำเป็นต้องเปิดซอร์สส่วนที่เขียนเพิ่ม ช่วยให้การใช้งานยืดหยุ่นมากขึ้นในบางกรณี สถานะตอนนี้ของ Mono คือใช้สัญญาอนุญาตคู่ (dual-license) ทั้ง MIT และ LGPL เลือกใช้ได้ตามต้องการ
ไมโครซอฟท์เพิ่งซื้อ Xamarin เมื่อเดือนที่แล้ว ในงาน Build 2016 วันที่สอง ก็มีข่าวใหญ่ที่หลายคนรอคอย
หลังจากที่มีข่าวไม่สู้ดี (1, 2) มาตลอด เกี่ยวกับ Project Astoria เครื่องมือในการช่วยพอร์ตแอพจากแพลตฟอร์มอื่นมายัง Windows 10
ล่าสุด ไมโครซอฟท์ประกาศผ่านบล็อกของตัวเองว่าได้ยุติการพัฒนา Project Astoria แล้ว โดยให้เหตุผลว่า การมีเครื่องมือทั้งสำหรับ iOS และ Android ทำให้เกิดความสับสน และด้วยการรับฟังเสียงตอบรับมาพิจารณา จึงคิดว่าควรจะมุ่งเน้นไปที่ Project Islandwood เท่านั้น และเชื่อว่า การเข้าซื้อ Xamarin จะเป็นหนึ่งในปัจจัยสำคัญสำหรับโครงการ Universal Windows Platform Bridges นี้
ทีมงานบริษัท Xamarin พัฒนาเทคโนโลยี .NET แบบโอเพนซอร์สมาตั้งแต่ปี 2000 (ตอนนั้นคือบริษัท Ximian) เวลาผ่านมานานถึง 16 ปี ไมโครซอฟท์ก็ซื้อ Xamarin ในท้ายที่สุดครับ
เดิมทีผลิตภัณฑ์หลักของ Ximian คือ Mono ซึ่งเป็น .NET เวอร์ชันโอเพนซอร์ส แต่พอมาถึงยุคอุปกรณ์พกพาเฟื่องฟู ทีม Xamarin ก็พัฒนา Xamarin Studio ชุดเครื่องมือพัฒนาแอพแบบข้ามแพลตฟอร์มด้วยภาษา .NET จับตลาดกลุ่มนักพัฒนาที่คุ้นเคยกับ .NET/C# แต่ต้องการทำแอพลง iOS และ Android ซึ่งก็ได้รับความนิยมเป็นอย่างดี
ปัจจุบัน Xamarin มีพนักงาน 350 คน มีลูกค้าองค์กร 15,000 แห่ง การที่ไมโครซอฟท์มาซื้อ Xamarin ก็สอดคล้องกับยุทธศาสตร์ใหม่ของบริษัทที่ต้องการขยายเครื่องมือพัฒนาโปรแกรม ให้ครอบคลุมทุกแพลตฟอร์มนั่นเอง
Xamarin เครื่องมือพัฒนาแอพมือถือแบบข้ามแพลตฟอร์มด้วยภาษาตระกูล .NET เปิดตัวซอฟต์แวร์เวอร์ชันใหม่ล่าสุด Xamarin 4 มีของใหม่ดังนี้
Xamarin บริษัทผู้เชี่ยวชาญการใช้ภาษา C# พัฒนาแอพบนแพลตฟอร์มอื่น (เช่น iOS/Android) เข้าซื้อกิจการ RoboVM บริษัทที่ทำระบบแบบเดียวกันแต่ใช้ภาษา Java แทน
เป้าหมายของ Xamarin ชัดเจนว่าต้องการรองรับภาษา Java กับแพลตฟอร์มการพัฒนาของตัวเองด้วย ที่ผ่านมาลูกค้าหลักของ Xamarin คือนักพัฒนาที่คุ้นเคยกับเทคโนโลยีฝั่งไมโครซอฟท์อยู่ก่อน และต้องการใช้เทคโนโลยีเดิมพัฒนาแอพข้ามแพลตฟอร์ม การซื้อ RoboVM ย่อมทำให้ Xamarin เข้าถึงนักพัฒนาสาย Java ที่ต้องการใช้ Java สร้างแอพข้ามแพลตฟอร์มลักษณะเดียวกัน
Xamarin และ RoboVM จะยังแยกการบริหารงานเหมือนเดิมต่อไป แต่ RoboVM จะนำเทคโนโลยีสำหรับลูกค้าองค์กร และช่องทางการขายของ Xamarin ไปใช้งานเพิ่มเติมด้วย
Xamarin ทีมงานเดิมของโครงการ Mono ที่หันไปเน้นการเขียนแอพมือถือด้วย C# เผยผ่านบล็อกของบริษัทว่า เปิดให้นักศึกษาสมัครสมาชิกประเภท Indie เพื่อดาวน์โหลด IDE ของบริษัท Xamarin Studio ไปพัฒนาแอพ Android/iOS ด้วยภาษา C# ฟรี เป็นเวลา 1 ปี
อนึ่ง สมาชิกประเภท Indie จะดีกว่า Starter ที่บริษัทแจกให้ใครก็ได้สมัครฟรีตรงที่จะไม่จำกัดขนาดของแอพ รองรับ P/Invoke รองรับการเรียกไลบรารี่อื่น และใช้ Xamarin.Forms ทำส่วนติดต่อผู้ใช้ iOS, Android และ Windows Phone โดยใช้โค้ด C# เดียวกันได้
Soma Somasegar ผู้บริหารฝ่ายนักพัฒนาของไมโครซอฟท์ ให้สัมภาษณ์กับ ZDNet ถึงเบื้องหลังการประกาศเปิดโค้ด .NET บางส่วนเป็นโอเพนซอร์ส ว่าไมโครซอฟท์เตรียมการเรื่องนี้มา 3 ปีแล้ว
เขาบอกว่าผู้บริหารของไมโครซอฟท์ว่ายังสนับสนุนโอเพนซอร์สได้ไม่ดีเท่าที่ควร และมีการถกเถียงกันภายในบริษัทว่าตกลงแล้วควรเลือกเปิดโค้ดของ .NET ที่ระดับไหนบ้าง ทั้งการเปิดโค้ดเฟรมเวิร์คระดับบนๆ แล้วไล่ลงมายังเทคโนโลยีฐาน หรือเปิดเลยทั้งหมดเท่าที่จะทำได้
ที่งาน BUILD เมื่อวานนี้ ไมโครซอฟท์ประกาศตั้งมูลนิธิ .NET Foundation ซึ่งเป็นหน่วยงานอิสระเพื่อรับผิดชอบการพัฒนาเทคโนโลยีฝั่ง .NET ที่เปิดซอร์สโค้ด โดยมีเป้าหมายเพื่อขยายการใช้งาน .NET บนแพลตฟอร์มอื่นๆ
นอกจากไมโครซอฟท์แล้ว สมาชิกของ .NET Foundation ยังมี Xamarin ผู้พัฒนาโครงการ Mono และบริษัทอื่นๆ เช่น GitHub, Salesforces.com, Glimpse, Umbraco, IdentityMine
เบื้องต้น .NET Foundation จะมีโครงการโอเพนซอร์สจากไมโครซอฟท์รวม 24 โครงการ เช่น ASP.NET MVC, .NET Micro Framework, .NET WebClient, .NET API for Hadoop, Azure .NET SDK, Windows Phone Toolkit (รายชื่อทั้งหมดดูได้จากลิงก์ที่มา)
ก่อนอื่นต้องเท้าความเกี่ยวกับ Xamarin กันก่อน บริษัท Xamarin เกิดจากทีมงานบางส่วนของ Mono (โครงการพัฒนาแอพด้วยเทคโนโลยีของ Microsoft ให้สามารถรันบนแพลตฟอร์มอื่นได้) บริษัทนี้มีผลงานหลายอย่าง ทั้ง IDE ของบริษัทเองในชื่อ Xamarin Studio สำหรับเขียนแอพด้วย C# และแปลงเป็น .NET/Android/iOS และปลั๊กอินสำหรับ Visual Studio ให้สามารถพัฒนาแอพ iOS แบบ native ด้วยภาษา C# ได้
Xamarin ทีมงานเดิมของโครงการ Mono ที่หันไปเน้นการเขียนแอพมือถือด้วย C# ประกาศข่าวใหม่ 4 เรื่อง ดังนี้
โครงการ Moonlight (ข่าวเก่า) คือการสร้างรันไทม์สำหรับ Silverlight บนแพลตฟอร์มลินุกซ์ โครงการนี้ดำเนินการโดยทีม Mono เดิมที่เคยอยู่กับ Novell (
การที่ Android ใช้ภาษา Java ทำให้กูเกิลมีปัญหาคดีความกับซันและออราเคิล ทางออกที่เป็นไปได้ในทางทฤษฎีคือเปลี่ยนไปใช้ภาษา-แพลตฟอร์มอื่นแทน ซึ่งก็ไม่ง่ายนักในทางปฏิบัติ
ข่าวดีสำหรับผู้ใช้ Mono ครับ
จากความเดิมว่า Attachmate ซื้อ Novell และปลดพนักงานจำนวนมาก รวมถึงทีม Mono ทำให้ทีม Mono หันไปตั้งบริษัทใหม่ Xamarin หันมาทำเครื่องมือสำหรับนักพัฒนาแอพบนมือถือด้วยเทคโนโลยี Mono
อย่างไรก็ตาม ผลิตภัณฑ์สายตระกูล Mono หลายตัว (โดยเฉพาะกลุ่มที่ไม่ใช่โอเพนซอร์สอย่าง MonoTouch/MonoDroid) ยังเป็นกรรมสิทธิ์ของ Attachmate อยู่ และเกิดเป็นคำถามว่าเรื่องนี้จะลงเอยอย่างไร
หลังจาก Attachmate ซื้อกิจการ Novell และปลดพนักงานบางส่วน ซึ่งรวมไปถึงทีม Mono ด้วย
ทาง Miguel De Icaza ผู้นำทีม Mono ก็ออกมาประกาศว่าจะตั้งบริษัทใหม่ชื่อ Xamarin โดยจะเน้นที่เครื่องมือพัฒนา .NET บนมือถือ iOS/Android โดยเฉพาะ