powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / работа с реляционными данными в объектно-ориентированых программмах
23 сообщений из 48, страница 2 из 2
работа с реляционными данными в объектно-ориентированых программмах
    #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
23 сообщений из 48, страница 2 из 2
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / работа с реляционными данными в объектно-ориентированых программмах
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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