If so, anything in particular to watch out for?
I would like to know this also, we are looking into using Prism and curious of peoples experiences with CSLA and Prism.
Yeah there weren't a lot of people jumping in with this, I guess the set of people using CSLA and doing MVVM and using Prism is quite small. So I just went ahead and jumped in to coding a sample app.
So far so good for me. In fact as I've learned more I've come to learn that the two are not really related and there are not likely to be any issues no matter what framework you choose to save typing with.
I haven't gone into the depth enough to really be any kind of expert on this yet, or even a minor know it all. :)
I'm working on a proof of concept / reference implementation and I have a grid that displays a business object list and most of my time has been sucked into that lately but I'm hoping to also have an editable root object used on an edit form opened from the grid really soon just as soon as I put the finishing touches on my custom wpf datagrid / CSLA Read only list base paging code to ensure I can in equal time fill the grid from a 1000 record source as well as a 1 million record source.
(there's a lot to be said for generating a big fat sample database before you start really coding seriously)
MVVM seems so complicated at first but eventually you learn that there really is nothing to it, literally, there is nothing to it, it's almost all convention and you're on your own for most of it so there is really no mystery, just various ways of saving typing and code re-use.
We're definitely sticking with Prism for all the benefits it gives for our WPF and Silverlight UI's. I'd be happy to try to answer any questions you might have but again, I'm very far from an expert.
In addition to what people have said so far, I am also working on a framework to use Prism & CSLA together and things are going pretty smooth but a bit complex.
May be I am over-engineering it as I am trying to have classes for each use-case ( like one class Customer for having editable customer, another read-only customer for search grid, and another customer class for using in say Order class. This is a typical P-O-C application using customer, orders, order-details etc).
Also things are bit slow because I am the only person working on it and also I am trying to get things in to some form of a code generator which takes class definition from an XML file (we will write a designer for that too later).
By now it is clear that we will stick with Prism and CSLA.
Just keep it in mind that these two frameworks are too flexible so it is very easy to get carried away in over-engineering (probably I did already :) ) so know well where to draw the line.
I 'm developing silverlight project consisting 200 more views with CSLA4.1 + PRISM 4.0 + MVVM + MEF + EF 4.0, and I'd like to add my 2cents of experience.
I feel more comfortable in Csla.xaml than any other MVVM framework,actually I tried a few,because view/viewmodel/model matches so beautifully that I nearly don't use even command of prism in between view/viewmodel. Especially keep in mind the approaches of Rocky's MVVM video when designing viewmodel. lmagine we have a parent-child edit form in right region with readonly object gridview in left region, then we may have 1 big vm which has all three object. Yes it looks simple at first but become too complex in vm. Or we may have 2 vm as 1 for list view and 1 for edit form, which was the often case of mine in winform days with SCSF + CSLA. However, if we have 3 vm for each object or 4 vm with 3 object + 1 child edit object, it really simplifies all intervention in between viwe/model. Though I read book and video and Rocky advised to separate vm for every view unit, I made 2 vm at first with my humble experience and realized the real role of viewmodel after spending so much hours to solve coupling problems.
I think why CSLA matches PRISM very well is both framework targets use case driven approach. I often use Controller,nearly same concept as in the SCSF's workItemController as a use case manager and he manages view open and communication between various viewmodels in a use case. For dependancy injection container, MEF would be better than Unitity container because MEF included in .Net 4.0 and no need to add dependancy module such as Unity but it needs more learning curve if you don't have a experience yet. If you are first time in prism, then Unity is definitely easy to start. If you include Rx Extension,LINQ of event, in prism, it wud be more flexible in event aggregation.
I wish you may have a little help with my humble experience and poor english. Good luck.
Can you pls make like a demo app using those two (Prism and CSLA)
Would really appreciate.
Copyright (c) Marimer LLC