Forum

Please or Register to create posts and topics.

Lựa chọn Model-Driven App hay Canvas App

Khi nói đến việc phát triển các giải pháp trong Microsoft Power Platform, một trong những câu hỏi cơ bản thường xuyên được hỏi là nên sử dụng ứng dụng canvas hay model-driven. Bài viết này nhằm mục đích so sánh hai ứng dụng này và cung cấp một số câu hỏi cơ bản để bạn tự hỏi trước khi đưa ra quyết định.
 
Ứng dụng Canvas là gì?
Ứng dụng Canvas là ứng dụng được xây dựng trong Power Apps Studio bằng giao diện kiểu kéo và thả. Ứng dụng Canvas có giao diện có thể tùy chỉnh cao, cho phép Giao diện người dùng điều khiển các tương tác và cung cấp nền tảng lý tưởng cho các ứng dụng có thương hiệu cao. Ứng dụng Canvas cũng có thể kết nối với nhiều nguồn Dữ liệu khác nhau (hơn 200 tại thời điểm viết bài viết này).
Khi thiết kế ứng dụng Canvas, bạn sẽ cần cân nhắc chế độ chính mà bạn mong đợi người dùng tương tác với ứng dụng, có thể là chế độ dọc hoặc ngang. Mặc dù Microsoft đã làm cho vấn đề này bớt đáng lo ngại hơn bằng cách cho phép các tỷ lệ màn hình và độ phân giải tùy chỉnh khác nhau, nhưng ứng dụng Canvas vẫn chưa thực sự phản hồi.
Ứng dụng Canvas phù hợp nhất với quy trình dựa trên tác vụ đơn giản.
 
Các ví dụ về điều này mà chúng tôi đã triển khai cho khách hàng (hoặc chính chúng tôi):
  1. Yêu cầu nghỉ phép
  2. Yêu cầu địa điểm dự án
  3. Kiểm tra địa điểm
  4. Theo dõi thời gian
  5. Bảng vào/ra
  6. Đặt chỗ đậu xe
  7. Nhận dạng nhân viên
 
Ứng dụng Model-Driven App là gì?
Model App (gọi tắt của Model-Driven App) là một lựa chọn tuyệt vời khi bạn có dữ liệu có cấu trúc tốt trong Dataverse và quan tâm nhiều hơn đến việc thúc đẩy tương tác thông qua logic vận hành phức tạp hơn là giao diện. Nếu cấu trúc dữ liệu của bạn chưa được cân nhắc kỹ lưỡng hoặc bạn cần tùy chỉnh giao diện ở mức độ cao, thì ứng dụng Canvas sẽ là lựa chọn tốt hơn cho bạn. Model App sẽ cung cấp cho bạn một ứng dụng phản hồi gốc mà người dùng của bạn có thể dễ dàng truy cập từ cả máy tính để bàn và thiết bị di động, có thể triển khai nhanh chóng thông qua việc tiết kiệm công sức cần thiết để xây dựng giao diện người dùng.
Model App có giao diện người dùng được tạo dựa trên mô hình của dữ liệu và các thành phần được thêm vào ứng dụng để tương tác. Tuy nhiên, mặc dù chúng lý tưởng để sử dụng trên thiết bị di động do khả năng reponsive (tự động điều theo kích thước của màn hình thiết bị) của giao diện, nhưng điều quan trọng cần lưu ý là chúng yêu cầu kết nối dữ liệu với cơ sở dữ liệu Dataverse để sử dụng, vì vậy nếu có yêu cầu hỗ trợ tương tác offline, Model App sẽ không đáp ứng được nhu cầu. Ví dụ cho Model-Driven App:
  1. Hệ thống quản lý quan hệ khách hàng (CRM)
  2. Hệ thống thông tin nguồn nhân lực (HRIS)
  3. Hệ thống quản lý hàng tồn kho
  4. Hệ thống theo dõi tài sản
Các ứng dụng của BSD phát triển như XD Pro (giải pháp quản lý cho doanh nghiệp xây dựng), Car Pro (giải pháp quản lý kinh doanh và dịch vụ cho các đại lý xe),.. được phát triển trên nền Model App
 
Hình ảnh giúp bạn nhanh chóng lựa chọn Model-Driven App hay Canvat-App cho ứng dụng của bạn
 
Tôi nên sử dụng loại nào?
Sau đây là một số câu hỏi cần cân nhắc để giúp bạn quyết định:
 
Bạn sẽ sử dụng nguồn dữ liệu nào?
  1. Nếu bạn đang có kế hoạch sử dụng nhiều nguồn dữ liệu bên ngoài Dataverse, thì Canvas App là lựa chọn phù hợp.
  2. Nếu dữ liệu của bạn được lưu trữ hoàn toàn trong cơ sở dữ liệu Dataverse, Model-Driven App sẽ tăng tốc đáng kể quá trình thiết kế và phát triển ứng dụng, bằng cách loại bỏ nhu cầu phải dành nhiều công sức cho giao diện người dùng.
Dữ liệu đã có sẵn ở nơi nào khác chưa?
Mặc dù đây không nhất thiết là yếu tố quyết định cụ thể giữa các tùy chọn của bạn, nhưng đây là một cân nhắc khá phổ biến khi thiết kế kiến trúc ứng dụng của bạn trong Power Platform.
Thay vì thiết lập một nguồn dữ liệu mới để thiết lập một nguồn, liệu dữ liệu bạn cần đã tồn tại trong một hệ thống lưu trữ nào đó chưa? Ví dụ: nếu tạo ứng dụng yêu cầu tài khoản hoặc hướng dẫn nhân viên mới và bạn đã có dữ liệu cần thiết trong Hệ thống thông tin nguồn nhân lực (HRIS), hãy cân nhắc xem có nên kết nối trực tiếp với nguồn dữ liệu đó thay vì thiết lập một nguồn mới hay không.
 
Ứng dụng này có hỗ trợ một tác vụ hay quy trình đơn giản hay đây là một ứng dụng phức tạp?
Với Canvas, bạn có thể nhanh chóng triển khai một ứng dụng để giải quyết khoảng cách hoặc cung cấp hiệu quả khi nói đến các tác vụ đơn giản. Hãy cân nhắc xem bạn đang muốn tự động hóa/số hóa những gì; đó có phải là quy trình tuyến tính thu thập dữ liệu từ người dùng và thực hiện hành động trên dữ liệu đó hay chúng ta cần một hệ thống phức tạp để quản lý nhiều hoạt động liên quan đến cùng một dữ liệu (CRM là một ví dụ điển hình, Dynamics 365 là ứng dụng theo mô hình).
Hãy nhớ rằng một giải pháp đầy đủ có thể bao gồm một số ứng dụng, cả Canvas và Model-Driven App, để đáp ứng các yêu cầu kinh doanh theo cách hiệu quả nhất có thể. Vì vậy, quyết định không nhất thiết phải hoàn toàn trắng đen.
Bạn có thể sử dụng model-driven app để làm việc với dữ liệu bán hàng, theo dõi và báo cáo, nhưng hãy sử dụng ứng dụng Canvas để cho phép nhân viên bán hàng của bạn nhanh chóng tạo báo giá tại chỗ cho khách hàng của bạn bằng giao diện có thương hiệu và được tùy chỉnh cao.
 
Giao diện người dùng có cần được tùy chỉnh cao không?
Nếu bạn đang muốn triển khai một ứng dụng tùy chỉnh, có thương hiệu với giao diện người dùng hỗ trợ hoạt động của người dùng, thì ứng dụng Canvas App là lựa chọn tốt nhất.
 
Ứng dụng có cần phải tự động điều chỉnh kích thước (reponsive) không?
Mặc dù đã có những cải tiến đối với việc tạo ứng dụng Canvas, nhưng chúng vẫn chưa thực sự tự động điều chỉnh kích thước (reponsive), thường yêu cầu chúng tôi phải đánh giá chế độ chính mà người dùng sẽ tương tác với ứng dụng và đưa ra lựa chọn triển khai giao diện ở chế độ dọc hoặc chế độ ngang trước. Nếu ứng dụng cần thực sự reponsive trên cả máy tính để bàn và thiết bị di động, thì model-driven app nên là lựa chọn chính.
 
Có yêu cầu nào về việc ứng dụng phải khả dụng khi offline không?
Ứng dụng theo mô hình yêu cầu kết nối với cơ sở dữ liệu Dataverse chứa dữ liệu cung cấp năng lượng cho ứng dụng, vì vậy nếu bạn có yêu cầu có thể sử dụng ứng dụng khi offline hoặc trong vùng phủ sóng dữ liệu kém, bạn sẽ cần sử dụng Canvas App để đáp ứng nhu cầu đó.