MVVMCROSS เป็นกรอบ MVVM ที่มีประสิทธิภาพ (Model-View-ViewModel) ที่มีความคิดเห็นที่ออกแบบมาสำหรับการพัฒนาแอปพลิเคชันข้ามแพลตฟอร์มภายในระบบนิเวศ. NET รองรับแพลตฟอร์มต่าง ๆ รวมถึง Xamarin.ios, Xamarin.android, Xamarin.forms, Universal Windows Platform (UWP), Windows Presentation Foundation (WPF) และอีกมากมาย [1] [3] [4] นี่คือภาพรวมของคุณสมบัติที่สำคัญและวิธีการทำงาน:
คุณสมบัติสำคัญของ mvvmcross
- รูปแบบสถาปัตยกรรม MVVM: MVVMCROSS ใช้รูปแบบ MVVM ซึ่งแยกตรรกะแอปพลิเคชันออกเป็นสามส่วนประกอบที่เชื่อมต่อกัน: โมเดลมุมมองและ ViewModel [3]
-ระบบนำทาง: มีระบบนำทางที่มีประสิทธิภาพช่วยให้การจัดการ ViewModel-to-ViewModel ได้ง่าย [2] [4]
- การเชื่อมโยงข้อมูล: MVVMCROSS รวมถึงเอ็นจิ้นการเชื่อมโยงที่ปรับแต่งได้ทำให้นักพัฒนาสามารถสร้างการเชื่อมโยงที่กำหนดเองสำหรับมุมมองของพวกเขา [4]
- การผกผันของการควบคุม (IOC) และการฉีดพึ่งพา: เฟรมเวิร์กรองรับ IOC ผ่านการฉีดพึ่งพาการอำนวยความสะดวกการมีเพศสัมพันธ์แบบหลวมและการทดสอบ [3] [4]
-การสนับสนุนเฉพาะแพลตฟอร์ม: ให้การสนับสนุนอย่างกว้างขวางสำหรับคุณสมบัติเฉพาะแพลตฟอร์มและฟังก์ชันการทำงาน [3]
- ปลั๊กอินและส่วนขยาย: MVVMCROSS รวมถึงเฟรมเวิร์กปลั๊กอินที่ช่วยให้นักพัฒนาสามารถรวมฟังก์ชันเพิ่มเติมได้อย่างง่ายดายเช่น GPS การแปลและอื่น ๆ [4]
MVVMcross ทำงานอย่างไร
Core และโครงการ UI
โดยทั่วไปแอปพลิเคชัน MVVMcross ประกอบด้วยสองส่วนหลัก:
- โครงการหลัก: สิ่งนี้มีตรรกะทางธุรกิจ, ViewModels, บริการและรุ่น มันมักจะถูกนำไปใช้เป็นไลบรารีมาตรฐาน. NET เพื่อให้แน่ใจว่าเข้ากันได้ข้ามแพลตฟอร์ม [2]
- โครงการ UI: แต่ละแพลตฟอร์ม (เช่น iOS, Android) มีโครงการ UI ของตัวเองซึ่งรวมถึงรหัสเฉพาะแพลตฟอร์มและมุมมองที่โต้ตอบกับโครงการหลัก [2]
วัตถุคีย์และการเริ่มต้น
- คลาสแอพ: อยู่ในโครงการหลักคลาสนี้รับผิดชอบในการลงทะเบียนวัตถุที่กำหนดเองด้วยคอนเทนเนอร์ IOC และเริ่มต้นตรรกะแอปพลิเคชัน [2]
- AppStart Object: ตัวเลือกวัตถุนี้กำหนดว่า ViewModel จะนำเสนอก่อนในระหว่างการเริ่มต้นแอปพลิเคชัน [2]
- คลาสการตั้งค่า: พบในแต่ละโครงการแพลตฟอร์มคลาสนี้เริ่มต้น MVVMCROSS และลงทะเบียนบริการเฉพาะแพลตฟอร์ม [2]
กระบวนการเริ่มต้น
1. การเริ่มต้นแพลตฟอร์ม: กระบวนการเริ่มต้นของแพลตฟอร์มดั้งเดิมเริ่มต้นขึ้น
2. การตั้งค่า MVVMCROSS: คลาส `SETUP` เริ่มต้นเฟรมเวิร์กในสองขั้นตอน:` InitializePrimary` (เธรดหลัก) และ `Initializesecondary` (เธรดพื้นหลัง) [2]
3. การเริ่มต้นแอป: คลาส `แอพ` เริ่มต้นและมีวัตถุ `AppStart 'เพื่อจัดการขั้นตอนการนำทางแรก [2]
เริ่มต้นใช้งาน mvvmcross
ในการเริ่มต้นโครงการ MVVMCROSS ใหม่นักพัฒนาสามารถใช้เทมเพลตเช่น MVXScaffolding เฟรมเวิร์กมีให้บริการผ่านแพ็คเกจ NUGET ซึ่งควรติดตั้งทั้งในโครงการหลักและแพลตฟอร์มเฉพาะ [3] [4] สำหรับคำแนะนำและเอกสารโดยละเอียดเว็บไซต์ MVVMCROSS อย่างเป็นทางการและพื้นที่เก็บข้อมูล GitHub เป็นทรัพยากรที่ยอดเยี่ยม [1] [4]
การอ้างอิง:[1] https://www.mvvmcross.com
[2] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[3] https://www.mvvmcross.com/documentation/getting-started/getting-started
[4] https://github.com/mvvmcross/mvvmcross
[5] https://www.mvvmcross.com/blog/
[6] https://github.com/mvvmcross
[7] https://x.com/mvvmcross?lang=en
[8] https://www.nuget.org/profiles/mvvmcross