Я работаю в фирме, которая предоставляет определенные виды финансовых консалтинговых услуг в большинстве штатов США. В настоящее время у нас есть довольно простое приложение CRUD, которое управляет клиентами и информацией об активах и услугах, которые мы предоставляем для каждого из них. Это касается только фундаментальных точек данных и процессов, общих для всех местоположений - наименее общего знаменателя.
Теперь мы хотим реализовать поддержку отслеживания разрозненных точек данных и процессов, которые различаются в разных штатах, сохраняя при этом основную национально-ориентированную систему. Как это:
Стек, с которым я работаю, - это ASP.Net и SQL Server 2008. Национальное приложение - довольно простая вещь для веб-форм. Его уровень доступа к данным является оболочкой репозитория вокруг сущностей LINQ to SQL и datacontext. В настоящее время существует мало бизнес-логики, кроме операций CRUD, но их будет больше, когда будут представлены сложности каждого состояния.
Итак, как заставить осколки спутников ...
- Просто начните глядеть на функциональность и преследуйте большой шарик грязи
- Создание серии спутниковых приложений, которые повторно используют уровень доступа к данным, но в остальном являются автономными
- Инвестируйте (деньги и / или время) в механизм правил (в стиле Windows Workflow) и выделяйте уникальные биты для каждого состояния в виде отдельных наборов правил
- Инвестируйте (время) в инфраструктуру плагинов в виде MEF и реализуйте функциональность каждого состояния в виде плагина
- Что-то еще
Идеальный пользовательский интерфейс будет выглядеть как единое приложение, которое легко адаптирует свою презентацию и процессы в любом месте, с которым работает пользователь. Это особенно полезно, потому что некоторые пользователи работают с активами в нескольких состояниях. Итак, удар по второму.
У меня нет опыта работы с MEF или WF, поэтому мой вопрос в значительной степени состоит в том, является ли моя проблема типом проблемы, на которую она направлена. Они оба звучат так же, как и в случае с рекламой, но могут оказаться квадратным колышком для круглого отверстия.
Во всех случаях каждое состояние вводит новые точки данных, а не только новые процессы, поэтому я бы предположил, что уровень доступа к данным будет расти, чтобы приспособиться к добавлению новых таблиц и столбцов, но я также за альтернативы этому.
Редактировать: Я пытался придумать несколько примеров, которыми я мог бы поделиться. Возможно, что в одном штате мы представляем определенные юридические документы, касающиеся активов клиентов. У подачи есть атрибуты и рабочий процесс, которые отличаются от других состояний, которые могут требовать аналогичных заявок, а задействованные активы могут иметь совершенно другие атрибуты. Другие государства могут вообще не иметь сопоставимых заявок, в то время как другие могут иметь ряд возрастающих заявок, требующих знания дополнительных связанных сущностей, уникальных для этого штата.