передовой опыт: общий веб-метод загрузки данных asmx или мульти-веб-методы - PullRequest
1 голос
/ 03 апреля 2011

Мне интересно, какой подход лучше с точки зрения производительности, лучше ли использовать один метод веб-службы для загрузки данных, передавая имя и ключи таблицы базы данных, или лучше использовать отдельный метод для каждой таблицы базы данных!зная, что я использую .net asmx через запросы ajax.

очевидно, что один метод лучше с точки зрения ОО, поскольку у него один тип функции «загрузка данных», но как насчет производительности?На это влияет IIS или нет?также лучше сделать мульти-веб-сервисы «asmx files» или просто один!

Ответы [ 3 ]

0 голосов
/ 05 апреля 2011

Сервисы, как правило, несут ответственность за раскрытие бизнес-функций через контракт.Я понимаю, что сервисы ASMX действительно не имели понятия «контракты» в их широком смысле, однако вы представляете их как набор операций, поддерживаемых сервисом.Какова ваша цель, хотите ли вы представить табличные данные как сервис?

Сервисная технология в стеке Microsoft прошла долгий путь от ASMX.Возможно, очевидный вопрос, рассматривали ли вы службы данных WCF?

Ссылки:

0 голосов
/ 06 апреля 2011

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

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

Если вы действительно хотите оптимизировать размер запроса, попробуйте

  • сериализация входных параметров с использованием JSON (если вы этого еще не сделали)
  • используйте домен без файлов cookie для вашего веб-сервиса

надеюсь, это поможет

0 голосов
/ 05 апреля 2011

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

Лично я предпочитаю организовывать свои службы в соответствии с моей моделью домена.

Если у меня есть, например, классы Customer, Order и Item, у меня будут соответствующие сервисы Customer.asmx, Order.asmx и Item.asmx для предоставления выбранных методов в этих классах.

...