2009-11-20 31 views
17

Tôi đang viết lại các hình thức cửa sổ dựa trên ứng dụng của tôi và tôi sẽ sử dụng WPF. Ứng dụng dựa chủ yếu vào các kỹ thuật kéo và thả, trong một môi trường rất đồ họa. Việc sử dụng các báo cáo "Thiết kế", v.v. bằng cách kéo các phần tử vào lưới, di chuyển chúng, nhấp chuột phải vào cài đặt thích hợp, vv tất cả đều được lưu vào cơ sở dữ liệu. Cũng kiểm soát lưu lượng chương trình bằng cách vẽ biểu đồ lưu lượng, với việc định tuyến và tạo ra desicion, tất cả được vẽ trên biểu mẫu và lưu lại vào cơ sở dữ liệu.Để MVVM hay không để MVVM đó là câu hỏi

MVVM có cho chính mình loại ứng dụng này không, hoặc tôi đang cố gắng lắp một chốt tròn trong một lỗ vuông.

Suy nghĩ của bạn được đánh giá cao.

Trả lời

24

Việc sử dụng của tôi là sử dụng MVVM, nhưng không phải là tôn giáo.

Ý tôi là, sử dụng mô hình cho chế độ xem của bạn, nhưng cũng sử dụng một số mã phía sau khi cần (kéo thả & thả, nhấp đúp). Tìm một sự cân bằng giúp phát triển của bạn, mà không cần lái xe bạn.

+0

Cảm ơn, tôi nghĩ rằng một hỗn hợp là theo thứ tự. Cố gắng gắn bó với các nguyên tắc MVVM cho Lệnh, Ràng buộc và Xử lý cơ sở dữ liệu, nhưng có một số mã phía sau để xử lý tương tác giao diện người dùng phức tạp hơn. – Tim

5

MVVM tự vay rất tốt với WPF. Bạn có thể kéo thả bằng WPF và MVVM không? Chắc chắn bạn có thể. Hãy thử tìm kiếm "Hành vi kéo thả WPF"

1

Nếu bạn đang tìm kiếm khả năng bảo trì và thử nghiệm ứng dụng trong thời gian dài, hãy chắc chắn bạn có thể thực hiện công việc đó với MVVM và WPF. hoặc người nào khác chỉ cần đi với WPF. Đường cong học tập ban đầu của MMVM rất dốc.

+0

Cảm ơn, tôi nghĩ rằng hỗn hợp là theo thứ tự. Cố gắng gắn bó với các nguyên tắc MVVM cho Lệnh, Ràng buộc và Xử lý cơ sở dữ liệu, nhưng có một số mã phía sau để xử lý tương tác giao diện người dùng phức tạp hơn. – Tim

3

Có hai lý do thực sự tốt để đi với MVVM:

  1. Nó giúp bạn tạo ra logic kinh doanh và mã truy cập dữ liệu đó là hơn dễ dàng đơn vị thử nghiệm
  2. Với rất ít nỗ lực nhiều, tất cả của UX của bạn nên được dễ dàng để sửa đổi trong Blend

Như nhiều áp phích đã metioned, bất kỳ eventing liên quan đến UX có thể bị xử lý số- đằng sau, nhưng bạn nên phơi bày và truy cập (đọc và ghi) dữ liệu thông qua Mô hình Xem của bạn để dễ ràng buộc trong Chế độ xem của bạn.

Vì nỗ lực bổ sung mà tôi đã đề cập trong # 2, bạn có thể dễ dàng thêm thuộc tính tĩnh vào đối tượng Ứng dụng của mình để xác định xem ứng dụng có đang chạy hay không khi Chế độ xem đang được mở trong Trộn. Nếu Chế độ xem được mở trong Trộn, hãy tận dụng dữ liệu giả thay vì thực hiện cuộc gọi truy cập dữ liệu. Dưới đây là một số mã mẫu hoạt động để kiểm tra xem Blend có Chế độ xem mở hay không:

if (Application.Current == null || Application.Current.GetType() == typeof(Application)) 
{ 
    isInDesignMode = true; 
} 
else 
{ 
    isInDesignMode = false; 
} 

Hy vọng điều này sẽ hữu ích.

+0

Cảm ơn bạn đã trả lời. Tôi không quen với Blend. Học tập Blend, WPF và MVVM nguyên tắc có thể là một đường cong học tập tuyệt vời. – Tim

0

Các mẫu như MVVM là làm cho cuộc sống đơn giản hơn. Vì vậy, đối với bất kỳ trường hợp nào nếu bạn cảm thấy như mô hình đang cho bạn một thời gian khó khăn, cảm thấy tự do để phá vỡ nó hoặc thử cái gì khác. Blindly sau bất cứ điều gì sẽ không giúp bạn. Nhưng anyways MVVM cũng hỗ trợ tương tác UI phức tạp như Kéo và Thả, tôi tin rằng hành vi có thể giúp bạn về điều này. Tìm kiếm trên Google cho WPF kéo & hành vi thả và bạn có thể tìm thấy rất nhiều hướng dẫn và mã để hỗ trợ bạn về điều này.