Afzaal Ahmad Zeeshan
Цитата:
asp.net веб-приложение, которое имеет много пользователей, работающих одновременно
(около 500 пользователей)
Это не должно быть проблемой в среднем ASP.NET веб-приложение. Ваше приложение должно работать просто отлично.
Цитата:
каждая страница имеет много шагов и каждый шаг должен получить данные из базы данных
Опять же, это тоже прекрасно. Просто запросите таблицу базы данных и отобразите данные на странице. Если вы беспокоитесь о производительности, то попробуйте кэшировать данные, если вы чувствуете, что данные могут быть действительны в течение 10-15 минут. Но из-за следующей части вашего вопроса я сомневаюсь в этом.
Цитата:
затем сохраните все данные со всех шагов в базе данных
Для этого шага вам нужно будет использовать
TRANSACTION
объект в SQL. Поскольку несколько пользователей (500, согласно вашему вопросу) делают изменения одновременно, транзакция должна выполняться только в том случае, если все изменения (в каждой таблице) были сделаны. Если какое-либо изменение нарушает согласованность данных, то оно должно завершиться неудачей.
Транзакции (Transact-SQL) - SQL Server | Microsoft Docs[
^]
Помимо транзакций, вы должны изучить хранимые процедуры, нет большой разницы, когда речь заходит о выполнении запроса вручную или вызове хранимой процедуры с запросом —
некоторые преимущества кэширования для механизма запросов.
Хранимые процедуры (компонент Database Engine) - SQL Server | Microsoft Docs[
^]
Цитата:
Я попытался загрузить все данные в DOM и нарисовать каждый шаг с помощью JavaScript
Используйте фреймворк front-end для этого подхода и загружайте данные по частям. React framework может быть реализован с каждой страницей как отдельный компонент, который загружает свежую копию данных для состояния пользовательского интерфейса.
Цитата:
но страница была медленной
Возможно, браузер был недостаточно хорош, возможно, машина была медленной или ресурсы были низкими. Просто потому, что ваша страница была медленной, не означает, что код был неправильным — общее предложение состоит в том, чтобы никогда не загружать все данные на веб-странице &madsh; вы должны заглянуть в инструменты браузера, чтобы проверить, как работает страница.
Цитата:
кроме того у меня есть некоторые проблемы при отправке всех данных страницы еще раз в базу данных
Затем не нажимайте данные сразу, загружайте данные по частям. Возможно, выполнить один запрос за раз.
Вы уверены, что ваша машина достаточно мощна, чтобы поддерживать компонент database engine, веб-сервер и сеанс отладки в браузере?
MadMyche
Таким образом, вы знаете, что проблема заключается в JS на странице; но вы помечаете все это так, как будто проблемы находятся внутри ASP.NET а SQL?
Afzaal Ahmad Zeeshan
Как я уже сказал, Попробуйте использовать front-end framework и распределить работу между различными компонентами, которые загружают данные по мере необходимости и отбрасывают их (или сохраняют в API localStorage) по мере необходимости.
Загрузка полного пакета данных в один экземпляр DOM - это не очень хорошо. Под этим я подразумеваю рендеринг данных в DOM, просто загрузка и хранение пакета в памяти - это совсем другая история.