Этот пост предназначен для начала более глубокого обсуждения одностраничных приложений для Интернета. Есть вопросы, на которые, кажется, нет четкого ответа в большинстве ресурсов по этой теме. Они в моей голове
- Авторизация и аутентификация. Поскольку все веб-приложение находится на клиенте, оно может обращаться к серверу в любой из своих функций, даже в тех, на которые у пользователя нет прав. Тот факт, что пользователь не может видеть меню, не мешает ему вызывать функции java-скрипта. Это легко обрабатывается в приложении MVC, например, с помощью контроллеров, которые проверяют права пользователя на определенную функцию, например, на основе файла cookie. Однако некоторые приложения SPA используют только один контроллер с Breeze или Web Api, что делает невозможным авторизацию на стороне сервера.
- Управление памятью на клиенте Для небольших примеров приложений это не проблема, но представьте себе приложение с сотнями экранов или приложение с одним экраном, которое извлекает тысячи записей в течение одного дня. При постоянном кэшировании можно представить большие проблемы с памятью, особенно на маломощных устройствах с небольшим объемом оперативной памяти, таких как телефоны или планшеты. Как группа разработчиков могла иметь SPA-маршрут без четкого представления об управлении памятью?
- Трехуровневое развертывание Некоторые ИТ-отделы никогда не допустят приложения со строкой подключения к базе данных, расположенной на интерфейсных веб-серверах. Каждая демонстрация SPA, которую я видел, структурирована именно так, включая Breeze или Web Api, если уж на то пошло.
- Ненавязчивая проверка. Это потребует от разработчиков использования частичных представлений и контроллеров MVC, а не только HTML-файлов, что, кажется, идет вразрез с концепциями SPA, в то же время предоставляя очень надежный способ легкого включения проверки и пользовательского интерфейса для его поддержки в веб-приложениях.
- Предоставление первичных целочисленных ключей в URL-адресе.
Это не запрещено в OWASP. В результате приложения SPA «кажутся» нацеленными на области с небольшими требованиями к безопасности и небольшим набором функций. Как вы думаете?
Спасибо.