Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Bạn có thể giải thích sự tương tác giữa các dự án cốt lõi và UI trong MVVMCROSS


Bạn có thể giải thích sự tương tác giữa các dự án cốt lõi và UI trong MVVMCROSS


MVVMCROSS là một khung đa nền tảng tạo điều kiện cho việc phát triển các ứng dụng bằng cách sử dụng mẫu mô hình-View-ViewModel (MVVM). Nó cho phép các nhà phát triển tạo ra các giải pháp di động được kết hợp lỏng lẻo, có thể duy trì và có thể kiểm tra bằng cách tách logic ứng dụng thành hai phần chính: dự án cốt lõi và dự án UI.

Dự án cốt lõi

Dự án cốt lõi thường là một thư viện tiêu chuẩn .NET chứa tất cả các mã được chia sẻ, bao gồm:
- ViewModels: Chúng chịu trách nhiệm xử lý các tương tác của người dùng và logic kinh doanh.
- Mô hình: Đại diện cho các cấu trúc dữ liệu được sử dụng trong toàn bộ ứng dụng.
- Dịch vụ: Cung cấp quyền truy cập vào dữ liệu, dịch vụ web hoặc các tài nguyên bên ngoài khác.
- Bộ chuyển đổi: Được sử dụng để chuyển đổi kiểu dữ liệu.
- Lớp ứng dụng: Điều này chịu trách nhiệm khởi tạo các mô hình logic và xem logic kinh doanh của ứng dụng. Nó cũng xử lý việc đăng ký các đối tượng tùy chỉnh trong phần ngược của container điều khiển (IOC).
- AppStart: Tùy chọn được sử dụng để xác định mô hình xem nào sẽ trình bày trước khi ứng dụng bắt đầu.

Dự án UI

Dự án UI là dành riêng cho nền tảng và chứa các yếu tố giao diện người dùng và mã dành riêng cho nền tảng. Đối với mỗi nền tảng mục tiêu (ví dụ: iOS, Android), có một dự án UI riêng biệt. Những dự án này bao gồm:
- Chế độ xem: Mỗi chế độ xem chịu trách nhiệm trình bày một mô hình chế độ xem tương ứng. Các chế độ xem được thiết kế bằng các công cụ nền tảng gốc (ví dụ: XAML cho xamarin.forms, AXML cho Android).
- Trình xử lý ứng dụng gốc: Điều này xử lý các sự kiện vòng đời bản địa. Ví dụ: trên Android, nó sẽ là một lớp `mainActivity` hoặc` mainapplication`, trong khi trên iOS, nó sẽ là một lớp `appDelegate`.
- Lớp thiết lập: Điều này chịu trách nhiệm cho việc khởi động MVVMcross và đăng ký các dịch vụ dành riêng cho nền tảng. Nó khởi tạo khung MVVMcross và thiết lập thùng chứa IOC với các triển khai cụ thể về nền tảng.

Tương tác giữa các dự án Core và UI

Sự tương tác giữa các dự án lõi và UI trong MVVMcross được tạo điều kiện bởi mẫu MVVM và thùng chứa IOC của khung. Đây là cách họ tương tác:
- Liên kết ViewModel: Các dự án UI sử dụng MVVMcross để liên kết các chế độ xem để xem các mô hình. Điều này thường được thực hiện bằng cách sử dụng quy ước đặt tên hoặc bằng cách trang trí các chế độ xem với các thuộc tính như `[mvxviewfor (typeof (homeViewModel))]`.
- Tiêm dịch vụ: Dự án cốt lõi xác định giao diện cho các dịch vụ được triển khai khác nhau trên mỗi nền tảng. Các dịch vụ này được đăng ký trong thùng chứa IOC và được đưa vào các mô hình xem, cho phép chức năng cụ thể của nền tảng mà không cần sao chép mã.
- Điều hướng và trình bày: MVVMCROSS cung cấp các cơ chế để điều hướng giữa các mô hình xem và trình bày chế độ xem. Khung sử dụng người trình bày (ví dụ: `imvXiosViewPresenter`,` imvxAndroidViewPresenter`) để quản lý cách hiển thị các chế độ xem trên mỗi nền tảng.

Bằng cách tách logic ứng dụng thành các dự án Core và UI, MVVMcross cho phép các nhà phát triển tối đa hóa việc tái sử dụng mã trên các nền tảng trong khi vẫn cho phép tùy chỉnh và tối ưu hóa cụ thể về nền tảng [1] [3] [5].

Trích dẫn:
[1] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview
[2] https://canbilgin.wordpress.com/tag/mvvmcross/
.
[4] https://www.mvvmcross.com/documentation/advanced/customizing-using-App-and-Setup
.
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://www.mvvmcross.com/documentation/tutorials/tipcalc/the-core-project
.