С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467

Архитектура и паттерны для разработки ADO.Net сервера

23.01.2013, 18:02. Показов 2127. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день!
Более опытные разработчики может быть подскажут, как правильно организовать работу с SQL бд используя объекты ADO.Net. Я имею ввиду, что не хочется внутри каждого метода, который возвращает данные в виде класса бизнес контрактов, создавать DataAdapter, DataSet, SqlCommand. Так же не хочется везде писать текст запроса руками. Может быть сущесвтуют стандартные решения, паттерны, как организовать код (выделить базовые классы, фабрики - очень подходит для SqlCommand по-моему), чтобы удобно было работать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2013, 18:02
Ответы с готовыми решениями:

Трехслойная архитектура для ADO NET, возвращение DBNull и мелочи
Здравствуйте. Прочитав эту статью про трехслойную архитектуру доступа к данным, решил уже наконец научиться писать всё нормально и по...

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

Архитектура Hibernate VS Паттерны (проектируем вместе:)
Всем привет! В Java недавно, поэтому прошу вашей помощи вникнуть в суть, если я чего-то недопонимаю, или же направить на путь истинный...

10
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
25.01.2013, 19:15
А чем не подходит Entry Framework. В вашем проекте добавте новый элемент и в открывшемся окне SV выберите LINQ to SQL Classes.
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
25.01.2013, 20:01  [ТС]
Не поможет. Схема таблиц динамическая, пользователь может добавлять/удалять колонки. ЗДесь только Ado.Net схема подходит - фигачить SQL напрямую из C#
0
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
25.01.2013, 20:15
Цитата Сообщение от mikhail_g Посмотреть сообщение
Схема таблиц динамическая
А что при этом программный код не меняется?????? Это как такое вообще?? например была таблица Table1 и в ней поле Field15, и в программе я из этого поля например беру ФИО, вдруг пользователь убрал это поле и программа летит... Вообще где это видано чтобы пользователь менял колонки???)))

Добавлено через 2 минуты
В Базу данных лезть и что то менять должен только разработчик, пользователь не может вообще знать SQL и ему это не нужно, и близко никакой пользователь делать этого не будет, более того не то что на изменение структуры а изменение данных не из программы считается дурным тоном.
0
 Аватар для Cupko
658 / 595 / 171
Регистрация: 17.07.2012
Сообщений: 1,682
Записей в блоге: 1
25.01.2013, 20:30
Цитата Сообщение от mikhail_g Посмотреть сообщение
Добрый день!
Более опытные разработчики может быть подскажут, как правильно организовать работу с SQL бд используя объекты ADO.Net. Я имею ввиду, что не хочется внутри каждого метода, который возвращает данные в виде класса бизнес контрактов, создавать DataAdapter, DataSet, SqlCommand. Так же не хочется везде писать текст запроса руками. Может быть сущесвтуют стандартные решения, паттерны, как организовать код (выделить базовые классы, фабрики - очень подходит для SqlCommand по-моему), чтобы удобно было работать?
Почитайте "Архитектура корпоративных программных приложений" Мартина Фаулера. Тут со стороны архитектуру не построить. По технологии доступа к БД я бы посоветовал посмотреть в сторону BL Toolkit.

Добавлено через 1 минуту
Цитата Сообщение от Башир Посмотреть сообщение
А что при этом программный код не меняется?????? Это как такое вообще?? например была таблица Table1 и в ней поле Field15, и в программе я из этого поля например беру ФИО, вдруг пользователь убрал это поле и программа летит... Вообще где это видано чтобы пользователь менял колонки???)))

Добавлено через 2 минуты
В Базу данных лезть и что то менять должен только разработчик, пользователь не может вообще знать SQL и ему это не нужно, и близко никакой пользователь делать этого не будет, более того не то что на изменение структуры а изменение данных не из программы считается дурным тоном.
Может быть человек пишет свой клиент для СУБД.
1
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
25.01.2013, 22:08
Цитата Сообщение от Cupko Посмотреть сообщение
Может быть человек пишет свой клиент для СУБД.
Может и пишет, но трогать структуру БД и при этом гарантировать что другая программа не упадет оба разработчика должны быть вместе, и это уже не пользователь.
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
26.01.2013, 12:55  [ТС]
Всё просто - никакого криминала. Все таблицы созданные разработчиком - обслуживаются через LinqToSQL. Главное назначение системы - вести учёт. Пользователь создаёт журнал учёта - и добавляет те столбцы, которые ему необходимо учитывать, и потом тупо заносит туда данные. К спроектированным разработчикам таблицам никакого отношения эта функция не имеет. Испортить БД невозможно.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
26.01.2013, 17:26
Попробуйте найти свое решение. + есть такая вот вещь: Application architecture guide 2nd edition.

Добавлено через 43 секунды
Но там общая теория по разработке приложений.
1
215 / 215 / 20
Регистрация: 18.05.2010
Сообщений: 865
28.01.2013, 11:00
Цитата Сообщение от mikhail_g Посмотреть сообщение
Всё просто - никакого криминала. Все таблицы созданные разработчиком - обслуживаются через LinqToSQL. Главное назначение системы - вести учёт. Пользователь создаёт журнал учёта - и добавляет те столбцы, которые ему необходимо учитывать, и потом тупо заносит туда данные. К спроектированным разработчикам таблицам никакого отношения эта функция не имеет. Испортить БД невозможно.
Разве LINQ To SQL будет работать с таблицами у которых структура другая?
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
28.01.2013, 11:12
Вероятно, имелось ввиду, что фильтрация идет на стороне клиента.
0
 Аватар для mikhail_g
192 / 147 / 27
Регистрация: 02.05.2011
Сообщений: 467
28.01.2013, 11:46  [ТС]
Есть таблицы которые созданы разработчиком и пользователь о них понятия не имеет, и сервер (поднятый на IIS WCF сервис) просто спроектирован так, что пользователю к спроектированным разработчиком таблицам не добраться. И вот эти таблицы статичны, и обслуживаются через LinqToSQL + StoredProcedure опять таки, замапленные через LinqToSQL. А вот таблицы с динамическими структурами (журналы) - это то, что пользователь умеет делать, он может их хоть сто создать, как и таблиц в экселе (раньше они в экселе и работали). И для работы с ними надо было ридумать хитрожопную архитектуру, которую я реализовал с использованием базовых классов ADO.NET. Тупо написанные SQL запросы прямо в коде, упакованные в класс SqlQueryFactory, и убранные так глубоко, чтобы их видно не было и никто не пугался сторкам типа
C#
1
string.Format("INSERT INTO {0} ({1}) VALUES({2})\n))",
Поскольку мне это не очень понравилось поначалу, я и задал вопрос, возможно ли работу с таким типом таблиц (с динамической структурой) реализовать на основе общеприниятого паттерна или архитектуры сервера, отсюда и название топика.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.01.2013, 11:46
Помогаю со студенческими работами здесь

Подойдет ли .NET Core 1.0 (RC2) для разработки cоциальной сети на ASP.NET?
Добрый день. У меня есть идея одна по написаю одной социальной сети. Как вы думаете подойдет ли NETCore 1.0 (RC2) для разработки....

Архитектура игрового сервера для риал-тайм игры. Нужна любая информация
Доброго всем времени суток. Собственно интересует сабж: Буду рад получить любую информацию (название книги, статью, цикл статей, видео и...

Локальные сервера для разработки сайта
Что посоветуете в качестве локального вебсервера для разработки сайта? Пока что нашёл бесплатный https://ampps.com/download . Не знаю,...

Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net
Всем привет! Нужно написать клиент-серверное приложение на основе Microsoft Sql Server 2005 Express Edition. Некое клиент-серверное...

Провайдер ADO.NET для SQLite
Здравствуйте! Очень нужны совет и помощь. Пишу программу на С# с использованием SQLite... задача подключить эту самую SQLite... с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru