I came across the following questions at work, and I do not have the experience or knowledge to answer them, I hope that some of you are the wisest people can point me in the right direction, any answers will be very grateful!
Scenario
We have two aspects of business using separate databases, human resources and operational areas (Homecare).
Human resources track company employees, shift patterns, absence, payment, etc. Homecare keeps track of customer information, home visits, dates of visits, and the person in charge.
These two systems are separate and are currently in the process of finding ways to integrate them.
In addition, we looked at how to organize our code, which examines these two databases, into reusable, organized libraries.
We have three applications that reuse HumanResources.dll, which are responsible for communication with the context of EF 4 objects contained in the library. The context of the object is almost a mirror image of the database in its current form.
Questions
It was going to add a fourth application that will use the data in the HR database.
We:
Create a new EF data model responsible for providing information that only the application is required, while duplicating some common objects such as Employee.
OR
Add new entities / tables to an already large model and accept it's going to become big.
In the longer term, we need to join the Shift Pattern information in the HR database for client visits in the database of operating areas (Homecare) in the 5th application.
We got an idea of what we can do; weve come up with the following:
Create a layer that is between the Context of the HumanResources object and the Context of the Homecare object, responsible for combining the two datasets together.
Are there any other approaches that would benefit us?