У меня возникли проблемы с решением, по какому пути идти ...
У меня есть это приложение, которое состоит из одного базового проекта и одного проекта для приложения, проект приложения содержит код, предназначенный для конкретной системы, системного приложения.
Базовый проект - это абстрактный класс, содержащий абстрактные методы, которые реализует каждый системный проект приложения.
Дело в том, что проекты системных приложений могут / будут иметь специфичные для клиента настройки, и я не хочу помещать этот код в сборку системных приложений.
Я не уверен, с чего начать или как сделать это таким образом, чтобы это было надежно для будущего, легко обслуживалось, и где я мог бы добавить более специфичный для клиента код, не переписывая сборку системного приложения.
Идея состоит в том, чтобы иметь один базовый проект (dll), один проект системного приложения для каждой системы (dll) и затем вносить специфические для клиента корректировки в один уникальный проект клиента (dll).
Rob.Core.dll
Rob.Application.BigSystem.dll
Rob.Application.BigSystem.Customer.BigCompany.dll
Rob.Core.dll - базовый абстрактный проект.
Rob.Application.BigSystem.dll является системным проектом ( BigSystem ) и происходит от Rob.Core.dll .
Rob.Application.BigSystem.dll должен проверить, есть ли у текущего клиента, BigCompany , какие-либо уникальные настройки и, если это так, загрузить Rob.Application.BigSystem. Customer.BigCompany.dll сборка, которая может содержать переопределения методов или расширений объектов, дополнительные поля и т. Д.
Что ж, пора подвести итоги ...
Я не уверен, каким путем идти сюда, я мог бы создать один базовый проект (абстрактный), и из каждого системного конкретного проекта вытекает из этого, кажется, это способ начать.
Затем создайте новый проект для каждого клиента, который имеет набор уникальных настроек и просто переопределите все методы в конкретном проекте системы.
Тогда проблема в том, какой проект выполняется во время выполнения? Системный проект или уникальный проект заказчика?
Если системный проект выполняется, как он должен загружать все корректировки клиента (если они есть, не каждый клиент получил уникальные корректировки)?
Это довольно большой вопрос, но я надеюсь на некоторые советы, которые помогут мне написать архитектуру.
С наилучшими пожеланиями
Роберт