|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
неплохая статья. разве что мелкие глупости в примерах кода встречаются. например, конекшен стринг прописан в методе... =) Код: plaintext 1. 2. 3. 4. 5. 6.
но это, очевидно, для наглядности... хотя мелкими багами в примерах и Фаулер грешит... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2004, 19:02 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
неплохая статья. Ребята, ели кому попадется чето подобное не поленитесь указать ссылку. Зарание спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2004, 10:35 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
Статейка "Проектирование компонентов уровня данных и передача данных между уровнями" (/www.gotdotnet.ru/LearnDotNet/NETFramework/592.aspx) конечно хорошая, но не понятного остается итак много. Может кто уже почитал ее из знающих людей и смогут помоч решить некоторые вопросы. Интересно вот что: в статье приводятся поверхностные описания многих способов организации как DAL-компонентов так и компонентов бизнес-логики, тут говориться что пользовательские классы бизнес-логики можно объединять в наборы данных (например, ArrayList), которые отлично работают с компонентами UI (DataGrid, и т.д.). Это меня порадовало и я решил что лучше всего мне работать именно с ArrayList в котором я смогу хранить объекты своих классов бизнес-логики. Но когда дело подходит до отправки измененных данных в БД в ADO.NET лучше всего работать с DataSet, DataTable, или с масивами DataRow которые передаються OleDbDataAdapter-у. Возникает вопрос, как тут быть, переганять ArrayList в DataSet и наоборот. Помоему это не рационально, и будет замедляться работа программы при перегонке больших масивов данных. Можно наследовать классы бизнес-логики от DataRow , но в таком случае получается маразм в том плане что для каждого уровня иерархии бизнес-логики нужно писать свой клас наследованый от DataTable и вообше тут акое начинается что голова идет кругом. А может все вообще не так надо делать, а как тогда? Помогите выбрать правельный путь? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 11:57 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
Если использовать свои классы, то перегонка в DataSet избыточна. Плюс к этому надо забыть о всевозможных GetChanges, DataRowState, DataView and etc вкусностях, которые придется реализовывать самому (если конечно надо, но кое что надо обязательно), также как и писать свой DataAdapter для своих классов. Мой тебе совет не заморачивай себе голову, подумай что ты получишь от использования пользовательских классов, и что тебе даст использование DataSet. Конечно UML диаграмма в первом случае получиться очень красивой и описательной. Для подавляющего количества всевозможных задач использование DataSet вполне оправдано, может быть является чуть более громоздким (так как создание DataSet влечет за собой создание кучи подобъектов), но главное самодостаточным и без дополнительного геммороя. Однако если ты хочешь написать СУПЕР-СУПЕР быстрое приложение - то пользовательские классы и DataReader тебе в руки. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 12:15 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
Sa Однако если ты хочешь написать СУПЕР-СУПЕР быстрое приложение - то пользовательские классы и DataReader тебе в руки. Sa вы хотите сказать, что эсли я собираюсь организовывать бизнес логику на пользовательских классах (т.е. Документ, Накладная, и т.д.) то лучше мне воопше не использовать такие вещи как DataSet, DataTable а пользоваться ArrayList и обновления в базе делать максимум с помощью OleDbCommand без OleDbDataAdapter, и такие вещи как сортировка, поиск мне придется писать самому? Я вообще то думал что это можно как-то совмещать. Но эсли все так печально, то мне здается понятным то направление в котором мне придется двигаться дальше. Как это Microsoft не продумала такие вещи? Получается - объектно-ориентированое проэктирование (ООП) иерархии классов бизнес-логики приложения неполучится использовать для программ которые будут основаны на методологии ADO.NET?! Или я чего-то недопонял? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 14:16 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
>Sa вы хотите сказать, что эсли я собираюсь организовывать бизнес логику на пользовательских классах (т.е. Документ, Накладная, и т.д.) то лучше мне воопше не использовать такие вещи как DataSet, DataTable а пользоваться ArrayList и обновления в базе делать максимум с помощью OleDbCommand без OleDbDataAdapter, и такие вещи как сортировка, поиск мне придется писать самому? Я рассматриваю это только в контексте "если ты хочешь СУПЕР-СУПЕР быстрое приложение" + добавлю приложение занимающее в памяти мало места. Если для тебя эти вещи не критичны (для меня лично не критичны) ничто не мешает замешать ADO.NET с бизнес-логикой. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 14:33 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
автор "если ты хочешь СУПЕР-СУПЕР быстрое приложение" + добавлю приложение занимающее в памяти мало места Допустим для меня ресурсы машины и скорость роботы приложения не на самом первом месте по важности. Но меня волнует другое - что если приложение будет интенсивно розширяться (доделываться, дописываться ) и в какой-то момент в коде станет невозможно разобраться изза того что в приложении был плохо спроектирован сам каркас, сама структура, которая облегчает как понимание кода так и дальнейшее его сопровождение? Речь же идет о сложной системе, которая со временем должна раращивать функциональность. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 15:24 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
Вот и сформулировался вопрос (сам по себе): Как правильно проектировать сложные приложения работающие с БД использующие для доступа к данным ADO.NET? Какова должна быть структура подобних приложений? Или ADO.NET не приспособлена для построения на ее основе серьезных программ (так называемых "толстых клиентов")? Не думаю что это так. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 16:09 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
Как правильно проектировать сложные приложения работающие с БД использующие для доступа к данным ADO.NET? Какова должна быть структура подобних приложений? Да по всякому можно. Вам нужны конкретные примеры кода? И это тоже есть: http://www.rsdn.ru/article/files/libs/RsdnFrameworkData.xml ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 16:22 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
SnakeДа по всякому можно. Вам нужны конкретные примеры кода? И это тоже есть: http://www.rsdn.ru/article/files/libs/RsdnFrameworkData.xml Супер! Где же вы раньше были? Клевая штука RSDN, а я об этом первый раз слышу. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2004, 18:14 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
да здесь я был: /topic/87958&pg=1#639561 ... пытался помочь подойти к проблеме академически. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.05.2004, 09:43 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
snakeда здесь я был Да но это все на ангельском, а я в нем не очень силен. Если бы это все на руском - было бы здорово. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2004, 13:14 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
... вообще на форуме есть люди, которым есть, что действительно сказать на эту тему (а не кидаться ссылками ;), но вот заставить их говорить... это сложная задача. да и времени на это необходимо не мало. так ведь, а люди? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2004, 13:22 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
2 snake имеет ли смысл в очередной раз обсуждать тему, про которую чуть-ли не книги написаны? тем более что действительно, что-бы ее основательно обсудить, надо прилично времени. на том же rsdn-не ветки по 3 десятка страниц, чего повторяться? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2004, 14:48 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
snake, ты старый мудрый воин :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2004, 14:49 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
2hDrummer Я аж оглянулся... это я то!!! ps Console::WriteLine(hDrummer.YearOfBirth()+6); ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2004, 15:14 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2004, 07:02 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
А кто то пользовался уже AtomsFramework? Довольно прикольная библиотека, позволяет описывать отображение бызнес-классов на таблицы БД и ассоциации между ними в настроечном XML-файле. Мне она понравилась, но я пока не смог полностью с ней разобраться, и был бы благодарен человеку который бы смог ответить на некоторые вопросы. Например, как мне сделать выборку (подгрузить из БД в CPersistentCollection) объектов по заданому условию, ну наприменр, выписаные накладные за определенный период, скажем от 01.01.2002 по 12.03.2002. Как єтого добиться? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2004, 16:28 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
У себя в проекте я сделал так : Структура пользовательских данных отображенна в виде дерева в xml Все сущности выражены в нодах и сссылках. СОздание базы и все базовые фунционалы описаны в соответсвующих элементах. Поэтому пополнение структуры базы происходит без программирования и создания классов вообще. На приложение (15 мег исходников, сделан аналог EM, QA, 3D Explorier, Map component, ...... куча научных прибамбахов ) от силы 50 классов, и то большая часть из них формы. Формально классы С++ вырождены в аналог в XML. Пользователь вправе создавать свoю структуру базы или пользоваться готовыми стандартaми страны или организации. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2004, 00:40 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
snakeИ это тоже есть: http://www.rsdn.ru/article/files/libs/RsdnFrameworkData.xml Имею реально работающее приложение, написанное с использованием данной либы. Резюме: Вещь удобная, но есть кое какие глюки. В моем случае реализована OnDemand загрузка связей, то есть, если вы получили документ и решили не просматривать его содержимое, то оно загружаться и не будет + кеширование на чтение на слабосвязанных ссылках, гарантирующее, что в памяти у меня всегда будет один экземпляр определенной позиции, в не зависимости, в скольки документах она используется + timestamp на каждый обьект, гарантирующий, что ни кто не изменил запись в БД, пока ее копия была в программе. LepsikУ себя в проекте я сделал так : Структура пользовательских данных отображенна в виде дерева в xml Все сущности выражены в нодах и сссылках. Почему я так не делал: В своих проектах я всю работу с БД организую с использованем хранимых процедур, что позволяет мне оторвать структуру хранения от логики работы + легко разводить права доступа, соответственно, ни какого прямого отображения на структуру данных у меня нет и быть не может. + в моем случае более просто одновременно поддерживать разные версии клиентов, т.к. если нужно расширить функционал, я не изменяю существующую ХП, а делаю новую версию ее. Соответственно, клиент новый клиент работает с новой ХП, старый, со старой, и они оба работают нормально. При этом я могу менять структуру данных, внося исправления в соответсвющие ХП, могу разбивать хранение сущностей на несколько таблиц, а не делать 1 в 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2004, 07:34 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
ignaci Убежден что каждому разработчику клиент-серверных систем будет очень полезно прочесть книгу Роберт Дж. Мюллера "Базы данных и UML". Там есть ответ на ваш вопрос + на кучу других. При это в отличие от некоторых "трудов" - книга сугубо практическая и полезна не только в качестве настольной книги для цитирования в форумах, но и как реальный набор решений для повседневной жизни :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.07.2004, 15:09 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
2ex Antonoff --В своих проектах я всю работу с БД организую с использованем хранимых процедур, что позволяет мне оторвать структуру хранения от логики работы + легко разводить права доступа мой проект затачивается на работу первой пятеркой баз данных и причем это коробочный продукт - должен работать как с одним глупым пользователем так и на индустриальном уровне - работа с данными обьема страны ... |
|||
:
Нравится:
Не нравится:
|
|||
31.07.2004, 01:52 |
|
работа с реляционными данными в объектно-ориентированых программмах
|
|||
---|---|---|---|
#18+
Есть такая система NEXUS База разработна в объектно-ориентированном стиле и клиент написан на С++. Это все бесплатно и с исходниками. Даже есть неслабая прикладная часть. В основном складской учет, но не только. Не распыляйтесь. Лучше присоединитесь к команде разработчиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2004, 15:10 |
|
|
start [/forum/topic.php?fid=17&msg=32524383&tid=1354057]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
others: | 341ms |
total: | 498ms |
0 / 0 |