тяжелые данные приложения silverlight vs mvc vs asp.net - PullRequest
0 голосов
/ 03 июля 2011

мы используем специально разработанное ERP-приложение более 4 лет, на самом деле были некоторые проблемы с дизайном, которые прямо сейчас влияли на производительность приложения.

на самом деле проблема в том, что это приложение может быть классифицировано как приложение для работы с большими данными, иначе бизнес-приложение.

Самая большая проблема плохого проектирования заключается в том, что мы получаем целые данные для определенного подразделения и назначаем их для элементов управления или сохраняем их в памяти (например, ArrayLists, Generic Lists) и предоставляем пользователю гибкость навигации. и полная скорость реакции приложения.

за первые 2 года использования мы не заметили проблему, но к концу этого периода мы получаем все больше жалоб на производительность приложения.

Мы использовали и продолжаем использовать ADO.NET с хранимыми процедурами, которые создаются для операций CRUD (Получить, Список, Удалить, Вставить, Обновить SP), поэтому, если мы собираемся разделять данные каждого года, мы должны перепроектировать эти автоматически сгенерированные SP с необходимыми модификациями на уровне доступа к данным, а также с тем фактом, что не было фактического разделения по уровням, мы не можем простым способом сделать эту модификацию, поэтому первое предстоящее решение - это создать некоторую базу данных улучшения, чтобы сбалансировать этот огромный трафик данных, но проблема вновь возникает уже около 6 месяцев.

поэтому мы думаем, что настало время исправить наши ошибки (очень позднее решение), но как мы могли это сделать? мы получаем следующие решения:

  • Используйте веб-приложение, а не приложение Windows, поэтому мы сможем использовать все возможности нашего сервера и минимизировать трафик для соединения

  • Перепроектируйте приложение так, чтобы оно заботилось о конце года, не получало все данные, использовало более качественную ORM, чем старый Fusion ADO.NET, но придерживалось оконных форм и того же приложения

и в соответствии с временными рамками (в некоторой степени ограничено), членами команды (2, оба имеют хороший опыт работы с окнами, веб-разработкой), я не могу сейчас принять решение, боюсь, что изменения в приложениях Windows может занять больше времени, чем ожидалось.

Можете ли вы дать мне совет?

Я использую C # 4.0, веб-формы ASP.NET, (новичок MVC).

1 Ответ

2 голосов
/ 03 июля 2011

Если сама база данных работает быстро, как вы указали в своем ответе на мой комментарий, то, как вы и предлагали, вы должны уменьшить объем данных, заполняющих DataSet.

Хотя ADO.NET использует «отключенную» модель, разработчик по-прежнему контролирует запрос выбора, который используется для заполнения каждой таблицы / отношения в наборе данных.Гипотетический пример: предположим, у вас есть 5000 клиентов в таблице CUSTOMERS в базе данных.Вы можете заполнить таблицу CUSTOMERS в вашем DataSet следующим образом:

             select * from CUSTOMERS order by customername

или как это:

            select id, customername from CUSTOMERS order by customername

Таблица заголовков заказов может быть заполнена следующим образом:

            create proc getOrderHeaders4Customer
            @customerid int
            as
            select * from ORDERHEADER where customerid = @customerid

то есть вам необходимо иметь текущего клиента в графическом интерфейсе, прежде чем заполнять отношение OrderHeaders, и вы будете получать данные о деталях заказа только тогда, когда пользователь нажимает на определенныйзаголовок заказа в графическом интерфейсе.Дело в том, что ADO.NET можно использовать для этого - вам не нужно отказываться от всего в приложении, чтобы быть более экономным с отключенным набором данных.

Сколько данных будет выбраноклиентом, и, что более важно, когда данные выбираются клиентом, полностью находится под контролем разработчика, независимо от того, является ли это Silverlight, WinForms или ASP.NET.Теперь, если ваше приложение ERP было неэффективным, эффективность модернизации может быть затруднена.Но вам не нужно отказываться от ADO.NET для достижения эффективности, и простой выбор другой технологии на уровне данных сам по себе не принесет вам эффективности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...