Nano Hash - криптовалюты, майнинг, программирование

Одинаковая бизнес-логика для веб-приложения и мобильного клиента с использованием службы приложений Azure.

Я занимаюсь исследованием приложения, которому требуется веб-приложение, а также мобильное приложение, и я рассматриваю возможность использования службы приложений Azure.

В текущей реализации нам нужно написать одинаковую логику как в мобильном приложении, так и в веб-приложении. Я хочу использовать один и тот же репозиторий и базу данных для обеих конечных точек. Но я не хочу писать один и тот же код для бизнес-логики в двух разных местах.

Как я могу смешивать веб-приложение и мобильное приложение, используя один и тот же репозиторий, базу данных и бизнес-логику?

Если используется веб-API, я могу создать сервисный уровень, который можно использовать как в веб-API, так и в приложении MVC 5. Хочу аналогичную систему.


  • Расскажите нам подробнее о том, какое приложение вы хотите создать: приложение работает только на клиентском устройстве или в нем есть компонент на стороне сервера? Вам нужна яркая графика или всего несколько кнопок и текстовых полей? Задействована ли работа в сети? Многопоточность? 24.09.2016
  • Да, приложение работает на клиентском устройстве. Приложение можно использовать как из веб-приложения, так и из мобильного приложения. 24.09.2016
  • Не могли бы вы рассказать нам больше о приложении? Это что-то простое, например, калькулятор? Что-то сложное, например, Microsoft Outlook? Игра типа тетрис? 3D-шутер? Офисное приложение? Текстовый редактор, например блокнот? Пожалуйста, поверьте мне - это полностью зависит от того, чего вы пытаетесь достичь. 24.09.2016
  • Это управляемое данными приложение, в котором пользователь вводит свою повседневную активность и создает общедоступные форумы, где администратор модерирует форум, любой пользователь может задавать вопросы и отвечать на них, пользователь загружает изображения и т. д. 24.09.2016
  • В случае приложения, управляемого данными, ответ Рассела Янга является хорошим. Я бы рекомендовал многоуровневую архитектуру с разделением представления (UI) и бизнес-логики (сервисы). 24.09.2016
  • Спасибо за ваше время и предложение. 24.09.2016
  • Давайте продолжим обсуждение в чате. 24.09.2016

Ответы:


1

Вы уже получили свой ответ, т.е. использовать API. Если вы структурируете свое решение в виде несвязанной архитектуры, вы сможете написать столько внешних интерфейсов, сколько захотите, повторно используя одни и те же серверные службы. Считайте веб-приложение и мобильное приложение внешними интерфейсами — они должны быть уровнями представления только с минимальной логикой для управления пользовательским интерфейсом и без бизнес-логики. Типичное решение, которое разделяет таким образом, будет выглядеть так, как показано ниже. Используйте интерфейсы для описания API, чтобы вы могли легко имитировать, реорганизовывать или перерабатывать серверные службы, не влияя на приложения, которые используют API.

набросок несвязанной архитектуры

  • Веб-приложение
  • Мобильное приложение
  • Проект API (рекомендуется WebAPI/REST)
  • Интерфейсы к сервисам
  • Бизнес-услуги (многоразовые, долговечные, надежные и хорошо протестированные/проверяемые)
  • Репозиторий (для абстрагирования соединения с БД)
  • Другие абстракции (веб-сервисы, другие сервисы/системы)

Таким образом, ваша бизнес-логика может быть написана один раз, и перед ней будут интерфейсы и/или REST API, которые вызываются вашими отдельными веб-приложениями/мобильными приложениями. Если вы используете веб-API в качестве механизма для присоединения приложений к службам, у вас будет одно физическое развертывание ваших бизнес-служб; если вы просто используете интерфейсы, вам нужно будет развернуть свои двоичные файлы в каждом экземпляре (веб-приложения, мобильные приложения и т. д.)

24.09.2016
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..