Какой самый простой, но надежный интерфейс от WinForms до базы данных SQL Server? - PullRequest
1 голос
/ 15 мая 2010

Если бы я хотел разместить свои данные в SQL Server, но хотел бы использовать приложение WinForms с толстым клиентом для пользователей, каков наилучший способ передачи вызовов из WinForms в базу данных? И насколько это просто?

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

У меня действительно есть простое приложение, которому нужна база данных, и у меня будет только 10-30 клиентов в сети LAN / WAN, которые будут подключаться.

РЕДАКТИРОВАТЬ: Таким образом, мой вопрос был сосредоточен на протоколе / подходе связи между клиентским ПК и базой данных, т.е. через LAN / WAN

Ответы [ 3 ]

2 голосов
/ 15 мая 2010

Самое простое решение, если у вас есть компьютер и сервер БД рядом, это использовать прямой подход Linq-to-SQL - без дополнительного уровня обслуживания WCF между ними. Такой уровень обслуживания добавляет значительную сложность.

Если вы хотите пойти по этому пути (возможно, из-за ваших клиентов WAN), то я бы порекомендовал вам проверить WCF Data Services , слой поверх чистого WCF. Возможно, сейчас это самый простой и быстрый способ представить модель данных (например, модель Linq-to-SQL или Entity Framework) в качестве канала REST для клиентов WAN / Internet.

WCF сам по себе действительно большой зверь и поэтому отпугивает многих людей - но вам не нужно знать каждый параметр и ручку, чтобы использовать его. Для некоторых вступлений в WCF я рекомендую эти два эпизода DotnetRocks TV - отличный вступительный материал:

2 голосов
/ 15 мая 2010

Простой способ - использовать ORM, например LINQ to SQL . Это избавит вас от необходимости писать SQL самостоятельно, но при этом генерирует достаточно эффективные запросы к базе данных. Другими примерами ORM являются структура сущностей и NHibernate .

Если вы хотите написать запросы к базе данных самостоятельно, вы можете использовать ADO.NET .

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

0 голосов
/ 15 мая 2010

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

Если ваши данные сильно связаны с объектами, вы можете использовать инструмент / инфраструктуру реляционного сопоставления объектов для сопоставления сущностей приложения с данными в базе данных. Если вы не хотите использовать ORM, то по крайней мере вам следует использовать параметризованные операторы SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...