Tôi quan điểm rằng các ứng dụng khác nhau và hiểu biết của chúng ta về cách ứng dụng nên được viết vẫn còn rất hạn chế. Các ứng dụng Windows Forms trong quá khứ mà tôi đã từng làm việc rất khác nhau. Một số khác biệt thiết kế tôi đã thấy được (bao gồm hầu hết các kết hợp):
- trực tiếp nói chuyện với cơ sở dữ liệu (2 tầng)
- Sử dụng một backend đã được viết cho các ứng dụng nhất định (3 tầng)
- Sử dụng một bộ dịch vụ web được viết để sử dụng bởi nhiều ứng dụng và không thể thay đổi cho ứng dụng của bạn. (Kiến trúc hướng dịch vụ)
- cập nhật được thực hiện bởi CRUD hoạt động
- cập nhật được thực hiện với sự (lệnh gửi đến máy chủ backend) command pattern
- Rất nhiều tập quán của data binding/không tập quán của dữ liệu ràng buộc
- Hầu hết dữ liệu là "bảng như" (ví dụ: hóa đơn) hoạt động tốt trong các điều khiển lưới tiêu chuẩn/cần điều khiển tùy chỉnh cho hầu hết dữ liệu giao diện người dùng.
- Một nhà phát triển/đội của 10 hoặc 20 nhà phát triển (chỉ trên UI)
- Rất nhiều thử nghiệm đơn vị sử dụng mocks etc/không có đơn vị kiểm tra
Vì vậy, tôi không nghĩ rằng nó có thể tạo ra một thi của MVC (hoặc MVP) luôn phù hợp.
tốt nhất bài viết Tôi đã thấy thực sự giải thích MVC và tại sao một hệ thống MVC được xây dựng cách thức mà nó là, là "Build Your Own CAB" series by Jeremy D Miller. Sau khi làm việc mặc dù nó bạn sẽ có thể hiểu các tùy chọn của bạn tốt hơn rất nhiều. Microsoft's Smart Client Guidance (CAB/Microsoft Composite Application Block) cũng nên được xem xét. Đó là một chút phức tạp, nhưng nó có thể làm việc tốt cho các ứng dụng phù hợp.
Chọn một số MVC/MVP Implementation for a Winforms Project cung cấp tổng quan đáng để đọc. Rất nhiều người thích PureMVC. Tôi chưa bao giờ sử dụng nó, nhưng tôi sẽ xem xét nó vào lần sau tôi cần một khung MVC.
"Presenter First" là cách tiếp cận phát triển phần mềm kết hợp các ý tưởng của mẫu thiết kế Presenter Model Presenter (MVP) và test-driven development. Nó cho phép bạn bắt đầu bằng cách viết các bài kiểm tra bằng ngôn ngữ của khách hàng. Ví dụ:
"Khi tôi nhấp vào 'tiết kiệm' nút sau đó file nên được lưu lại và cảnh báo tập tin chưa được lưu nên biến mất.”
Tôi không có kinh nghiệm sử dụng "Presenter Đầu tiên ," nhưng tôi sẽ cung cấp cho nó một thử khi tôi nhận được một cơ hội, vì nó trông rất hứa hẹn.
khác stack câu hỏi Overflow bạn có thể có thể muốn nhìn vào là here và here.
Nếu bạn đang nghĩ đến việc sử dụng WPF tại bất kỳ điểm nào, hãy xem mẫu Model-View ViewModel (MVVM). Đây là một video rất hay bạn nên xem: Jason Dolinger on Model-View-ViewModel.
MVVM (Model View View Model) Design Pattern for Winforms cung cấp tùy chọn khác có thể giúp dễ dàng chuyển đổi sang WPF hơn nếu cần. Magical.Trevor là một mẫu MVVM khác cho Windows Forms cũng bao gồm tự động ràng buộc dựa trên tên thuộc tính.
Cũng tự hỏi mình tại sao bạn đang sử dụng MVC.
- Bạn có muốn kiểm tra đơn vị càng nhiều mã càng tốt không?
- Bạn đang cố gắng cho phép sử dụng lại nhiều mã nhất có thể không?
- Bạn đang cố gắng làm cho cơ sở mã của mình dễ hiểu?
- 101 các lý do khác có thể hợp lệ cho một dự án cụ thể.
Khi bạn đã rõ ràng trên nhắm mục tiêu, bạn sẽ dễ dàng chọn một triển khai này hoặc cách triển khai khác.
thể trùng lặp của [? Làm thế nào bạn sẽ thực hiện MVC trong một ứng dụng WindowsForms] (http://stackoverflow.com/questions/ 122388/làm thế nào-bạn-thực hiện-mvc-in-a-windowsforms-ứng dụng) – nawfal
xem thêm [Làm thế nào để làm cho Databinding loại an toàn và hỗ trợ tái cấu trúc] (http://stackoverflow.com/questions/1329138/how-to –