powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ADODB.Recordset и .NET контролы
25 сообщений из 34, страница 1 из 2
ADODB.Recordset и .NET контролы
    #36047173
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот интересно: все до зеленых соплей прям обрадовались технологии ADO.NET ?

Она всех устраивает, она офигенски удобна? (Особенно, когда надо работать напрямую с таблицей).

Или я один такой отщепенец, которого эти гребанные datatable бесят?

Неужели за столько лет существования .NET никто не написал класс - обертку для ADODB.Recordset, чтобы можно было напрямую работать с рекордсетом через .NET контролы ?
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36047692
SerP1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы отстали от жизни, имхо. datatable - это далеко не единственное, что есть в ADO.NET
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36048086
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бесполезный ответ.
Перечислите, что есть.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36048190
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36048258
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень интересно.

Особенно интересно сравнить время разработки (тупо в строчках кода), скорость работы с большими массивами данных (ну, например, массовое обновление записей этак 600т -800т)

Ну и возможность работы на слабых машинах, конечно (например на целеронах и с 2000 виндами)
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36048302
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тем более насколько я понимаю, все эти ORMы и строятся на ADO.NET
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36053772
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, не обнаружив никаких вариантов конвертера ADO для .NET форм, я написал свой.
Фактически, пришлось написать небольшую обертку для класса ADODB, чтобы его "понимали" формы.
Получилось неплохо, все работает. 8)
Понятно, что вариант еще сырой и есть глюки, но я их потихоньку вычищаю.
Выкладывать сюда не буду, раз никому не надо.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056056
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krudensoftВ общем, не обнаружив никаких вариантов конвертера ADO для .NET форм, я написал свой.Делать ну совсем нечего? Ты в ADO.NET успел разобраться, прежде чем за интероп браться?
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056123
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это еще мелочи.Ребята переходят на Ахапту и пытаются сделать кальку 1С ее средствами!!!
krudunsoft, зачем менять средство разработки,если подходы остаются старые?
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056528
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобуч,

С ADO.NET работаю уже три года.
Есть большой проект, писаный с нуля и работающий в нескольких фирмах.

И всю подноготную ADO.NET знаю достаточно хорошо, чтобы понимать, о чем говорю
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056536
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

А зачем менять подходы, если они себя оправдали и исправно дают доход?
Революция - не значит хорошо. Уж пора бы это понимать.
Да и 1С в своем сегменте достаточно хороша, нечего ее пинать.
Вопрос в том, что в моем деле мне нужно получать результат _быстро_

Мне современный подход микрософт с бизнес-объектами напоминает идеологию бульдозера от ИКЕА: набор ящиков с детальками и кусками железа и подробнейшая инструкция. Да, конечно, если эго собрать, заправить солярой, научиться управлять им, то можно выкопать ОГРОМНУЮ ЯМУ.

Вот только нафига мне огромная яма? Мне бы траншею 2х2 метра вырыть для колодца.
И вот я смотрю на эти ящики и вижу рядом лопату.
Обычную, потертую, немного ржавую лопату, про которую все забыли, бросившись собирать икеевские экскаваторы. Беру ее и выкапываю эту яму.
И тут начинаю прикидывать. До этого я собрал несколько экскаваторов, чтобы вырыть такие же ямы, но времени то заняло это гораздо больше. Вот и возник у меня вопрос: а может, ну его, этот фуфел от ИКЕи, лопатой-то удобнее? 8))
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056541
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахлобуч,

> Ты в ADO.NET успел разобраться, прежде чем за интероп браться?

Бугага. А ты думаешь, мог бы я написать свою обертку, не понимая как устроен ADO.NET и как взаимодейтсвуют контролы с данными? 8)))
Это все пока голословно, конечно, ведь dll я пока не выложил.
Просто сначала ее доведу до ума (напишу коммерческое приложение с ее использованием), а потом и выложу.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056543
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что из себя представляют твои экскаваторы, если на лопату потянуло?
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056549
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa,

Первое приложение - софт для гипера. Приходы, расходы, остатки, кассовые операции, взаимодействие с ЦО и оборудованием (кассы, весы, сканеры ШК, принтеры печати этикеток, удаленные терминалы)
Работа с данными решена почти в упор - есть класс, включающий в себя датаадаптер, датасет и набор методов, позволяющий как загружать, так и сохранять данные через хранимые процедуры.
В принципе, неплохо получилось, но некоторые вещи (например, ведение небольших справочников, просмотр больших справочников, фильтрация и непосредственое отражение данных на серваке) - жутко неудобно по сравнению с ADO. Все это конечно решено, но объем кода... он ОГРОМЕН.

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

И сейчас - софт для центрального офиса. Тут конечно объем работ и сам по себе огромный. Плюс описалово каждого чиха, плюс тесты, плюс xml схемы объектов... И тут я понимаю, что на каждую строчку кода, который несет в себе смысл, я пишу 49 строк кода, которые смысла не несут вообще. Обертки, обвязки, обмотки, всяческие автосгенерированные классы и т.п.

Ясное дело, что эти проекты я пишу не один (если быть точным - первый написали вдвоем, остальные - пишем втроем) но я участвовал во всех этапах и прекрастно понимаю, о чем говорю
Конечно, написать -то мы напишем и будет работать, и как всегда будет работать хорошо, но я ленив. 8) Хочется легких путей. А у микрософта все как в сказке - чем дальше, тем страшнее...
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056563
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как я понял, страху вы себе сами нагнали.У нас каждый программист просто обязан написать свои классы, обвертки и тд.Есть кодегераторы и готовые библиотеки,все генерится на автомате
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056564
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaЭто еще мелочи.Ребята переходят на Ахапту и пытаются сделать кальку 1С ее средствами!!!
Знаю я одну конторку в Москве, любящую аксапту... особенно мне нравиться как они работают и что у них получается, когда в магазинчике с 10 кассами стоит 3 полноценных сервера штук за 10 баксов каждый и 20 рабочих мест 8))).

А мне надо, чтобы на 40 касс было одно(хорошо, три) рабочих места и база крутилась на машине не выше Core Duo с 2 гб памяти. Фантастика? Нет.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056567
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaКак я понял, страху вы себе сами нагнали.У нас каждый программист просто обязан написать свои классы, обвертки и тд.Есть кодегераторы и готовые библиотеки,все генерится на автомате

Обязан написать? А зачем? Тем более каждый программист.

Кодегенераторы - хорошо, до тех пор, пока сгенерированый код не надо поправить.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056761
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА зачем?
Хороший вопрос.Спроси у себя сам.
авторКодегенераторы - хорошо, до тех пор, пока сгенерированый код не надо поправить.
Мне повезло,хороший кодогенератор попался,ничего править не приходится.
авторА мне надо, чтобы на 40 касс было одно(хорошо, три) рабочих места и база крутилась на машине не выше Core Duo с 2 гб памяти. Фантастика? Нет.
Для Core Duo и 400 не фантастика, без всяких дополнительных рабочих мест
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056799
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVa Хороший вопрос.Спроси у себя сам.
Вот я и спрашиваю... Достойного ответа пока нет

SeVaМне повезло,хороший кодогенератор попался,ничего править не приходится.
Очевидно, тебе не приходилось сталкиваться с задачами, требующими частого изменения алгоритмов (например, из-за законодательства)

авторДля Core Duo и 400 не фантастика, без всяких дополнительных рабочих мест
Ну-ка дай ссылку на такую программу 8) И чтобы отчетность сводили в ней день-в-день
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36056880
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krudensoftРабота с данными решена почти в упор - есть класс, включающий в себя датаадаптер, датасет и набор методов, позволяющий как загружать, так и сохранять данные через хранимые процедуры.А ведь стоило всего-то немного подумать :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public abstract class PersonAccessor : DataAccessor
{
    [SqlText(@"SELECT * FROM Person WHERE FirstName = @firstName")]
    public abstract List<Person> GetPersonListByFirstName(string @firstName);

    [SprocName("sp_GetPersonListByLastName")]
    public abstract List<Person> GetPersonListByLastName(string @lastName);
}

krudensoft
В принципе, неплохо получилось, но некоторые вещи (например, ведение небольших справочников, просмотр больших справочников, фильтрация и непосредственое отражение данных на серваке) - жутко неудобно по сравнению с ADO."Неудобно" -- это детский сад. Что конкретно не устраивает?

Более чем уверен, что это все от незнания ADO.NET и прочего.
krudensoftВсе это конечно решено, но объем кода... он ОГРОМЕН.

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

krudensoftИ тут я понимаю, что на каждую строчку кода, который несет в себе смысл, я пишу 49 строк кода, которые смысла не несут вообще.А ты не пиши код, который не имеет смысла -- только и всего.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36057000
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучА ведь стоило всего-то немного подумать :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
public abstract class PersonAccessor : DataAccessor
{
    [SqlText(@"SELECT * FROM Person WHERE FirstName = @firstName")]
    public abstract List<Person> GetPersonListByFirstName(string @firstName);

    [SprocName("sp_GetPersonListByLastName")]
    public abstract List<Person> GetPersonListByLastName(string @lastName);
}

И что этот пример доказывает?
Комменты в студию

Нахлобуч"Неудобно" -- это детский сад. Что конкретно не устраивает?
Не устраивает объем кода, необходимый для начала работы, например, со списком (неважно, каким, просто селект из таблицы)
Причем не только загрузить и показать, но и при изменении значения, скажем, в гриде сразу автоматически отражать его в таблице на сервере
Неудобно тянуть все на клиента, если например большая номенклатура.
Неудобно делать фильтры на обновляемых списках.

Ссылка - незачет. Три года назад они только начали

Вообще, технология ОРМ пока слишком сырая. Подожду, пока микрософт включит что-нибудь такое в состав SQL Server. Пока все это крутится на клиентской машине, о нормальной скорости говорить нельзя.


Нахлобуч Более чем уверен, что это все от незнания ADO.NET и прочего.
Интерестная точка зрения. Ну-ка раскажи, что я должен знать об ADO.NET 8)

Нахлобуч А ты не пиши код, который не имеет смысла -- только и всего.
Хорошее пожелание.

Мусорный код (не имеющий смысла для _для пользователя_) - это код, не работающий для пользователя.

Расчет себестоимости при отгрузке накладной - это код имеющий смысл.

А вот классы, которые занимаются приемом\передачей данных в SQL (ADO.NET) - это мусор, так как пользователю пофиг, как его данные попадают на сервер.

Классы бизнес-обьектов - мусор, т.к. опять же пользователю все равно, как программист хранит данные внутри программы.

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

Этот код все же нужен, но далеко не в тех объемах, в каких его применяют.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36057072
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krudensoftИ что этот пример доказывает?Он доказывает несостоятельность твоего утверждения про кучу кода. Как видишь, создать соединение, установить параметры хранимки/ad-hoc запроса, выполнить запрос и залить результаты в массив объектов можно в 6 строк кода.

krudensoftНе устраивает объем кода, необходимый для начала работы, например, со списком (неважно, каким, просто селект из таблицы) Опять же:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
public abstract class PersonAccessor : DataAccessor
{
    [SqlText(@"SELECT * FROM Person WHERE FirstName = @firstName")]
    public abstract DataTable GetPersonListByFirstName(string @firstName);
}

DataTable persons = DataAccessor.CreateInstance<PersonAccessor>.
    GetPersonListByFirstName("krudensoft");
И будет тебе DataTable с простым селектом из таблицы.

krudensoft
Причем не только загрузить и показать, но и при изменении значения, скажем, в гриде сразу автоматически отражать его в таблице на сервереНезнание матчасти. ADO.NET и все его DataTable'ы -- disconnected-модель.

krudensoft
Неудобно тянуть все на клиента, если например большая номенклатура.
Неудобно делать фильтры на обновляемых списках. Про "неудобно" я уже говорил.

krudensoftСсылка - незачет. Три года назад они только началиКто чего начал?

krudensoftВообще, технология ОРМ пока слишком сырая. Подожду, пока микрософт включит что-нибудь такое в состав SQL Server. Пока все это крутится на клиентской машине, о нормальной скорости говорить нельзя.Глупость-то какая. Что тут можно "включить в состав SQL Server"? Как связано быстродействие и ORM?

krudensoftА вот классы, которые занимаются приемом\передачей данных в SQL (ADO.NET) - это мусор, так как пользователю пофиг, как его данные попадают на сервер.Их за тебя уже написали. Бери и пользуйся.

krudensoftКлассы бизнес-обьектов - мусор, т.к. опять же пользователю все равно, как программист хранит данные внутри программы. Пользуйся DataTable'ами и DataSet'ами -- никто тебе руки не выкручивает.

krudensoftИ даже всеми горячо любимая религия юнит-тестов - опять же мусорный код, т.к. до пользователя он вообще не дойдет. Не пиши. Только не плакайся, когда у тебя будут регрессионные ошибки вылезать изо всех щелей. Или когда задумаешь свои DataTable'ы порефакторить.
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36057076
SeVa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОчевидно, тебе не приходилось сталкиваться с задачами, требующими частого изменения алгоритмов (например, из-за законодательства)
Для use-case должны быть отдельные сущности, максимум, что должна содержать модель - валидация данных в partial.
авторНу-ка дай ссылку на такую программу
Могу написать(сейчас как раз проект заканчивается), опыть есть.

авторИ чтобы отчетность сводили в ней день-в-день
Это тоже из области фантастики?

авторМусорный код (не имеющий смысла для _для пользователя_)
А пользователи тут причем?Какое они имеют отношение к коду?
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36057253
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SeVaМогу написать(сейчас как раз проект заканчивается), опыть есть.
Напиши 8)

SeVaЭто тоже из области фантастики?
Как показывает практика, да. Сеть магазинов на той же 1С получает остатки дай бог через месяц.

SeVaА пользователи тут причем?Какое они имеют отношение к коду?
Ага. Вот теперь мне все понятно. Пишем чисто из академического интереса? Программирование для программиста? При чем тут пользователь - конечно ни при чем. 8)
...
Рейтинг: 0 / 0
ADODB.Recordset и .NET контролы
    #36057354
krudensoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучОн доказывает несостоятельность твоего утверждения про кучу кода. Как видишь, создать соединение, установить параметры хранимки/ad-hoc запроса, выполнить запрос и залить результаты в массив объектов можно в 6 строк кода.
А с помошью моего класса можно это сделать в одну строку. Выигрыш в 6 раз? 8)

Me.DataGridView1.DataSource = new kRecordset("select * from Table", ADOCurrent.Connection, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)

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

НахлобучОпять же:
[src c#]public abstract ...

Это только селект? Селект я могу и обычным датаадаптером (вариации: скулкоманд, датаридер) сделать, не применяя софт сторонних разработчиков.

Нахлобуч
Незнание матчасти. ADO.NET и все его DataTable'ы -- disconnected-модель.
Учись читать внимательней.

Нахлобуч
Про "неудобно" я уже говорил.
Без комментариев

НахлобучКто чего начал?
См. свою ссылку. Главная страница. Даты и версии.


НахлобучГлупость-то какая. Что тут можно "включить в состав SQL Server"? Как связано быстродействие и ORM?

Действительно, никак не связаны. 8) Пишем программы для самоудовлетворения? Или все же для пользователей?

Нахлобуч
krudensoft
А вот классы, которые занимаются приемом\передачей данных в SQL (ADO.NET) - это мусор, так как пользователю пофиг, как его данные попадают на сервер.

Их за тебя уже написали. Бери и пользуйся.

Чего-то не очень хочется. Читаю форум. Восторгов не наблюдаю.
Лучше я свой мусор поюзаю, чем разгребать ошибки в чужом. 8)

НахлобучПользуйся DataTable'ами и DataSet'ами -- никто тебе руки не выкручивает.

Цитирую:
Нахлобуч
Незнание матчасти. ADO.NET и все его DataTable'ы -- disconnected-модель.

Вспомним начало: вопрос в том, нужен ли кому-то простой механизм работы с данными ADODB.Recordset, прикрученый к .NET формам.

НахлобучНе пиши. Только не плакайся, когда у тебя будут регрессионные ошибки вылезать изо всех щелей. Или когда задумаешь свои DataTable'ы порефакторить.
Читаем ниже:
Этот код все же _нужен_, но далеко не в тех объемах, в каких его применяют.
...
Рейтинг: 0 / 0
25 сообщений из 34, страница 1 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / ADODB.Recordset и .NET контролы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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