powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / работа с реляционными данными в объектно-ориентированых программмах
48 сообщений из 48, показаны все 2 страниц
работа с реляционными данными в объектно-ориентированых программмах
    #32487956
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди,у меня такой серьезный вопрос. Хочу занаться разработкой серьезного програмного продукта который будет представлять собой клиентское приложение для работы с базой данных размещенной на сервере Sybase ASE. Предметная область пока конкретно не определена, но ясно что будут вестись разного рода учеты (например, ведения склада товаров, продажа товаров с магазина и т.д.).
Разработка, вернее кодирование, будет вестись на знакомом мне объектно-ориентированом языке С++.
Проблема у меня следующая: мы с ребятами никак не можем, определится на счет организации структуры программы. Ясно что будет вестись работа с реляционными данными, но как увязать реляционные данные с описаными в виде класов сущьновтями (например, товар, покупатель, продажа) пока не знаем. Хотелось бы ето сделать как можно правильней, так как у такой програмы должен быть долгий период существования, ее придется постоянно сопровождать, расширять и дописывать. У нас была практика в написании чегото "подобного" но после того когда в коде появилось больше сотни класов мы стали сильно путаться в своем же коде. И как понимаете сопровождение такого продукта не представляется возможным в будущем, а что уж говорить о расширении програмы. Скорее всего это результат плохих знаний в области проектирования програмных продуктов и отсутствие опыта в создании програм такого типа.
Если кто знает полезные ссылки, или литературу по даной проблеме, очень прошу - помогите. Особенно интересут именно работа с реляционными данными в объектно-ориентированых программмах.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32487990
Mike Neck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не пишите так. У вас в коде должны быть сущности: документ, журнал, справочник, поиск, отчёт. И всё будет чики пики. Перемапливание реляционной структуры в объектную и обратно - верный способ заработать фимоз голового мозга и трудности с сопровождением. Юзеру такой маппинг до лампочки. Программа в своём UI должна представлять сущности предметной области - во внутренней структуре вовсе не обязательно.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32488135
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мы пытались разделить сущьности отвечающие данным ( которыми манипулирует приложение) и сущьности отвечающие за интерфейс с пользователем:
- Скажем так, у нас был базовый клас "Документ" от которого был унаследован клас "Накладная", класс накладная был связан со списком товаров, в свою очеред напрашиваеться описание сущьности "Товар" и "Список товара". В свою очередь нап понадобился и "Список Документов".
- Потом имело место описание иерархии классов описяния графического интерфейса. Сюда уже входили формочки отображения таких данных как "Накладная" , "Список товара".

Но проблема возникала именно при работе с такими данными как "Документ" а именно "Накладная". Тут возникают вопросы :
1) как объект такого класса должен записывать себя в базу?
2) или его всетаки должен записывать в базу "список Накладных"?
3) как при рождении нового объекта этого класа заполнять его данными из БД и кто это должен делать?
4) как формировать SQL запросы, по иерархии , или в конечном класе?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32488157
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пунктами 1, 2, 3 и 4 должен заниматься persistence layer вашего приложения (не знаю как по русски, уровень сохранения?). Он же по идее должен заниматься и отображением объектов в реляционную структуру и обратно.
Т.е сохранение (материализация/дематериализация из/в БД) бизнес объектов - это отдельная задача, требующая отдельного набора классов. Не следует смешивать код с бизнес-логикой и чисто технический код.
Все ИМХО.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32488184
Mike Neck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть класс справочник. Он реализует закачку данных через селек, подкачку одной записи, обновление записи, сортировку и ещё кое что. С ним в тесной связи работает класс(форма) - редактор записей. Базовая форма реализует всю подноготную кроме запросов редактирования и вставки. От него наследуется форма в кторой есть только дизайн и сборка SQL.

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

Есть два вьювера Вьювер справочников с режимами показа и тд. И вьювер журналов - они обеспечивают UI

Все работает через интерфейсы. Журналы и справочники ничего не знают о классах редактора/документа а работают через интерфейс. Точно также вьюверы ничего не знают о журналах.

Все модули справочников и журналов регистрируют функцию создания себя в специальной фабрике которая обеспечивает кеширование.

Приложение мое впринципе ничего кроме как сборкой SQL и показом результатов не занимается.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32488523
Nauro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор="Mike Neck"
У меня есть класс справочник. Он реализует закачку данных через селек, подкачку одной записи, обновление записи, сортировку и ещё кое что.

В простонародье (или как учил великий Гради Буч) - это класс сущности.
автор="Mike Neck"
С ним в тесной связи работает класс(форма) - редактор записей.

а это ничто иное как клас общения с пользователем, или граничный класс.
автор="Mike Neck"
На более высоком уровне есть Список документов(журнал). Он унаследован от справочника но обеспечивает иконки(статусы), регистрацию форм поиска, регистрацию классов реализующих специальные команды и пр.

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

Проблема не в отображении сущности. Это вопрос как говорицца "дизайнерский". Проблема в следующем:
Клас сущности должен себя сохранять в базе и восстанавливать себя. Но и это как говорицца не проблема. В конструкторе селект написали + добавили методы апдейта, инсерта, и удаления. Но классы сущности могут унаследоватся от других классов, более того члены этого класса могут быть такими же классами сущностями (простая реляция). Можна тупо написать громосдкие sql запросы, и переопределять эти запросы в наследуемых классах, что очень и очень неудобно. Хотелось бы чтоб это было на автомате. Клас определен и он работает, внезависимости, унаследован ли он, и имеет ли он в своем составе другие классы сущности.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32488880
Mike Neck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет. Журнал тоже ничего не показывает. Показывает вьювер журналов.
Который с журналами работает через интерфейс.


А чтобы и наследование и SQL - не получится. Я через только процедуры работаю. И никаких select просто так не делаю.

А если и получится то громоздкость и неочевидность будет конкретная. UI можно наследовать а SQL по большей части нет.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32488905
Nauro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторНа более высоком уровне есть Список документов(журнал). Он унаследован от справочника но обеспечивает иконки(статусы) ,
ну а эти "иконки (статусы)"? это как понимать?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32488952
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32489042
Nauro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Snake
Я конешно понимаю что легче дать ссылку, да еще и на "родном" англиЦком языке. Но хотелось бы хоть какого то обяснения что и как на пальцах, если человек не решал этой проблемы, более того он даже не стыкался с ней, то не вижу смысла советовать, и показывать просто ссылки.

---------------------
уйдем немного в дотНет.

Тут умные люди ввели уже понятие сериализации обектов. Т.е. их сохранения в некой форме на физическом носителе. Отсюда напрашивается хотение переопределить эти методы под свою дудку, чтоб сохранялись обекты в БД. Как то так. Но как именно, я и хотел узнать тут. Может есть какие то мысли, решения по поводу?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32489087
BlackTigerAP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наивные...

Я как-то давно читал статейку, в которой описывался такой подход. Состояла они из нескольких статей. Пока дело касалось только теории - все щло гладко и красиво, но когда дело дошло до реализации... статья прервалась. Я смеялся ОЧЕНЬ долго.

Не заморачивайтесь со всякими "сучностями". Все хорошо только в теории, а вы еще и на C++ пытаетесь это сделать.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32489175
Nauro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
наивные не наивные, а невозможного нету. И я неверю, что такого рода задачи не решалитсь на спп!
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32489262
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И я неверю, что такого рода задачи не решалитсь на спп!
1. так вот если почитать, все же, то станет понятно, что такие задачи решались и автор конкретно показывает "грабли" таким вот как мы с вами. ищущим и страждущим ...

2. по поводу: "родном" англиЦком языке
нэу камментс.

3. если человек не решал этой проблемы, более того он даже не стыкался с ней, то не вижу смысла советовать, и показывать просто ссылки.
извините, больше не буду.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32489266
qu-qu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что такого рода задачи не решалитсь на спп

Решались, и решаются, и будут решаться...

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

Но всегда тяжело им будет в конкурентной борьбе с дельфинами, васиковцами и с недавних пор дотнетчиками...
Потому как при прочих равных - любой прикладной проект реализованный на плюсах сжирает как минимум в 2 раза больше ресурсов, чем аналогичный - на любой другой RAD-платформе.

З.Ы. хотя бы и потому тоже, что приходится тратить время и силы разработчиков на ту же структуру иерархии базовых классов, и те из счастливчиков, которые уже сделали подобную "предварительную работу", навряд ли станут делиться своими наработками вот так вот запросто - в публичном форуме, забесплатно... (они скорее всего молча еще 1 проект на этой структуре реализуют и денежек себе немного заработают).
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32489814
Nauro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 snake
искренне извиняюс за столь небрежное высказывание.

автор и те из счастливчиков, которые уже сделали подобную "предварительную работу", навряд ли станут делиться своими наработками вот так вот запросто - в публичном форуме, забесплатно... (они скорее всего молча еще 1 проект на этой структуре реализуют и денежек себе немного заработают).
ну что ж . у матросов нет вопросов. Все паняна! ;). Еще раз прошу прощенья если кого обидел.

п.с.
...всем когда то надо начинать, так почему же и мне не начать? Ушел мыслить.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32490121
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор = Артем1Т.е сохранение (материализация/дематериализация из/в БД) бизнес объектов - это отдельная задача, требующая отдельного набора классов. Не следует смешивать код с бизнес-логикой и чисто технический код.
Все ИМХО.
Скажите пожалуйста, как разобраться которые классы подобного приложения должны относится к бизнес-логике, а которые к чисто техническому коду, а которые к интерфейсу с пользователем? Чото я уже совсем запуталься? Но идея мне нравиться!
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32490234
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я на пальцах не силен объяснять, к сожалению. Видимо, к бизнес-объектам можно отности в данном случае классы "Справочник" и "Элемент справочника" (запись в смысле). К классам UI можно отнести форму отображения справочника. Чисто технического тут нет. К примеру класс TDictionaryDAL (DAL - Data Access Logic) с методами Get_набор_записей_справочника (м.б. несколько), Load_элемент_справочника, Save... ну и т.д. Вообще об этом можно по русски почитать у Лармана, у него в конце книги есть пример проектрования контрура работы с БД. Ну и по ссылкам от snake. Тема весьма объемная и непростая, так просто не расскажешь. Навалом как плюсов такого подхода, так и минусов.

блин, пример классов посмотрел не в вашем посте, а у Mike Neck .
Ну да ладно, смысл, я надеюсь, ясен.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32490734
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор = Артем1 Вообще об этом можно по русски почитать у Лармана
Артем1 а в инете нигде нету этой книги в электронном виде (спрашиваю, потому что даже не знаю где ее сейчас достать)? Ну или чего то подобного.
В английском я конечно не силен.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32490902
jazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
думаю после прочтения этого многое станет понятнее...

Приемы объектно-ориентированного проектирования.
Паттерны проектирования
http://www.books.ru/shop/books/8451

Архитектура корпоративных программных приложений
http://www.books.ru/shop/books/156126
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32490989
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ignaci
Насчет электронной версии не в курсе. Наверняка есть, но я не умею
искать такую инфу в нете. :( Тока если попадется чья-нибудь ссылка.
А поисковики посылают только в магазины. :(

2 jazzy
Первая книга конечно классика, но в ней не найти хорошей теории именно
по обсуждаемому вопросу.
Вторую не читал, но вообще у Фаулера книги не плохие. Если вы читали, то
не могли бы кратенько охарактеризовать ее? Типа мнение о книге,
актуальность и т.п. А то эти аннотации на books.ru только курам на смех.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32491951
jazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
первую книгу я упомянул потому как в топике был задал вопрос "как разобраться которые классы подобного приложения должны относится к бизнес-логике, а которые к чисто техническому коду, а которые к интерфейсу с пользователем". если такой вопрос ставится — очевидно человек не знаком с классикой... =)

вторая книга больше относится к данному вопросу — там несколько глав как раз посвящены паттернам взамодейсвия с базами. готовых решений вы в ней тоже, естественно, не найдете, но зато получите представление "как жить дальше". примеры реализации паттернов приводятся на джаве и C#, но реализовать их на C++, думаю, не проблема...

общее мнение — эту книгу вместе с первой должны прочитать все, кто пишет приложения сложнее домашних страничек...
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32491999
jazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 ignaci

Ларман. Применение UML и шаблонов проектирования. 2-е издание.
http://www.books.ru/shop/books/25832
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32492088
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 jazzy
Спасибо за комментарий. Прикуплю этот труд себе в библиотеку.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32492800
Полуэкт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вау! появилось новое поколение килобитовцев 1024 !!! я все же больше готов отнестись с уважением к бедному килобиту который один пуп рвал над непосильной задачей и (я искренне надеюсь) таки понял что к чему...

ответ на ваш вопрос ребята - циплят по осени считают - т.е. сумма материального и морального благополучия - показатель правильности или неправильности почти всего в этом мире - проектов идей жизненных путей философий или их отсутствия...

гыгы.. творите. не забудьте прислать открытку с первой прибыли ;)
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32493838
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наткнулся я на интересную статейку по этой теме (на русском), вроде дает ответы на большенство моих вопросов .

Если кому интересно можете посмотреть
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32495007
jazzy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неплохая статья.
разве что мелкие глупости в примерах кода встречаются. например, конекшен стринг прописан в методе... =)
Код: plaintext
1.
2.
3.
4.
5.
6.
// Метод UpdateCustomer класса CustomerDALC
public void UpdateCustomer(DataSet dsCustomer)
{
  // Соединяемся с базой данных Northwind
  SqlConnection cnNorthwind = new SqlConnection(
     "Data source=localhost;Integrated security=SSPI;Initial
Catalog=northwind" );

но это, очевидно, для наглядности...
хотя мелкими багами в примерах и Фаулер грешит...
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32495237
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неплохая статья.
Ребята, ели кому попадется чето подобное не поленитесь указать ссылку. Зарание спасибо!
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507140
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Статейка "Проектирование компонентов уровня данных и передача данных между уровнями" (/www.gotdotnet.ru/LearnDotNet/NETFramework/592.aspx) конечно хорошая, но не понятного остается итак много.
Может кто уже почитал ее из знающих людей и смогут помоч решить некоторые вопросы.
Интересно вот что: в статье приводятся поверхностные описания многих способов организации как DAL-компонентов так и компонентов бизнес-логики,
тут говориться что пользовательские классы бизнес-логики можно объединять в наборы данных (например, ArrayList), которые отлично работают с компонентами UI (DataGrid, и т.д.). Это меня порадовало и я решил что лучше всего мне работать именно с ArrayList в котором я смогу хранить объекты своих классов бизнес-логики. Но когда дело подходит до отправки измененных данных в БД в ADO.NET лучше всего работать с DataSet, DataTable, или с масивами DataRow которые передаються OleDbDataAdapter-у.
Возникает вопрос, как тут быть, переганять ArrayList в DataSet и наоборот. Помоему это не рационально, и будет замедляться работа программы при перегонке больших масивов данных.
Можно наследовать классы бизнес-логики от DataRow , но в таком случае получается маразм в том плане что для каждого уровня иерархии бизнес-логики нужно писать свой клас наследованый от DataTable и вообше тут акое начинается что голова идет кругом.
А может все вообще не так надо делать, а как тогда? Помогите выбрать правельный путь?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507184
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если использовать свои классы, то перегонка в DataSet избыточна. Плюс к этому надо забыть о всевозможных GetChanges, DataRowState, DataView and etc вкусностях, которые придется реализовывать самому (если конечно надо, но кое что надо обязательно), также как и писать свой DataAdapter для своих классов.

Мой тебе совет не заморачивай себе голову, подумай что ты получишь от использования пользовательских классов, и что тебе даст использование DataSet. Конечно UML диаграмма в первом случае получиться очень красивой и описательной.

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

Однако если ты хочешь написать СУПЕР-СУПЕР быстрое приложение - то пользовательские классы и DataReader тебе в руки.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507452
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sa
Однако если ты хочешь написать СУПЕР-СУПЕР быстрое приложение - то пользовательские классы и DataReader тебе в руки.

Sa вы хотите сказать, что эсли я собираюсь организовывать бизнес логику на пользовательских классах (т.е. Документ, Накладная, и т.д.) то лучше мне воопше не использовать такие вещи как DataSet, DataTable а пользоваться
ArrayList и обновления в базе делать максимум с помощью OleDbCommand без
OleDbDataAdapter, и такие вещи как сортировка, поиск мне придется писать самому?
Я вообще то думал что это можно как-то совмещать. Но эсли все так печально, то мне здается понятным то направление в котором мне придется двигаться дальше. Как это Microsoft не продумала такие вещи? Получается - объектно-ориентированое проэктирование (ООП) иерархии классов бизнес-логики приложения неполучится использовать для программ которые будут основаны на методологии ADO.NET?!
Или я чего-то недопонял?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507491
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Sa вы хотите сказать, что эсли я собираюсь организовывать бизнес логику на пользовательских классах (т.е. Документ, Накладная, и т.д.) то лучше мне воопше не использовать такие вещи как DataSet, DataTable а пользоваться
ArrayList и обновления в базе делать максимум с помощью OleDbCommand без
OleDbDataAdapter, и такие вещи как сортировка, поиск мне придется писать самому?

Я рассматриваю это только в контексте "если ты хочешь СУПЕР-СУПЕР быстрое приложение" + добавлю приложение занимающее в памяти мало места. Если для тебя эти вещи не критичны (для меня лично не критичны) ничто не мешает замешать ADO.NET с бизнес-логикой.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507570
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
"если ты хочешь СУПЕР-СУПЕР быстрое приложение" + добавлю приложение занимающее в памяти мало места

Допустим для меня ресурсы машины и скорость роботы приложения не на самом первом месте по важности. Но меня волнует другое - что если приложение будет интенсивно розширяться (доделываться, дописываться ) и в какой-то момент в коде станет невозможно разобраться изза того что в приложении был плохо спроектирован сам каркас, сама структура, которая облегчает как понимание кода так и дальнейшее его сопровождение? Речь же идет о сложной системе, которая со временем должна раращивать функциональность.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507658
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот и сформулировался вопрос (сам по себе):

Как правильно проектировать сложные приложения работающие с БД использующие для доступа к данным ADO.NET? Какова должна быть структура подобних приложений?
Или ADO.NET не приспособлена для построения на ее основе серьезных программ (так называемых "толстых клиентов")? Не думаю что это так.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507695
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно проектировать сложные приложения работающие с БД использующие для доступа к данным ADO.NET? Какова должна быть структура подобних приложений?

Да по всякому можно.
Вам нужны конкретные примеры кода?
И это тоже есть: http://www.rsdn.ru/article/files/libs/RsdnFrameworkData.xml
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32507950
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SnakeДа по всякому можно.
Вам нужны конкретные примеры кода?
И это тоже есть: http://www.rsdn.ru/article/files/libs/RsdnFrameworkData.xml

Супер! Где же вы раньше были? Клевая штука RSDN, а я об этом первый раз слышу.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32508482
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да здесь я был:
/topic/87958&pg=1#639561
... пытался помочь подойти к проблеме академически. ;)
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32510600
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
snakeда здесь я был
Да но это все на ангельском, а я в нем не очень силен. Если бы это все на руском - было бы здорово.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32510619
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... вообще на форуме есть люди, которым есть, что действительно сказать на эту тему (а не кидаться ссылками ;), но вот заставить их говорить... это сложная задача. да и времени на это необходимо не мало. так ведь, а люди?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32510806
Артем1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 snake
имеет ли смысл в очередной раз обсуждать тему, про которую чуть-ли не книги написаны? тем более что действительно, что-бы ее основательно обсудить, надо прилично времени. на том же rsdn-не ветки по 3 десятка страниц, чего повторяться?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32510809
Фотография hDrummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
snake, ты старый мудрый воин :)
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32510864
Фотография snake
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2hDrummer

Я аж оглянулся... это я то!!!

ps
Console::WriteLine(hDrummer.YearOfBirth()+6);
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32523138
Valera-x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32524383
ignaci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А кто то пользовался уже AtomsFramework? Довольно прикольная библиотека, позволяет описывать отображение бызнес-классов на таблицы БД и ассоциации между ними в настроечном XML-файле. Мне она понравилась, но я пока не смог полностью с ней разобраться, и был бы благодарен человеку который бы смог ответить на некоторые вопросы.
Например, как мне сделать выборку (подгрузить из БД в CPersistentCollection) объектов по заданому условию, ну наприменр, выписаные накладные за определенный период, скажем от
01.01.2002 по 12.03.2002. Как єтого добиться?
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32615916
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У себя в проекте я сделал так :

Структура пользовательских данных отображенна в виде дерева в xml
Все сущности выражены в нодах и сссылках.

СОздание базы и все базовые фунционалы описаны в соответсвующих элементах.

Поэтому пополнение структуры базы происходит без программирования и создания классов вообще.

На приложение (15 мег исходников, сделан аналог EM, QA, 3D Explorier, Map component, ...... куча научных прибамбахов ) от силы 50 классов, и то большая часть из них формы.

Формально классы С++ вырождены в аналог в XML.

Пользователь вправе создавать свoю структуру базы или пользоваться готовыми стандартaми страны или организации.
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32617928
Alex Antonoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
snakeИ это тоже есть: http://www.rsdn.ru/article/files/libs/RsdnFrameworkData.xml

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

В моем случае реализована OnDemand загрузка связей, то есть, если вы получили документ и решили не просматривать его содержимое, то оно загружаться и не будет + кеширование на чтение на слабосвязанных ссылках, гарантирующее, что в памяти у меня всегда будет один экземпляр определенной позиции, в не зависимости, в скольки документах она используется + timestamp на каждый обьект, гарантирующий, что ни кто не изменил запись в БД, пока ее копия была в программе.

LepsikУ себя в проекте я сделал так :
Структура пользовательских данных отображенна в виде дерева в xml
Все сущности выражены в нодах и сссылках.

Почему я так не делал:
В своих проектах я всю работу с БД организую с использованем хранимых процедур, что позволяет мне оторвать структуру хранения от логики работы + легко разводить права доступа, соответственно, ни какого прямого отображения на структуру данных у меня нет и быть не может. + в моем случае более просто одновременно поддерживать разные версии клиентов, т.к. если нужно расширить функционал, я не изменяю существующую ХП, а делаю новую версию ее. Соответственно, клиент новый клиент работает с новой ХП, старый, со старой, и они оба работают нормально. При этом я могу менять структуру данных, внося исправления в соответсвющие ХП, могу разбивать хранение сущностей на несколько таблиц, а не делать 1 в 1
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32627400
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ignaci

Убежден что каждому разработчику клиент-серверных систем будет очень полезно прочесть книгу Роберт Дж. Мюллера "Базы данных и UML". Там есть ответ на ваш вопрос + на кучу других. При это в отличие от некоторых "трудов" - книга сугубо практическая и полезна не только в качестве настольной книги для цитирования в форумах, но и как реальный набор решений для повседневной жизни :)
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32630286
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2ex Antonoff

--В своих проектах я всю работу с БД организую с использованем хранимых процедур, что позволяет мне оторвать структуру хранения от логики работы + легко разводить права доступа

мой проект затачивается на работу первой пятеркой баз данных и причем это коробочный продукт - должен работать как с одним глупым пользователем так и на индустриальном уровне - работа с данными обьема страны
...
Рейтинг: 0 / 0
работа с реляционными данными в объектно-ориентированых программмах
    #32649702
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая система NEXUS

База разработна в объектно-ориентированном стиле и клиент написан на С++. Это все бесплатно и с исходниками. Даже есть неслабая прикладная часть. В основном складской учет, но не только.
Не распыляйтесь. Лучше присоединитесь к команде разработчиков.
...
Рейтинг: 0 / 0
48 сообщений из 48, показаны все 2 страниц
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / работа с реляционными данными в объектно-ориентированых программмах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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