Как бороться с доступом к базе данных в длительном двухуровневом приложении? - PullRequest
2 голосов
/ 22 апреля 2010

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

Вопрос, который у меня возникает, заключается в том, как лучше всего справиться с доступом к базе данных в такого рода приложениях? Целесообразно ли использовать постоянный слой или DAL (например, NHibernate, Subsonic)? Я обеспокоен возможными утечками, возможными проблемами с GC, которые могут негативно повлиять на время безотказной работы, и о которых стоит подумать в долго работающих приложениях.

1 Ответ

0 голосов
/ 22 апреля 2010

Основным преимуществом использования O / RM-инструмента, такого как NHibernate, является производительность.Производители работали над такими инструментами в течение многих лет, и уровень сложности среднего инструмента o / RM в настоящее время намного превышает возможности одного человека или небольшой команды.

Использование инструмента O / RM не будетобязательно даст вам дополнительные выходные.И инструмент O / RM не совсем волшебник или инструмент быстрой разработки приложений.Тем не менее, это все еще инструмент программирования и тоже сложный.Использование инструмента O / RM может повысить вашу производительность, если вы знаете инструмент и поставляете хорошо построенную модель предметной области.

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

...