|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Вопрос скорее не в тему, не нашел куда написать. Есть простая программа для работы с базой, 4-5 таблиц, отчеты, настройки. логика отчетов сидит в процедурах на SQL Server-е. Писали все похожие программы (весь наш небольшой отдел) в процедурном стиле - т.е. "exec name..." это все в не типизированный датасет или сразу в грид, максимум биндинг к контролам. Была одна DLL для подключения к базе и ведения лога. Суть вопроса как лучше проектировать подобные мелкие рабочие проекты - Первое что вижу - это использовать типизированный датасет, но стиль от этого не поменяется. Второе через свои классы моделирующие объекты, их выводить в гриды, т.е. уже ближе к ооп. Еще NHibernate - до него еще не добрался, толком ни чего не знаю, но если тема подойдет то буду разбираться. Сейчас разбираю шаблоны проектирования, но еще не дошел до той стадии чтоб знать где применить. В общем подскажите на что следует потратить время чтобы это можно было применить на работе. (SQL Server, филиалы, задаи в основном по анализу основной рабочей базы и внутренняя бухгалтерия) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2012, 13:19 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Хороший вопрос, мне бы тоже, было интересно узнать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2012, 13:09 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Sergey SПисали все похожие программы (весь наш небольшой отдел) в процедурном стиле - т.е. "exec name..." это все в не типизированный датасет или сразу в грид, Странно было бы, если бы в типизированый датсет, который является классом. И уже по нему определяются датасеты. Многогодовой спор. Использовать типизированые датасеты или нет? Я за них. Сразу в грид - можно, если грид только для чтения. В репорты можно тоже сразу. Если данные надо редактировать, то датасет предоставляет механизмы, которых нет при использовании других способов ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2012, 18:18 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Sergey S, если чистый CRUD - то можно и датасет. Если в приложении есть логика - лучше NHibernate или другой маппер. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2012, 01:14 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
SolYUtorЕсли в приложении есть логика - лучше NHibernate или другой маппер. Логика в приложении - моветон ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2012, 16:53 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Cat2Логика в приложении - моветон Чё правда что ли? Даже ни одной логической конструкции нельзя? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2012, 20:31 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Cat2SolYUtorЕсли в приложении есть логика - лучше NHibernate или другой маппер. Логика в приложении - моветон Логика в приложении - бест практис. Забудь о логике в хранимках, это не логика, а ошметки логики из кусков сиквел кода, обернутые в транзакцию. Про модульное тестирование что-нить слыхал? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2012, 23:12 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
МСУCat2пропущено... Логика в приложении - моветон Логика в приложении - бест практис. Забудь о логике в хранимках, это не логика, а ошметки логики из кусков сиквел кода, обернутые в транзакцию. Про модульное тестирование что-нить слыхал? согласен, это не есть задача базы данных ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2012, 12:40 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
А как решаются вопросы производительности? К примеру сейчас есть одна программа по расчету премии - тут задействована своя с-ма бюджетирования Конечный результат выводится в excel-ий файлик для каждого филиала по 4 листа разных таблиц - это все выдается несколькими процедурами, строится довольно быстро, т.к. вся логика сидит в процедуре и выполняется на хорошем сервере... Если загнать логику в клиента.... нада попробовать.... скажите кто примерно такого уровня сложности (не сильно простую) логику пробовал - нормально будет? И начать рекомендуете с NHibernate или просто в своих объектах логику заложить? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.10.2012, 22:10 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Sergey S, какая еще сложность при расчете премий? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 12:16 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Sergey SА как решаются вопросы производительности? К примеру сейчас есть одна программа по расчету премии - тут задействована своя с-ма бюджетирования Конечный результат выводится в excel-ий файлик для каждого филиала по 4 листа разных таблиц - это все выдается несколькими процедурами, строится довольно быстро, т.к. вся логика сидит в процедуре и выполняется на хорошем сервере... Если загнать логику в клиента.... нада попробовать.... скажите кто примерно такого уровня сложности (не сильно простую) логику пробовал - нормально будет? И начать рекомендуете с NHibernate или просто в своих объектах логику заложить?При правильном применении Linq2Sql отличие в производительности от варианта на хранимых процедурах будет минимальным, а в некоторых случаях даже быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 13:24 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
ViPRosSergey S, какая еще сложность при расчете премий?Насчитать себе нужную сумму, чтобы никто не заметил. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 13:25 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
МСУCat2пропущено... Логика в приложении - моветон Логика в приложении - бест практис. Вас не смущает тот факт, что истина на самом деле где-то по середине? МСУЗабудь о логике в хранимках, это не логика, а ошметки логики из кусков сиквел кода, обернутые в транзакцию. Не умеешь готовить - не берись. МСУПро модульное тестирование что-нить слыхал? О, да-да! Типа, хранимые процедуры не поддаются тестированию... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 17:17 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
sphinx_mvО, да-да! Типа, хранимые процедуры не поддаются тестированию... Теоретически возможно. Вопрос в трудозатратах. Для храмок слишком долго устанавливать контекст. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 17:22 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Алексей К, но все же она не на все способна, к сожалению. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 17:32 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
SolYUtorsphinx_mvО, да-да! Типа, хранимые процедуры не поддаются тестированию... Теоретически возможно. Это возможно не только теоретически, но и практически. И не только в "ручном" режиме: список фреймворков , где можно получить ссылки на тест-фреймворки в том числе и для SQL-серверов - как минимум, для Oracle, MSSQL, MySQL, PostgreSQL... SolYUtorВопрос в трудозатратах. Для храмок слишком долго устанавливать контекст. IMHO, одинаковая функциональность примерно одинакова по трудозатратам на тестирование. И установление контекста требует примерно тех же усилий. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.10.2012, 19:43 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
netivanАлексей К, но все же она не на все способна, к сожалению.Её его возможности в последнее время весьма активно развиваются. Уже имеющихся возможностей вполне достаточно. Недостающие возможности ( вроде рекурсивных запросов ) легко выносятся во View в БД. В итоге имеем в сервере приложений сопоставимые с хранимыми процедурами возможности + все возможности C# и его библиотек. Что как минимум позволит работать с данными из разных БД, веб-сервисов и т. п. Если даже сегодня это не надо, в дальнейшем такая необходимость весьма вероятна. Пусть кому-то удобно "по-старинке" иметь логику в ХП, но решение с логикой в LINQ на сервере приложений, как минимум, тоже имеет право на жизнь. По некоторым параметрам LINQ несколько удобнее SQL, взять те же ассоциации vs join, let vs вложенный запрос и т. д. Хотя и недостатки тоже есть. Истина как всегда где-то посередине... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 08:49 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
МСУДалеко на такой "логике" не уедешь. Размазня без ООП - это не логика, это линейный лапшекод :)Линейный лапшекод лучше ООП-лапшекода. Его проще разгребать. Так что тут тоже нужно без фанатизма. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 10:56 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Алексей КЛинейный лапшекод лучше ООП-лапшекода. Его проще разгребать. Так что тут тоже нужно без фанатизма. :-) Если у нас десяток строк кода, то соглашусь. Не доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу. И за отсутствием наследования, прилодилось писать вспомоготальные общие хранимки, которые нужно было вкорячить в те десять. Бррр, накую такую "бизнес-логику" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 11:05 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
МСУАлексей КЛинейный лапшекод лучше ООП-лапшекода. Его проще разгребать. Так что тут тоже нужно без фанатизма. :-) Если у нас десяток строк кода, то соглашусь. Не доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу. И за отсутствием наследования, прилодилось писать вспомоготальные общие хранимки, которые нужно было вкорячить в те десять. Бррр, накую такую "бизнес-логику" Видимо MSSQL? Там да, с этим хреново, нет пакетов, "как в Ёракле" :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 11:14 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Алексей КВидимо MSSQL? Там да, с этим хреново, нет пакетов, "как в Ёракле" :-) Опять двадцать пять :) Не нужно концепцию оракуля перекладывать на сиквел, не нужны сиквелу пакеты. Да и сам пакет не решит ничего в разрезе наследования, просто перекладывание гавна по кучкам, не более того. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 11:40 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
МСУНе доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу. Да, Алексей, самое главное - как насчет документирования такого "кода"? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 11:41 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
МСУОпять двадцать пять :) Не нужно концепцию оракуля перекладывать на сиквел, не нужны сиквелу пакеты.Нужно. Чтобы не было 100500 хранимых процедур с дикими префиксами в именах, чтобы хоть как-то можно было в них ориентироваться. МСУДа и сам пакет не решит ничего в разрезе наследования, просто перекладывание гавна по кучкам, не более того.Сущности наследовать можно во вьюхах через select * from . Полиморфизм - а нужен ли он тут? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 12:41 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
МСУМСУНе доводилось работать с хранимыми процедурами под 1000 строк и более? Причем их таких несколько штук под конкретную "задачу", примерно одинкаковых по смыслу. Да, Алексей, самое главное - как насчет документирования такого "кода"? :)Рефакторить надо. Производить "выделение метода" по Фаулеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 12:42 |
|
Датасет, свой класс или что-то еще
|
|||
---|---|---|---|
#18+
Алексей КНужно. Чтобы не было 100500 хранимых процедур с дикими префиксами в именах, чтобы хоть как-то можно было в них ориентироваться. А вот нечего плодить такой говно-зоопарк. А то понаплодят гумна, а потом там еще и ориентироваться нужно. Кстати, тема пакетов в сиквеле - баян. В топку пакеты. Алексей КСущности наследовать можно во вьюхах через select * from . Полиморфизм - а нужен ли он тут? Мне страшно представить, что у тебя потом там с планом выполнения запросов будет, когда ты понагородишь огороды "наследования". DBA кастрирует. Во-вторых, наследование через вьюхи - это просто жесть :) В-третьих, наследование нужно не только в отображении, но и во внутренней логике (например, расчет зп, отпусков, увольнений и т.д. - какие в жопу вьюхи?). Полиморфизм нужен, Леша, нужен. Алексей КРефакторить надо. Производить "выделение метода" по Фаулеру. Причем тут рефакторить? Я спрашиваю о документировании всего этого безобразия. Неужели о чем-то невообразимо нереальном вещаю? Вот уйдет твоя команда обезьянок, придут новые - начинаем с перелопачивания и изучения кода по камментам? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2012, 15:58 |
|
|
start [/forum/search_topic.php?author=Zin4uk&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
134ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 439ms |
total: | 692ms |
0 / 0 |