Общие сведения о разработке корпоративных приложений
Эта электронная книга была опубликована весной 2017 года и с тех пор не обновлялась. В книге многое остается ценным, но некоторые материалы устарели.
Независимо от платформы, разработчики корпоративных приложений сталкиваются с несколькими проблемами:
- Требования к приложениям, которые могут меняться со временем.
- Новые возможности и проблемы для бизнеса.
- Постоянная обратная связь во время разработки, которая может значительно повлиять на область и требования приложения.
Учитывая это, важно создавать приложения, которые можно легко изменять или расширять с течением времени. Проектирование для такой адаптируемости может быть затруднено, так как для этого требуется архитектура, позволяющая независимо разрабатывать и тестировать отдельные части приложения в изоляции, не затрагивая остальную часть приложения.
Многие корпоративные приложения достаточно сложны, чтобы требовать нескольких разработчиков. Решение о том, как спроектировать приложение, может оказаться сложной задачей, чтобы несколько разработчиков могли эффективно работать с разными частями приложения независимо друг от друга, обеспечивая при этом, чтобы эти части были органично объединены при интеграции в приложение.
Традиционный подход к проектированию и созданию приложения приводит к тому, что называется монолитным приложением , где компоненты тесно связаны без четкого разделения между ними. Как правило, такой монолитный подход приводит к тому, что приложения трудно и неэффективны в обслуживании, так как может быть трудно устранить ошибки, не нарушая другие компоненты в приложении, а также добавить новые функции или заменить существующие.
Эффективным средством решения этих проблем является разделение приложения на дискретные, слабо связанные компоненты, которые можно легко интегрировать в приложение. Такой подход предлагает несколько преимуществ:
- Она позволяет разрабатывать, тестировать, расширять и поддерживать отдельные функциональные возможности различными пользователями или командами.
- Он способствует повторному использованию и четкому разделению проблем между горизонтальными возможностями приложения, такими как проверка подлинности и доступ к данным, и вертикальными возможностями, такими как бизнес-функции конкретного приложения. Это упрощает управление зависимостями и взаимодействиями между компонентами приложения.
- Это помогает сохранить разделение ролей, позволяя разным пользователям или командам сосредоточиться на конкретной задаче или части функций в соответствии с их опытом. В частности, он обеспечивает более четкое разделение между пользовательским интерфейсом и бизнес-логикой приложения.
Однако существует множество проблем, которые необходимо решить при секционирование приложения на дискретные, слабо связанные компоненты. К ним относятся следующие объекты.
- Решение о том, как обеспечить четкое разделение проблем между элементами управления пользовательского интерфейса и их логикой. Одним из наиболее важных решений при создании корпоративного Xamarin.Forms приложения является размещение бизнес-логики в файлах кода программной части или создание четкого разделения проблем между элементами управления пользовательского интерфейса и их логикой, чтобы сделать приложение более пригодным для обслуживания и тестирования. Дополнительные сведения см. в разделе Model-View-ViewModel.
- Определение того, следует ли использовать контейнер внедрения зависимостей. Контейнеры внедрения зависимостей сокращают связь зависимостей между объектами, предоставляя возможность создавать экземпляры классов с внедренными зависимостями и управлять их временем существования на основе конфигурации контейнера. Дополнительные сведения см. в разделе Внедрение зависимостей.
- Выбор между предоставляемыми платформой событиями и слабосвязанным обменом данными на основе сообщений между компонентами, которые неудобно связывать по ссылкам на объекты и типы. Дополнительные сведения см. в статье Общие сведения о взаимодействии между слабосвязанными компонентами.
- Выбор способа навигации между страницами, включая вызов навигации и расположение логики навигации. Дополнительные сведения см. в разделе Переходы.
- Определение способа проверки введенных пользователем данных на правильность. Решение должно включать в себя проверку введенных пользователем данных и уведомление пользователя об ошибках проверки. Дополнительные сведения см. в разделе Проверка.
- Выбор способа проверки подлинности и защиты ресурсов с помощью авторизации. Дополнительные сведения см. в разделе Проверка подлинности и авторизация.
- Определение способа доступа к удаленным данным из веб-служб, включая способы надежного извлечения данных и кэширования данных. Дополнительные сведения см. в разделе Доступ к удаленным данным.
- Выбор способа тестирования приложения. Дополнительные сведения см. в разделе Модульное тестирование.
В этом руководстве содержатся рекомендации по этим проблемам, а также основные шаблоны и архитектура для создания кроссплатформенного корпоративного приложения с помощью Xamarin.Forms. Руководство призвано помочь в создании адаптируемых, поддерживаемых и тестируемых кодов путем решения распространенных Xamarin.Forms сценариев разработки корпоративных приложений и разделения задач представления, логики представления и сущностей с помощью поддержки шаблона Model-View-ViewModel (MVVM).
Образец приложения
Это руководство содержит пример приложения eShopOnContainers, который является интернет-магазином, который включает следующие функции:
- Проверка подлинности и авторизация в серверной службе.
- Просматривая каталог рубашки, кофейные кружки и другие маркетинговые товары.
- Фильтрация каталога.
- Упорядочивание элементов из каталога.
- Просмотр журнала заказов пользователя.
- Настройка параметров.
Пример архитектуры приложения
На рисунке 1-1 представлен общий обзор архитектуры примера приложения.

Рис. 1-1. Высокоуровневая архитектура eShopOnContainers
Пример приложения поставляется с тремя клиентскими приложениями:
- Приложение MVC, разработанное с помощью ASP.NET Core.
- Одностраничное приложение (SPA), разработанное с помощью Angular 2 и Typescript. Такой подход для веб-приложений позволяет избежать выполнения кругового пути к серверу с каждой операцией.
- Мобильное приложение, разработанное с Xamarin.Formsпомощью , которое поддерживает iOS, Android и универсальная платформа Windows (UWP).
Пример приложения включает следующие серверные службы:
- Микрослужба удостоверений, использующая ASP.NET Core Identity и IdentityServer.
- Микрослужба каталога, которая является управляемой данными службой создания, чтения, обновления, удаления (CRUD), которая использует базу данных SQL Server с помощью EntityFramework Core.
- Микрослужба заказов, которая является управляемой доменом службой, использующими шаблоны проектирования на основе домена.
- Микрослужба корзины— управляемая данными служба CRUD, использующая кэш Redis.
Эти серверные службы реализуются как микрослужбы с помощью ASP.NET Core MVC и развертываются как уникальные контейнеры в пределах одного узла Docker. В совокупности эти серверные службы называются эталонным приложением eShopOnContainers. Клиентские приложения взаимодействуют с внутренними службами через веб-интерфейс REST. Дополнительные сведения о микрослужбах и Docker см. в разделе Контейнерные микрослужбы.
Мобильное приложение
В этом руководстве основное внимание уделяется созданию кроссплатформенных корпоративных приложений с помощью Xamarin.Formsи в качестве примера используется мобильное приложение eShopOnContainers. На рисунке 1-2 показаны страницы из мобильного приложения eShopOnContainers, которые предоставляют описанные выше функциональные возможности.

Рис. 1-2. Мобильное приложение eShopOnContainers
Мобильное приложение использует серверные службы, предоставляемые эталонным приложением eShopOnContainers. Однако его можно настроить для использования данных из макетных служб для тех, кто хочет избежать развертывания внутренних служб.
Мобильное приложение eShopOnContainers реализует следующие Xamarin.Forms функции:
- XAML
- Элементы управления
- Привязки
- Преобразователи
- стили.
- Анимации
- Команды
- Расширения функциональности
- Триггеры
- Произведенный эффект
- Пользовательские отрисовщики
- MessagingCenter
- Пользовательские элементы управления
Кроме того, для некоторых классов в мобильном приложении eShopOnContainers предоставляются модульные тесты.
Решение для мобильных приложений
Решение мобильного приложения eShopOnContainers упорядочивает исходный код и другие ресурсы в проекты. Все проекты используют папки для упорядочения исходного кода и других ресурсов по категориям. В следующей таблице перечислены проекты, составляющие мобильное приложение eShopOnContainers.
| Проект | Описание |
|---|---|
| eShopOnContainers.Core | Этот проект представляет собой проект переносимой библиотеки классов (PCL), содержащий общий код и общий пользовательский интерфейс. |
| eShopOnContainers.Droid | Этот проект содержит конкретный код Android и является точкой входа для приложения Android. |
| eShopOnContainers.iOS | Этот проект содержит код iOS и является точкой входа для приложения iOS. |
| eShopOnContainers.UWP | Этот проект содержит универсальная платформа Windows (UWP) кода и является точкой входа для приложения Windows. |
| eShopOnContainers.TestRunner.Droid | Этот проект является средство выполнения тестов Android для проекта eShopOnContainers.UnitTests. |
| eShopOnContainers.TestRunner.iOS | Этот проект является средство выполнения тестов iOS для проекта eShopOnContainers.UnitTests. |
| eShopOnContainers.TestRunner.Windows | Этот проект является универсальная платформа Windows средство выполнения тестов для проекта eShopOnContainers.UnitTests. |
| eShopOnContainers.UnitTests | Этот проект содержит модульные тесты для проекта eShopOnContainers.Core. |
Классы из мобильного приложения eShopOnContainers можно повторно использовать в любом Xamarin.Forms приложении с минимальными изменениями или без изменений.
Проект eShopOnContainers.Core
Проект PCL eShopOnContainers.Core содержит следующие папки:
| Папка | Описание |
|---|---|
| Анимации | Содержит классы, позволяющие использовать анимацию в XAML. |
| Расширения функциональности | Содержит поведения, доступные для классов просмотра. |
| Элементы управления | Содержит пользовательские элементы управления, используемые приложением. |
| Преобразователи | Содержит преобразователи значений, которые применяют пользовательскую логику к привязке. |
| Произведенный эффект | Содержит EntryLineColorEffect класс , который используется для изменения цвета границы определенных Entry элементов управления. |
| Исключения | Содержит пользовательский ServiceAuthenticationException объект . |
| Расширения | Содержит методы расширения для VisualElement классов и IEnumerable . |
| Вспомогательные методы | Содержит вспомогательные классы для приложения. |
| Модели | Содержит классы моделей для приложения. |
| Свойства | Содержит файл метаданных сборки AssemblyInfo.cs .NET. |
| Службы | Содержит интерфейсы и классы, реализующие службы, предоставляемые приложению. |
| Триггеры | Содержит BeginAnimation триггер, который используется для вызова анимации в XAML. |
| Проверки | Содержит классы, участвующие в проверке входных данных. |
| Модели представлений | Содержит логику приложения, доступную для страниц. |
| Представления | Содержит страницы для приложения. |
Проекты платформы
Проекты платформы содержат реализации эффектов, пользовательские реализации отрисовщика и другие ресурсы для конкретных платформ.
Итоги
Кроссплатформенные средства и платформы разработки мобильных приложений Xamarin предоставляют комплексное решение для мобильных клиентских приложений B2E, B2B и B2C, предоставляя возможность совместного использования кода на всех целевых платформах (iOS, Android и Windows) и помогая снизить общую стоимость владения. Приложения могут совместно использовать свой пользовательский интерфейс и код логики приложения, сохраняя при этом собственный внешний вид платформы.
Разработчики корпоративных приложений сталкиваются с рядом проблем, которые могут изменить архитектуру приложения во время разработки. Поэтому важно создать приложение, чтобы его можно было изменять или расширять с течением времени. Проектирование для такой адаптируемости может быть трудным, но обычно включает секционирование приложения на дискретные, слабо связанные компоненты, которые можно легко интегрировать в приложение.
Связанные ссылки
- Скачать электронную книгу (2 МБ PDF)
- eShopOnContainers (GitHub) (пример)
Разработка enterprise-приложений
Мы обладаем обширным опытом в разработке iOS, Android и кросс-платформенных приложений. Наше инновационное и проверенное решение обеспечивает плавную координацию и последовательность различных процессов вашего бизнеса
Наш процесс разработки Enterprise-приложений
Разработка enterprise-приложений включает множество итераций для бесперебойной работы вашего продукта. Наша разработка enterprise-приложений на заказ включает следующие этапы:
Требования
Анализ технических требований, бизнес идеи и четкое формулирование целей
Разработка
Дизайн и разработка мобильных приложений для Андроид / iOS, а также кросс-платформенных решений
Тестирование
Для гарантии высокого качество продуктов мы применяем ручное и автоматизированное тестирование
Публикация приложений
Помогаем с приобретением аккаунтов для публикации приложений в маркетах, публикуем, проводим релизы
Поддержка
Техническое обслуживание инфраструктуры. Устранение неполадок, если клиент сообщает о какой-либо ошибке

Преимущества разработки enterprise приложений у нас
Посмотрите, какие преимущества вы можете получить, воспользовавшись нашими услугами по разработке enterprise приложений:
Повышение вовлеченности сотрудников
Вы можете сделать общение в команде более эффективным, что повлечет за собой высокую производительность сотрудников
Автоматизация процессов
Вы можете ускорить внутренние процессы и свести к минимуму вмешательство человека в разработку enterprise-приложений
Снижение затрат
Наняв нашу компанию по разработке enterprise мобильных приложений, вы получите высококачественное приложение без скрытых платежей
Поддержание гибкости
Обсуждайте, внедряйте и проверяйте инновационные идеи молниеносно, чтобы оставаться конкурентоспособными на постоянно меняющемся рынке
Наши услуги с разработки-enterprise приложений
Разработчики Stfalcon используют проверенные отраслевые методы и подходы к разработке enterprise приложений для предоставления лучших услуг для различных бизнес-потребностей. Благодаря хорошо продуманной системной архитектуре и качеству кода мы можем достичь этой цели
iOS
Разрабатываем нативные мобильные приложения для iOS. Внедряем алгоритмы машинного обучения, авторизацию Touch ID или Face ID, интегрируем Apple Pay в мобильные приложения
Android
Разрабатываем нативные мобильные приложения для Android. У нашей команды есть опыт в области GPS-слежения и реализации синхронизации в реальном времени, а также в интеграции с платежными системами или другими сервисами
Cross-platform
Разрабатываем кроссплатформенные приложения. Создаем приложения, полностью ориентированные на потребности клиента, которые могут работать на нескольких платформах устройств
Backend
Строим инфраструктуру вашего мобильного приложения, создавая бизнес-логику и API-коммуникации
Технологии разработки Enterprise приложений
Стек технологий разработки для iOS
Native iOS
Инструменты
Crashlist Firebase
Cocoa Pods
Стек технологий разработки для Андроид
Native Android
CI/CD systems
Dependency Injection
Kotlin Multiplatform Mobile
Инструменты
Android studio
Kotlin Coroutine
Стек технологий для кросс-платформенной разработки
Факты о Stfalcon
Чем мы можем вам помочь?
Наши проекты

Новая Почта
Лидер экспресс-доставки в Украине. Работаем с 2016 года
Мы разработали многокомпонентное и многофункциональное приложение для Новой Почты. Мы использовали передовые технологии, чтобы спроектировать личный кабинет, разработать интуитивно понятный интерфейс и интегрировать API Новой Почты.
Мы значительно улучшили существующий Личный кабинет клиента, гибкость полученного решения позволила нам вывести пользовательский опыт на новый уровень.
Павел Еременко
Руководитель отдела UX в Новая Почта
MeinFernbus (now Flixbus)
Разработка программной части и дизайн сайта для крупнейшей автобусной компании c Германии
Команда обратилась к Stfalcon с задачей интегрировать еще один канал продаж и веб-интерфейс. В качестве решения мы разработали интерактивное приложение с тремя основными разделами: Станция, Бронирование, Информация. Таким образом, пользователи могут найти всю запрашиваемую информацию в несколько кликов и без регистрации.
Мы смогли наладить такую работу, в которой процесс разработки в значительной мере решает бизнес-проблемы, и не создает новые. Это очень ценное качество, когда разрабатываешь стартап.

Алексей Колупаев
CTO в MeinFernbus


SmartSeeds
Онлайн-платформа для автоматизированной доставки сельскохозяйственных грузов. Компания предлагает логистические решения для грузовладельцев и грузоперевозчиков
Мы использовали Uber-like технологии для разработки приложения для SmartSeeds. Это позволило упростить и систематизировать поиск перевозчиков и уменьшить бюрократические препоны с логистикой.
Что такое enterprise приложения?
Здравствуйте. Объясните пожалуйста, что такое enterprise приложения? Какие задачи они выполняют? И самое главное, почему для enterprise выбирают такие языки как java или c#? Почему нельзя например писать enterprise на php или python?
- Вопрос задан более трёх лет назад
- 14499 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 3
Сергей Горностаев @sergey-gornostaev
Седой и строгий
- Большая и сложная кодовая база;
- Высокие требования по надёжности и производительности;
- Длительный срок эксплуатации.
Ответ написан более трёх лет назад
Нравится 21 1 комментарий
Почему не сделают строгую типизацию для PHP?

СадоМазо Админ, флудер, троль.
Объясните пожалуйста, что такое enterprise приложения?
Приложения решающие конкретную, узкую бизнес задачу или общирную но оно везде, прям аж вообще.
Короч ПО для BigBuisness.
почему для enterprise выбирают такие языки как java или c#
Не выбирают а по большей части тянут легаси с лохматых 90-х.
Ну и джава программисты обходятся дёшево.
Почему нельзя например писать enterprise на php или python?
Да ради бога, почему нельзя то?
Берите и пишите, но только не путайте WEB сервис с гуёй с которой работать предпенсионерке 🙂
Ответ написан более трёх лет назад
Нравится 5 9 комментариев

Не выбирают а по большей части тянут легаси с лохматых 90-х.
Особенно это относится к C# (который в принципе появился в 2000 году, по мнению вики) который в интерпрайз пришел в середине «нулевых». И таких «советчиков» тут сотни.
Польза Enterprise-приложений, как выбрать свое
Что выбрать Excel-таблицы, и Enterprise-системы, что дает бизнесу Enterprise-система. Как правильно выбрать приложение. Услуги IT-компании Nix Solutions.
Реклама. ООО «АГРОПРОМЫШЛЕННЫЙ ХОЛДИНГ «ДОРОНИЧИ» ИНН 4345377799 erid: 2SDnje5NRur
Многие компании используют в своей работе и Excel-таблицы, и Enterprise-системы. Что лучше, каждая компания решает сама. В этой статье мы расскажем, как именно Enterprise-приложения могут облегчить бизнес-процессы и сделать их наиболее эффективными.
Цель Enterprise-программ
- CRM – контроль каналов коммуникации;
- EAM — моделирование активов компании;
- BPM — визуализация и автоматизация бизнес-процессов;
- ERP — планирование ресурсов предприятия;
- HRM — набор сервисов для управления персоналом (поиск, найм, обучение сотрудников);
- KM — документальная база;
- BI — аналитика и статистика.
Что подходит вашей компании
Из всего, что предложено на рынке, необходимо выбрать именно те Enterprise-программы, которые подходят вашему бизнесу. При подборе Энтерпрайз-программы следует учитывать такие факторы:
- Зрелость и масштабность вашего бизнеса. Для молодых компаний готовые Enterprise-решения помогут организовать многие бизнес-процессы. Крупные компании нуждаются же в кастомных решениях.
- Подходит ли программа под ваши задачи. Если она не решает всех задач, требуется разработать индивидуальную программу.
- Удобность работы с выбранным приложением. Чтобы понять, удобно ли пользоваться приложением, специалисты рекомендует запросить у разработчика демо-версию.
- Стоимость продукта. ПО для крупного бизнеса может стоить достаточно дорого. То, что по цене подходит для гигантов, не подойдет для среднего и малого бизнеса, но и такие приложения существуют. Тарифный план зависит от количества модулей, компонентов и программ.
- Возможность масштабируемости. Необходимо выбирать программы, которые можно дорабатывать.
- Безопасность. В облачных решениях за безопасность отвечают Hardware и Software. Сохранность данных можно взять и на себя, тогда можно установить On-premise.
С помощью Enterprise-программы для сотрудников вашей компании будут созданы все условия для продуктивной работы в ИТ-среде.
При выборе того или иного программного сервиса необходимо учесть решаемость поставленных перед системой задач и свои финансовые возможности. Разобраться во всех нюансах подбора Enterprise-приложения помогут специалисты IT-команды NIX Solutions. Ваша организация может как взять готовое решение, так и заказать разработку индивидуального Enterprise-проекта. Ознакомиться с портфолио специалистов и отзывами клиентов можно на странице NIX Solutions Reviews.