Remote Data Portals and Multiple applications

Remote Data Portals and Multiple applications

Old forum URL: forums.lhotka.net/forums/t/6925.aspx


sdavison posted on Monday, May 11, 2009

Hi!

The company I work for has created a very nice Smart Client application that uses CSLA (and a remote Data Portal).  This application spans several business units, and a lot of work has gone into the creation of Business Objects and Validation rules to keep everything in line.

Recently, however, we have started to have some needs pop up where it would be nice to re-use the Remote Data Portal as a service layer for other applications.  We are trying to avoid re-inventing the wheel, given that most of the functionality has been written into the Business Tier of the other application.

Has anyone had success in sharing the Data Portal between multiple applications?  The issue that we have been trying to get around is that of versioning.  We have strongly named assemblies, and if we promote a change to the Data Portal, then all consuming applications need to be recompiled as well to use the new version numbers, and to ensure the right version of the code.  It has also struck us that this is the wrong solution to the problem, but we have been unable to come up with a good solution for it.

The best that we've been able to come up with is creating a Web Service layer that meets the needs of all the applications, and use these CSLA business objects behind the Web Services.  It just seems like a fair amount of extra overhead.

Does anyone have any thoughts?  Am I trying to veer too far off the intended architecture of CSLA?

Thanks!

RockfordLhotka replied on Monday, May 11, 2009

I recommend creating a service layer that meets the needs of all the applications. Yes, it is extra work, but you'll be happier for it.

The data portal is an n-tier client/server technology, designed to transparently allow your application to talk to your application.

Using the data portal to allow some other application to talk to your application is just asking for trouble.

Inter-application communication is best handled using message-based models following a service-oriented architecture of some sort.

Copyright (c) Marimer LLC