Лучшая практика: прямой доступ SQL по сравнению с веб-сервисом

В Java (я принимаю, C# более или менее идентичен):

list = new ArrayList<T>(new HashSet<T>(list))

, Если Вы действительно хотели видоизменить исходный список:

List<T> noDupes = new ArrayList<T>(new HashSet<T>(list));
list.clear();
list.addAll(noDupes);

Для сохранения порядка просто замените HashSet LinkedHashSet.

18
задан Dan McClain 6 July 2009 в 11:41
поделиться

4 ответа

Что лучше всего подходит для настольного клиента, которому требуется доступ к SQL Server?

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

Каковы преимущества подключения к базе данных из приложения по сравнению с использованием веб-службы?

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

Какой из них обеспечивает лучшую безопасность?

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

Какой тип области действия будет требовать для одного по сравнению с другим ( корпоративная интрасеть по сравнению с веб-приложением и т. д.)

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

Какой тип области действия будет требовать для одного по сравнению с другим ( корпоративная интрасеть по сравнению с веб-приложением и т. д.)

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

Какой тип области действия будет требовать для одного по сравнению с другим ( корпоративная интрасеть по сравнению с веб-приложением и т. д.)

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

Какой тип области действия будет требовать для одного по сравнению с другим ( корпоративная интрасеть по сравнению с веб-приложением и т. д.)

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

Какой тип области действия будет требовать для одного по сравнению с другим ( корпоративная интрасеть по сравнению с веб-приложением и т. д.)

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

Какой тип области действия требует одно против другого (корпоративная интрасеть против веб-приложения и т. Д.).

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

Какой тип области действия требует одно против другого (корпоративная интрасеть против веб-приложения и т. Д.).

Веб-службы лучше подходят для клиент-серверных приложений, где пользователи не должны иметь прямого доступа к базе данных. В противном случае прямое соединение с базой данных просто улучшило бы производительность. При создании веб-службы начните с написания общей (классовой) библиотеки, которая будет обеспечивать функциональность веб-службы. Создайте веб-сервис на основе этой (деловой) библиотеки, открыв доступ к важным методам для внешнего мира. Любой веб-сайт может вызвать эту библиотеку напрямую, не используя веб-службу, хотя вы всегда можете даже позволить коду веб-сайта получать доступ к данным через веб-службу. Даже если вы создаете просто настольное приложение с локальной базой данных, написание бизнес-библиотеки с логикой для доступа к базе данных - это просто очень хорошее дело. Ваш клиент может вызвать эту бизнес-библиотеку напрямую или через веб-службу, в зависимости от ваших потребностей.

Есть ли какие-либо другие соображения, которые необходимо учитывать при выборе платформы?

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

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

15
ответ дан 30 November 2019 в 06:51
поделиться

Общее практическое правило следующее:

  1. Напишите независимую сборку доступа к данным, которая будет взаимодействовать с базой данных.
  2. Если вы ищете возможность взаимодействия между различными платформами / клиентами, тогда представьте эту сборку как веб-службу SOAP.
  3. Если вам нужна производительность, используйте сборку непосредственно в клиентских приложениях .NET.
16
ответ дан 30 November 2019 в 06:51
поделиться

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

Итак, если соединение netwerk между приложением и сервером Sql открыто (обычно TCP-порт 1433), я бы использовал соединение Sql.

]
7
ответ дан 30 November 2019 в 06:51
поделиться

Если вы можете получить доступ к БД с рабочего стола, вам следует это сделать.

У вас есть разные клиенты. Это означает, что ваше приложение должно иметь несколько слоев. Это не означает, что вам нужно несколько уровней.

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

3
ответ дан 30 November 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: