locked
n-tier application frameworks. RRS feed

  • Question

  • As a starting point I do understand that using persistence frameworks such as EF makes things easier because it allows us to work with entire object graphs instead of standalone entities.  This is possible because there is the concept of a context that tracks changes being made and then persists the entire object graph.

    Now, if I understood correctly, I should also be using frameworks such as WCF Data Services / WCF RIA for building an n-tier application.  The idea is to simplify things and work with disconnected object graphs on the client side and make it appear as though they are being tracked by a context (ex DbContext)

    However, it appears there are two separate frameworks from MS (WCF Data Services and WCF RIA Services)  both of which appear to support tracking changes to disconnected data on the client and then pushing those changes as a single object graph back to the data base)   

    Is my understanding of the above correct?  Do you think one of these two frameworks is more promising in terms of being supported in the future by Microsoft and that I should be looking more into?

    Wednesday, November 28, 2012 10:18 AM

Answers

  • Well, both WCF Ria Services and WCF Data Services supports tracking changes to disconnected data but i think WCF Data Services is more mature and powerful. There are several benefits using WCF Data Services as you can easily expose data in a RESTful way and its more loosely coupled as compare to WCF Ria Services.

    Ovais Mehboob

    • Marked as answer by DoWorkAync Thursday, December 20, 2012 11:16 AM
    Wednesday, November 28, 2012 12:39 PM

All replies

  • Well, both WCF Ria Services and WCF Data Services supports tracking changes to disconnected data but i think WCF Data Services is more mature and powerful. There are several benefits using WCF Data Services as you can easily expose data in a RESTful way and its more loosely coupled as compare to WCF Ria Services.

    Ovais Mehboob

    • Marked as answer by DoWorkAync Thursday, December 20, 2012 11:16 AM
    Wednesday, November 28, 2012 12:39 PM
  • I have a long standing doubt about how useful it is to track changes if you are using a disconnected architecture (such as the web). Obviously there is a benefit and there are situations where it is useful. But the last time I dug into it, I wasn't impressed about how the frameworks resolve the changes. There are a number of options to choose but, for a typical web site, the majority seem to involve going back the persistance store and reloading the object in order to compare it. I have my doubts about the performance characteristics of such a pattern vs. a boring old pessimistic scheme. For me the advantage comes from tacking identity when you have a number of sources changing the same items. But that probably isn't a typical scenario. Another one of, "it depends", but I would recommend you look at matching your requirements to the implementation rather than simply picking a technology and shoe-horning the requirement to it.


    http://pauliom.wordpress.com

    Thursday, November 29, 2012 8:55 AM
  • In my case I have made the decision to give development productivity a higher priority than application performance... in spite of that, and even working with a framework like RIA Services, building a n-tier application does seem to be slow and painful.   Sometimes I wonder if the remote access technologies (like App-V, Citrix etc) isn't a temptation to just built small scale applications as a single tier hosted application and have the client access it remotely !

    Thursday, December 20, 2012 11:20 AM