Нужен сервис для обработки нескольких соединений с 1 базой данных - PullRequest
0 голосов
/ 13 марта 2012

У меня есть база данных SQL Server, которая обслуживает несколько веб-приложений ASP.NET.Каждое из них имеет свой собственный SiteID для различения данных.

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

Все веб-приложения и база данных находятся на одном сервере Windows 2008.

Я хочу знать, какой сервис лучше всего подходит для этой функции.веб-сервис или служба Windows?В предыдущей работе они, казалось, имели службу Windows, которая работала на сервере. Каковы преимущества этого по сравнению с веб-службой?

Ответы [ 2 ]

1 голос
/ 13 марта 2012

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

Звучит так, как будто вам нужна служба WCF, которая позволит вам работать как веб-приложение под IIS -ORв качестве самостоятельной службы Windows.Существует некоторая кривая обучения, если вы никогда не делали WCF, но стоит учиться.

WCF под IIS, вы получаете те же преимущества, что и при работе с любым веб-сайтом.Управление жизненным циклом приложений, обслуживание с помощью подключаемого модуля IIS mms, запуск под определенным удостоверением пула и т. Д.

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

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

0 голосов
/ 13 марта 2012

Служба Windows против веб-службы - это яблоки против апельсинов ... Служба Windows не обслуживает данные самостоятельно ...

Итак, вот несколько вариантов:

Доступ к данным в традиционном коде

Похоже, это то, что у вас есть. Пока это логически отдельный слой, это, вероятно, не так уж и плохо.

Услуга

Использование сервисов имеет много преимуществ, таких как разделение интересов / реализация. Вы даже можете реализовать свой сервис на другом языке / платформе, нежели ваше клиентское приложение. Недостатком может быть производительность. Скорее всего, вам придется сериализовать / десериализовать данные, и это занимает циклы ЦП, как бы вы их ни вырезали.

Подход на основе интерфейса

Это хорошо, потому что вы можете записать свой доступ к данным в вашем приложении через интерфейс. Этот интерфейс может быть реализован с помощью «традиционного» кода ADO / ORM. Или вы можете использовать веб-сервис. Это имеет явное преимущество, заключающееся в отделении пользовательского интерфейса от данных и упрощении автоматического модульного тестирования.

...