Я ищу список «первой десятки» причин, по которым мы должны подключаться к удаленным базам данных через веб-службу вместо прямого подключения к базе данных. Сейчас это внутренние дебаты, и я выступаю за веб-службу, но проигрываю в споре. У меня есть базовые знания о WCF / веб-сервисах, больше ни у кого нет. Мы можем делать все, что хотим, двигаться вперед, но нам нужно придерживаться того, что мы выберем сейчас.
Вот что я придумал. Больше?
- Веб-службы WCF при правильной настройке могут быть более безопасными.
- Изменения в БД необходимо вносить только на уровне службы (файл конфигурации или перекомпиляция службы).
- После настройки и размещения веб-сервисы легче использовать.
источник
На мой взгляд, вы не должны автоматически раскрывать свою базу данных как веб-службу. Если окажется, что вам нужен сервис для предоставления ваших данных, напишите его, но не весь доступ к базе данных должен осуществляться через веб-сервисы.
источник
Большинство этих пунктов относится к любому формальному API, а не конкретно к веб-службам.
источник
Написание веб-службы, которая просто обертывает вызовы хранимых процедур, кажется ошибочным подходом к созданию хорошего DAL. Скорее всего, ваши хранимые процедуры - это унаследованный код, оставшийся от старых клиент-серверных систем, т.е. бизнес-правила скрыты в SP. Если это так, то вы действительно пытаетесь создать шелковый кошелек из уха свиньи.
Более того, вы добавляете уровень протокола сообщений SOAP, который повышает производительность веб-приложений, которые были «принуждены» встречаться с этой «свиньей». Я сейчас работаю над проектом, в котором нашему новому приложению MVC-4 было поручено использовать такой DAL. На нас лежит бремя необходимости изменять и подпись WebMethod, и подпись SP всякий раз, когда появляется новая пользовательская история, требующая таких изменений; что для нас - это каждый спринт. Такому подходу Passthru присущи два тесно связанных уровня.
источник
1) Уменьшается головная боль по сопровождению базы данных со стороны разработчиков, так что они могут сосредоточиться только на разработке.
2) Веб-сервис поддерживает связь различных платформ (операционных систем, таких как Windows, iOS, Android и т. Д.) Очень простым и эффективным способом. Например, рассмотрим ситуацию, когда приложение Android и приложение iOS хотят связаться с веб-сайтом, который основан на java, поэтому для связи всех трех вещей веб-сервис является лучшим решением вместо обслуживания трех разных баз данных.
источник
В общем
Я только начинаю изучать ASP.NET Web Api и планирую сначала создать службы данных.
Недавно я сосредоточился на веб-приложениях .NET MVC с использованием структуры сущностей.
Недавно я оказался в затруднительном положении с веб-приложением MVC, которое я изначально создавал на основе хранимых процедур Oracle. Первоначальная версия как Oracle 9 или даже более ранняя, представляла еще одну проблему с Visual Studio 2012, продвигая более современный подход фабрики соединений с сборками времени загрузки, которые находили правильные файлы dll для использования на основе подключений веб-конфигурации и имен TNS.
Попытки подключиться к базе данных завершились неудачно с сообщением об ошибке «больше не поддерживается». Из любопытства я загрузил Oracle 12c и установил несколько соединений на уровне приложений, которые отлично работали с моими именами TNS и загружаемой dll сборки, и я смог без проблем работать с Oracle.
Были созданы некоторые веб-службы, которые работали с подключениями к более старой версии Oracle. Однако, к моему разочарованию, они были построены с использованием методов, которые были специально сопоставлены с выбранными таблицами. Придется написать свое.
Мне сказали, что группа, которая отвечала за поддержку баз данных Oracle, будет писать новые хранимые процедуры для замены старых, которые я использовал для абстрагирования клиентского интерфейса и уровней бизнес-логики.
Итак, моя первая мысль заключалась в том, что все общие запросы данных, такие как заполнение раскрывающегося списка или автоматическое завершение данными в масштабе предприятия, должны выполняться через службы данных, которые будут вызывать хранимые процедуры Oracle. Зачем повторять этот процесс для каждого приложения и заставлять каждого разработчика бороться с конфигурацией и сборкой версии / загрузки, проблемами TNS?
так....
Я разработчик приложений / аналитик, а не администратор баз данных, поэтому моя точка зрения основана на опыте бесконечного разочарования от необходимости постоянно изменять приложения по мере развития инструментов баз данных.
источник