2009-07-13 25 views
13

Tôi quan tâm đến việc thực hiện một ứng dụng WPF phong nha mà sẽ khá lớn. Có người đã đề xuất sử dụng PRISM mà chúng tôi hiện đang xem xét. Chúng tôi có thể đang sử dụng mẫu MVVM để triển khai ứng dụng này. Tôi thấy một số PRISM screencasts và nó có vẻ như PRISM chủ yếu được sử dụng để tiêm các khu vực với quan điểm khác nhau. Đó có phải là mục đích chính của việc sử dụng PRISM không?Tại sao sử dụng lăng kính?

Tôi luôn có thể sử dụng WPF MasterPages bằng cách sử dụng ContentPresenter vậy tại sao tôi nên sử dụng PRISM cho mục đích khu vực?

+0

Câu hỏi tương tự tôi đã hỏi - http://stackoverflow.com/questions/6251821/custom-mvvm-implementation-vs-prism – akjoshi

Trả lời

12

Lăng kính cung cấp nhiều hơn một chút so với hệ thống khu vực. Không tường tận:

  • hệ thống chỉ huy xem mẫu
  • Event aggregator, cho tách riêng xử lý sự kiện (với rất nhiều tùy chọn built-in, chẳng hạn như gọi điện thoại GUI chủ đề, tài liệu tham khảo yếu vv)
  • một tiêu chuẩn cách tải mô-đun, nếu bạn cần loại linh hoạt đó

Hệ thống khu vực cũng không chỉ đơn giản là "trình bao bọc nội dung trình bày nội dung". Nó có thể được sử dụng để "đẩy" (đặt một khung nhìn vào một vùng) hoặc "kéo" (cho phép các mô-đun khai báo vùng nào chúng cư trú). Nó cũng hỗ trợ nhiều hơn các vùng nội dung đơn giản (ví dụ như các vùng dựa trên ItemsControl) và có thể mở rộng thông qua các bộ điều hợp vùng. Cuối cùng, nhưng có lẽ không kém, khi bạn áp dụng hình thức của Prism, bạn đặt cược vào một "ngôn ngữ" chung (và hầu như khuôn khổ, ngay cả khi nhóm lăng kính không gọi nó như thế) mà người ngoài có thể đã biết, thay vào đó, thay vào đó, tái phát minh của riêng bạn mà sẽ yêu cầu một người nào đó để tìm hiểu một bộ hoàn toàn mới của sự vật. Nó có thể là một điều tốt cho một dự án sống lâu (cung cấp Prism không chết quá trẻ rõ ràng).

3

Nếu bạn đã kết hợp các trang của mình theo cách mà các thành phần phụ khác nhau của trang độc lập thì PRISM (hoặc khối ứng dụng hỗn hợp tiền thân) không thực sự mua cho bạn nhiều hơn một tiêu chuẩn được công nhận cách làm compositing đó là tài liệu.

Lợi ích của việc tổng hợp là mỗi thành phần trong giao diện người dùng có thể được phát triển riêng lẻ và sau đó gắn với nhau muộn trong chu trình sản xuất. Điều này có nghĩa là bạn đã tạo ra các thành phần có thể được sử dụng ở nhiều nơi một cách dễ dàng và giao tiếp của bạn giữa các thành phần đang diễn ra thông qua một giao diện được xác định rõ hơn là "ném các thành phần trên trang và nói chuyện với trạng thái".

Vì vậy, nếu những gì bạn đang làm bây giờ hoạt động, tôi có thể sẽ tiếp tục với nó. Nếu những gì bạn có là kém phát triển, hãy xem xét một cái gì đó giống như PRISM nếu bạn có rất nhiều nhà phát triển làm việc trên các bộ phận và phần và một nhà phát triển hoặc nhóm khác kéo các mảnh này lại với nhau thành giao diện người dùng đầy đủ thổi cho người dùng. Kinh nghiệm của tôi là với khối ứng dụng hỗn hợp UI và nó mang lại rất nhiều cho bảng trong các dự án lớn, nhưng các đơn giản hóa đã hứa sẽ tốt cho dù là một dự án có kích thước khiêm tốn.

0

Nếu bạn biết khối ứng dụng tổng hợp, về cơ bản nó giống nhau. Mục đích chính của PRISM là có một ứng dụng tổng hợp WPF, trong đó mỗi phần (tức là phần màn hình hoặc thành phần không nhìn thấy được) của ứng dụng được kết hợp lỏng lẻo với một phần khác của ứng dụng.

2

Tôi muốn nhấn mạnh việc phân chia các mô-đun phát triển tại đây. Nó cho phép các nhóm nhỏ riêng biệt phát triển các phần của một ứng dụng và sau đó đặt nó lại với nhau ở cuối.

Tôi cũng muốn nói rằng MVVM chắc chắn là cách để đi đến đây, nhưng CAG cũng khuyến khích bạn sử dụng tiêm phụ thuộc cho ViewModels của bạn, làm cho chúng dễ kiểm tra hơn là nếu không. Tất nhiên bạn có thể sử dụng tiêm phụ thuộc mà không có CAG, nhưng nó là tốt đẹp để có khuyến khích chính thức này.

Các vấn đề liên quan