I was having a conversation with Chris Tavares of the Patterns and Practices group (the Prism guys). We were talking about the future of Prism (et al.) and the topic of the Windows Phone 7 came up. While MEF, Prism and Unity might make an appearance on the device, the real question to us was why.
Its not that phone applications do not need proper architecture to be maintainable and testable, its just unclear to me that using a composition framework (Prism and/or MEF) are going to help in that way. I could see a IoC container (Unity, MEF-sort of) there but mostly for testability.
I mention this because I want to make sure that people remember they are building apps for a phone, not for a laptop. I think it would be easy to over-build and not depend on the ‘cloud’. (As an aside when I talk about the cloud, I mean any data center…not necessarily Azure or EC2.)
The big picture to me is that the phone is for the user interface, not for the guts of an application. There are additional benefits there in that it can improve scalability as well as being able to implement same/similar applications on other devices. If you’re not sure I am right, turn off the Internet on your phone (assuming you’re on an iPhone, Blackberry or Android) and see how many of your applications work. Keep that in mind when you’re architecting your phone applications.