Dot-Net
為什麼使用棱鏡?
我有興趣製作一個相當龐大的體面的 WPF 應用程序。有人建議使用我們目前正在研究的 PRISM。我們可能正在使用 MVVM 模式來實現這個應用程序。我看到了一些 PRISM 的截屏影片,似乎 PRISM 主要用於注入具有不同視圖的區域。這是使用 PRISM 的主要目的嗎?
我總是可以使用 ContentPresenter 使用 WPF MasterPages,那麼為什麼我應該將 PRISM 用於區域目的?
Prism 提供的不僅僅是區域系統。不詳盡:
- View-Model 命令系統
- 事件聚合器,用於解耦事件處理(內置許多選項,例如 GUI 執行緒呼叫、弱引用等)
- 載入模組的標準方法,如果您需要這種靈活性
區域系統也不僅僅是一個“內容呈現器包裝器”。它可用於“推”(將視圖放入區域)或“拉”(讓模組聲明它們填充哪個區域)。它還支持的不僅僅是簡單的 contentpresenter 區域(例如基於 ItemsControl 的區域),並且可以通過區域適配器進行擴展。
最後但也許並非最不重要的一點是,當您採用 Prism 的形式主義時,您押注於外人可能已經知道的通用“語言”(幾乎是框架,即使 prism 團隊不這麼稱呼它),而不是重新發明你自己的,這需要有人學習一套全新的東西。對於一個長期存在的項目來說,這可能是一件好事(前提是 Prism 顯然不會死得太早)。