MVC for WPF with Caliburn?

by marc 8. January 2008 05:34

Rob Eisenberg has made an intriguing post on a framework he's been developing to provide for LOB WPF applications.

I'm pleased to see such work being undertaken, as I think a common issue for the adoption of WPF is that of architectural guidance.

I'll be looking at this with interest.

Feature list from Rob's post:

  • Loose messaging between WPF UI and POCO classes:

      • Use any class as a Presenter/Controller
      • Use any control/event/gesture to send messages to a Presenter.
      • Messages can carry data bound from WPF controls to be used as method parameters on a Presenter.
      • The return value of a Presenter's action can be bound back to the UI.
      • Presenter Actions can be automatically run asynchronously.
      • Presenter Actions can leverage automatic exception handling.
      • Presenter Actions can bubble up to parent presenters if actions are not handled.
    • Loose event pub/sub:
        • Use attributes or a traditional API to register publishers and subscribers.
        • Events can bubble, tunnel or move directly in the even hierarchy.
        • Subscribers can run handlers asynchronously or a publisher can specify all subscribers to run asynchronously.
        • Use any control/event/gesture to raise application events.  Use databinding to pass 'args' along.
      • Platform Abstractions
          • Interface based versions of MessageBox, OpenFileDialog and SaveFileDialog
          • more abstractions to come...
        • Markup Extensions
            • Extensions to make all the above easier to declare in Xaml
            • ResolveExtension for using the IoC container in Xaml
          • Static Gateway
              • All services are accessible through a configurable static gateway.
            • Testable
                • All framework services are interface based.
                • Stubs/Fakes and TestConfiguration provided for all services.
              • PresenterHost
                  • Used to host a presenter in markup with runtime view selection.
                  • Supports animated transitions between views over a presenter.
                • Module Based Architecture
                    • Build your application as pluggable modules.
                  • Shell Extension Mechanism
                      • The shell can easily declare extension points.
                      • Modules can extend the shell through a simple API.
                    • Shell State Mechanism
                        • The shell can track the state of various UI elements so they can be persisted across application loads.
                        • Not limited to Window Size/Position.
                        • Track module state across loads.
                      • IoC/DI
                          • Use Windsor
                          • Use Spring.net
                          • Use StructureMap (adapter is not quite complete)
                        Technorati Tags: , , ,

                        Add comment


                        (Will show your Gravatar icon)  

                          Country flag

                        biuquote
                        • Comment
                        • Preview
                        Loading



                        Powered by BlogEngine.NET 1.4.5.0
                        Original Theme by Mads Kristensen and adjusted by me