Prism and RIA Services RRS feed

  • General discussion

  • I am starting this thread to for discussing combining Prism and RIA Services. I am going to keep this first post updated with the latest information as we learn more.

    Prism modules setup for on demand loading cannot be .NET RIA Services Class Libraries

    Prism modules that are being loaded on-demand are modified Silverlight Application projects modified to look like a class library. Silverlight Application project can only RIA Link to web application projects, not class libraries. You will need to have both a class library project and a seperate module project to turn a .NET RIA Services Class Library into a load on demand module.

    (The limitation that Application projects can't connect directly to a class library is an observation, I didn't see anything in the overview document that says this explicitly.)

    Friday, July 10, 2009 2:11 PM

All replies

  • I'm hoping Prism 3 will take RIA into considerations!
    Friday, July 10, 2009 2:30 PM

    I am not sure what you mean. I Just started a PRISM (silverlight) project with .Net RIA. My domain services are in a seperate RIA Class library pair ( XXX.Business.Web  & XXX.Business). This pair is linked via the RIA link. I have a Prism silverlight module XXX.Order.Module that adds a reference to the RIA client XXX.Business project. The module is currently not loaded on demand but I intend to do so. Do you mean loading this ondemand will not work?

    Monday, August 17, 2009 4:59 AM
  • No, you can load XXX.Order.Module on demand just fine. What you can't load on demand is XXX.Business since it is a class library. The Prism load on demand system requires each Module to be a Silverlight application project, not a class library. Since my business objects are module specific my project setup looks like this:

    <Module Name> : Visual Basic Silverlight Application, contains the Module, Views, and ViewModels.

    <Module Name>.Server : Server side C# class library with DomainService and EDMX

    <Module Name>.Domain : C# Silverlight class library, RIA Linked to server library and referenced by Module.

    The Domain class library is part of the <Module Name>.XAP so it is loaded on demand along with the Module.

    Monday, August 17, 2009 7:55 AM
  • The module is currently not loaded on demand but I intend to do so.

    According to the documentation, this means you give up out-of-the-browser mode....

    Monday, August 17, 2009 11:26 AM
  • Hi Colin, 

    Apologies for throwing this in here but do you know what the difference is between Prism and Caliburn? I did a quick Google when I found this post as I am trying to get my head around all this stuff also, and found these two different approaches to what seems to be a similar end result.

    Just to help others, the projects can be found here http://compositewpf.codeplex.com/ and http://caliburn.codeplex.com/

    What are the reasons for you choosing Prism over Caliburn? Any insight would be greatly appreciated.


    Tuesday, August 18, 2009 4:02 AM
  • Well, looking back thorugh the blog entries, Caliburn was developed first and the Caliburn developer was on the Prism advisory board. I think the two projects are complementary from what I am reading. Having used the old smart client CAB, I really appreciate the lightness and composibility of Prism. It is so easy to just only use what I want from Prism, I don't really need anything heavier. For example, Silverlight 3's navigation system overlaps with functionality in Prism. No problem, you just don't use that part of Prism. I think Caliburn is mostly the same way, so if you need a stronger action and command system than Prism has then you can pull in the action and command system from Caliburn.

    Tuesday, August 18, 2009 5:08 AM
  • Looks like someone on the RIA Services team needs to talk to the Prism team about why there are restrictions on the RIA Link.

    Tuesday, August 18, 2009 2:48 PM