Я работаю над небольшой командой, разрабатывающей систему управления процессами, которая будет использоваться несколькими разными клиентами в той же отрасли. Цель системы и требования высокого уровня для клиентов очень похожи. Однако, как и ожидалось, как только мы начали углубляться в свои индивидуальные потребности, мы получили довольно обширную настройку, необходимую каждому индивидуальному клиенту, включающему практически все, включая данные, формы ввода, валидацию, рабочий процесс, отчетность и т.д.
Добавив все это, мы поняли, что архитектура с несколькими арендаторами, вероятно, будет лучшим подходом, чтобы это произошло. Бэкэнд намного дальше, чем дизайн, и RESTful api in.net строится с ServiceStack, RavenDB и Sql Server. Любой, кто знаком с ServiceStack, будет знать, что он чрезвычайно гибкий и построенный с учетом вместимости - это сделало внедрение многопользовательского REST api намного проще, чем мы ожидали. Мы используем очень простое соглашение для идентификации и авторизации арендаторов, проверяя значение в сеансе, принадлежащем каждому запросу (все запросы, связанные с арендатором, должны быть аутентифицированы, чтобы всегда существовать сеанс). Таким образом, в настоящее время практически нет необходимости отслеживать или передавать идентификатор арендатора от клиента в любом URL-адресе маршрута. Итак, для бэкэнд-апи мы достигли нашей цели разработки единой базы кода, поддерживающей разных клиентов, с хорошим количеством повторного использования кода и гибкостью для индивидуальной настройки/расширения функциональности арендатора по мере необходимости.
Таким образом, с бэкэндом, в основном в квадрате, мы обратили наше внимание на интерфейс, где мы действительно пытаемся реализовать подобный подход с несколькими арендаторами в AngularJS. Отчасти проблема заключается в том, что мы относительно новичок в angular. У нас есть опыт создания одноцелевых приложений с использованием стандартного "шаблона папок", но когда мы смотрим на наши требования многопользователей, мы действительно пытаемся связать все вместе (общая структура проекта/маршруты/представления) для поддержки одного и того же мульти -назначенные цели дизайна в AngularJS, которые мы достигли с помощью бэкэнд (единая база кода, поддерживающая повторное использование, гибкость и настройку). шаблон модуля кажется отличной возможностью "подключать" пользовательскую функциональность для каждого арендатора, но большая вещь, которую мы все еще не видим, - это общий подход к архитектуре что дает нам единую кодовую базу AngularJS, поддерживающую упомянутые выше цели. Могут ли любые профили AngularJS помочь нам преодолеть горб и рекомендовать здесь подход?
Спасибо!