I am trying to set up an architectural model for a few associated projects which will all be built on an ASP.NET MVC2 (.NET 4) framework. Not sure of the best way to go here, as I’m still a bit of an ASP.NET newbie.
I’ll try to lay out a simplified but analogous description of what I’m trying to do. Long story as to why it has to be set up this way, but suffice to say it does.
So: There’s one central database and associated data models. Several different web apps will all use this data. It consists primarily of information about PEOPLE — names, contact info, age, etc. There is a simple web app built which accesses this system whose sole purpose is performing CRUD operations on the People data.
There are then multiple additional applications which build on the People data. For example, there’s an application for Group A which deals with salary and benefits. This information must be contained in a separate database from the People data, on a separate server. There is also an application for Group B which deals with hobbies and external interests; this information will be contained in yet another separate database on a separate server. You get the picture. There might be 20 groups, each with their own application on their own server with their own database. ALL of it will be ASP.NET MVC2 using MS-SQL as the database. Everyone will have access to the .DLL containing the data models and so on for the central data, to include in their Visual Studio solution(s).
What I want is for the code on the applications for the Groups’ applications to as simply as possible be able to perform something along the lines of JOIN operations (via LINQ) on the combination of their own data and the central data. Is this something that has an accepted Best Practice? Is it possible to just include the assembly for the central data models, and then just write code as if everything was part of the same model?
Many thanks.
Ended up using OData, which appears to work beautifully with LINQ. So far so good!