powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Датасет, свой класс или что-то еще
25 сообщений из 28, страница 1 из 2
Датасет, свой класс или что-то еще
    #37811458
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос скорее не в тему, не нашел куда написать.
Есть простая программа для работы с базой, 4-5 таблиц, отчеты, настройки. логика отчетов сидит в процедурах на SQL Server-е.
Писали все похожие программы (весь наш небольшой отдел) в процедурном стиле - т.е. "exec name..." это все в не типизированный датасет или сразу в грид, максимум биндинг к контролам. Была одна DLL для подключения к базе и ведения лога. Суть вопроса как лучше проектировать подобные мелкие рабочие проекты - Первое что вижу - это использовать типизированный датасет, но стиль от этого не поменяется. Второе через свои классы моделирующие объекты, их выводить в гриды, т.е. уже ближе к ооп. Еще NHibernate - до него еще не добрался, толком ни чего не знаю, но если тема подойдет то буду разбираться. Сейчас разбираю шаблоны проектирования, но еще не дошел до той стадии чтоб знать где применить. В общем подскажите на что следует потратить время чтобы это можно было применить на работе. (SQL Server, филиалы, задаи в основном по анализу основной рабочей базы и внутренняя бухгалтерия)
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #37972798
ToxDenton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хороший вопрос, мне бы тоже, было интересно узнать.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #37986516
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Sergey SПисали все похожие программы (весь наш небольшой отдел) в процедурном стиле - т.е. "exec name..." это все в не типизированный датасет или сразу в грид,
Странно было бы, если бы в типизированый датсет, который является классом. И уже по нему определяются датасеты.

Многогодовой спор. Использовать типизированые датасеты или нет?
Я за них.
Сразу в грид - можно, если грид только для чтения. В репорты можно тоже сразу.
Если данные надо редактировать, то датасет предоставляет механизмы, которых нет при использовании других способов
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #37986804
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey S,

если чистый CRUD - то можно и датасет. Если в приложении есть логика - лучше NHibernate или другой маппер.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #37987126
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SolYUtorЕсли в приложении есть логика - лучше NHibernate или другой маппер.
Логика в приложении - моветон
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #37987235
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Логика в приложении - моветон
Чё правда что ли? Даже ни одной логической конструкции нельзя?
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #37987324
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2SolYUtorЕсли в приложении есть логика - лучше NHibernate или другой маппер.
Логика в приложении - моветон
Логика в приложении - бест практис. Забудь о логике в хранимках, это не логика, а ошметки логики из кусков сиквел кода, обернутые в транзакцию.
Про модульное тестирование что-нить слыхал?
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #37987956
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУCat2пропущено...

Логика в приложении - моветон
Логика в приложении - бест практис. Забудь о логике в хранимках, это не логика, а ошметки логики из кусков сиквел кода, обернутые в транзакцию.
Про модульное тестирование что-нить слыхал?

согласен, это не есть задача базы данных
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38012210
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как решаются вопросы производительности?
К примеру сейчас есть одна программа по расчету премии - тут задействована своя с-ма бюджетирования
Конечный результат выводится в excel-ий файлик для каждого филиала по 4 листа разных таблиц - это все выдается несколькими процедурами, строится довольно быстро, т.к. вся логика сидит в процедуре и выполняется на хорошем сервере...
Если загнать логику в клиента.... нада попробовать.... скажите кто примерно такого уровня сложности (не сильно простую) логику пробовал - нормально будет?
И начать рекомендуете с NHibernate или просто в своих объектах логику заложить?
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38012729
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey S,
какая еще сложность при расчете премий?
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38012946
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey SА как решаются вопросы производительности?
К примеру сейчас есть одна программа по расчету премии - тут задействована своя с-ма бюджетирования
Конечный результат выводится в excel-ий файлик для каждого филиала по 4 листа разных таблиц - это все выдается несколькими процедурами, строится довольно быстро, т.к. вся логика сидит в процедуре и выполняется на хорошем сервере...
Если загнать логику в клиента.... нада попробовать.... скажите кто примерно такого уровня сложности (не сильно простую) логику пробовал - нормально будет?
И начать рекомендуете с NHibernate или просто в своих объектах логику заложить?При правильном применении Linq2Sql отличие в производительности от варианта на хранимых процедурах будет минимальным, а в некоторых случаях даже быстрее.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38012952
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosSergey S,
какая еще сложность при расчете премий?Насчитать себе нужную сумму, чтобы никто не заметил. :-)
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38013496
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУCat2пропущено...

Логика в приложении - моветон
Логика в приложении - бест практис.

Вас не смущает тот факт, что истина на самом деле где-то по середине?
МСУЗабудь о логике в хранимках, это не логика, а ошметки логики из кусков сиквел кода, обернутые в транзакцию.

Не умеешь готовить - не берись.
МСУПро модульное тестирование что-нить слыхал?
О, да-да! Типа, хранимые процедуры не поддаются тестированию...
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38013507
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvО, да-да! Типа, хранимые процедуры не поддаются тестированию...
Теоретически возможно. Вопрос в трудозатратах. Для храмок слишком долго устанавливать контекст.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38013529
netivan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

но все же она не на все способна, к сожалению.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38013724
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorsphinx_mvО, да-да! Типа, хранимые процедуры не поддаются тестированию...
Теоретически возможно.
Это возможно не только теоретически, но и практически.
И не только в "ручном" режиме: список фреймворков , где можно получить ссылки на тест-фреймворки в том числе и для SQL-серверов - как минимум, для Oracle, MSSQL, MySQL, PostgreSQL...
SolYUtorВопрос в трудозатратах. Для храмок слишком долго устанавливать контекст.
IMHO, одинаковая функциональность примерно одинакова по трудозатратам на тестирование. И установление контекста требует примерно тех же усилий.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014026
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
netivanАлексей К,

но все же она не на все способна, к сожалению.Её его возможности в последнее время весьма активно развиваются. Уже имеющихся возможностей вполне достаточно. Недостающие возможности ( вроде рекурсивных запросов ) легко выносятся во View в БД.

В итоге имеем в сервере приложений сопоставимые с хранимыми процедурами возможности + все возможности C# и его библиотек. Что как минимум позволит работать с данными из разных БД, веб-сервисов и т. п. Если даже сегодня это не надо, в дальнейшем такая необходимость весьма вероятна. Пусть кому-то удобно "по-старинке" иметь логику в ХП, но решение с логикой в LINQ на сервере приложений, как минимум, тоже имеет право на жизнь.

По некоторым параметрам LINQ несколько удобнее SQL, взять те же ассоциации vs join, let vs вложенный запрос и т. д. Хотя и недостатки тоже есть. Истина как всегда где-то посередине...
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014213
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУДалеко на такой "логике" не уедешь. Размазня без ООП - это не логика, это линейный лапшекод :)Линейный лапшекод лучше ООП-лапшекода. Его проще разгребать. Так что тут тоже нужно без фанатизма. :-)
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014225
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЛинейный лапшекод лучше ООП-лапшекода. Его проще разгребать. Так что тут тоже нужно без фанатизма. :-)
Если у нас десяток строк кода, то соглашусь. Не доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу. И за отсутствием наследования, прилодилось писать вспомоготальные общие хранимки, которые нужно было вкорячить в те десять. Бррр, накую такую "бизнес-логику"
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014237
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КЛинейный лапшекод лучше ООП-лапшекода. Его проще разгребать. Так что тут тоже нужно без фанатизма. :-)
Если у нас десяток строк кода, то соглашусь. Не доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу. И за отсутствием наследования, прилодилось писать вспомоготальные общие хранимки, которые нужно было вкорячить в те десять. Бррр, накую такую "бизнес-логику" Видимо MSSQL? Там да, с этим хреново, нет пакетов, "как в Ёракле" :-)
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014274
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВидимо MSSQL? Там да, с этим хреново, нет пакетов, "как в Ёракле" :-)
Опять двадцать пять :) Не нужно концепцию оракуля перекладывать на сиквел, не нужны сиквелу пакеты.
Да и сам пакет не решит ничего в разрезе наследования, просто перекладывание гавна по кучкам, не более того.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014276
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНе доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу.

Да, Алексей, самое главное - как насчет документирования такого "кода"? :)
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014386
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУОпять двадцать пять :) Не нужно концепцию оракуля перекладывать на сиквел, не нужны сиквелу пакеты.Нужно. Чтобы не было 100500 хранимых процедур с дикими префиксами в именах, чтобы хоть как-то можно было в них ориентироваться.

МСУДа и сам пакет не решит ничего в разрезе наследования, просто перекладывание гавна по кучкам, не более того.Сущности наследовать можно во вьюхах через select * from . Полиморфизм - а нужен ли он тут?
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014389
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУМСУНе доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу.

Да, Алексей, самое главное - как насчет документирования такого "кода"? :)Рефакторить надо. Производить "выделение метода" по Фаулеру.
...
Рейтинг: 0 / 0
Датасет, свой класс или что-то еще
    #38014823
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНужно. Чтобы не было 100500 хранимых процедур с дикими префиксами в именах, чтобы хоть как-то можно было в них ориентироваться.
А вот нечего плодить такой говно-зоопарк. А то понаплодят гумна, а потом там еще и ориентироваться нужно. Кстати, тема пакетов в сиквеле - баян. В топку пакеты.

Алексей КСущности наследовать можно во вьюхах через select * from . Полиморфизм - а нужен ли он тут?
Мне страшно представить, что у тебя потом там с планом выполнения запросов будет, когда ты понагородишь огороды "наследования". DBA кастрирует. Во-вторых, наследование через вьюхи - это просто жесть :) В-третьих, наследование нужно не только в отображении, но и во внутренней логике (например, расчет зп, отпусков, увольнений и т.д. - какие в жопу вьюхи?). Полиморфизм нужен, Леша, нужен.

Алексей КРефакторить надо. Производить "выделение метода" по Фаулеру.
Причем тут рефакторить? Я спрашиваю о документировании всего этого безобразия. Неужели о чем-то невообразимо нереальном вещаю? Вот уйдет твоя команда обезьянок, придут новые - начинаем с перелопачивания и изучения кода по камментам? :)
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Датасет, свой класс или что-то еще
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]