Структура проекта с БД
От: Павел А.Ануфриков Россия  
Дата: 14.10.10 05:35
Оценка:
Коллеги, подскажите, правильно ли организован проект.

Есть несколько форм, которые редактируют таблицы одной единственной БД. Формы немодальные, постоянно доступны все. VStudio размещает на каждой форме DataSet с xxTableAdapter, в результате, каждая форма содержит копию данных (пусть не полную, но таблицы тесно связаны, поэтому приходится прогружать большинство таблиц).

Есть ли смысл переделывать проект, чтобы был один DataSet в глобальном хранище, и все формы обращались к нему? Огребу ли я, если пойду таким путем?

Еще одной проблемой текущей организации является синхронизация данных между формами. Так как у каждой свой DataSet, то синхронизация осуществляется через БД (у активной Update, у всех остальных Fill), что тоже довольно ресурсоёмко.

Подскажите, пожалуйста. Опыта .Net не много, страшно рефакторить, хорошо не подумав.
Re: Структура проекта с БД
От: vecs Россия  
Дата: 14.10.10 09:21
Оценка: 2 (1)
Здравствуйте,
Во-первых, напрашивается использование какого-нибудь ORMа.
Он будет работать как глобальное хранилище записей таблиц в программе (хотя смысл ORM гораздо шире).
Работа напрямую с датасетами постепенно уходит в прошлое.
Re: Структура проекта с БД
От: chocho Россия  
Дата: 14.10.10 09:55
Оценка:
Здравствуйте, Павел А.Ануфриков, Вы писали:

ПАА>Коллеги, подскажите, правильно ли организован проект.


ПАА>Есть несколько форм, которые редактируют таблицы одной единственной БД. Формы немодальные, постоянно доступны все. VStudio размещает на каждой форме DataSet с xxTableAdapter, в результате, каждая форма содержит копию данных (пусть не полную, но таблицы тесно связаны, поэтому приходится прогружать большинство таблиц).


ПАА>Есть ли смысл переделывать проект, чтобы был один DataSet в глобальном хранище, и все формы обращались к нему? Огребу ли я, если пойду таким путем?


Можно легко огрести в будущем если база будет использоваться из нескольких процессов.
"Не морочьте мне голову. Полыхаев" ©
Re[2]: Структура проекта с БД
От: Lloyd Россия  
Дата: 14.10.10 09:57
Оценка: +1
Здравствуйте, chocho, Вы писали:

ПАА>>Есть ли смысл переделывать проект, чтобы был один DataSet в глобальном хранище, и все формы обращались к нему? Огребу ли я, если пойду таким путем?


C>Можно легко огрести в будущем если база будет использоваться из нескольких процессов.


А как вы представляете работу с одним датасетом из нескольких процессов?
Re[3]: Структура проекта с БД
От: chocho Россия  
Дата: 14.10.10 10:13
Оценка: :))
Здравствуйте, Lloyd, Вы писали:

L>Здравствуйте, chocho, Вы писали:


ПАА>>>Есть ли смысл переделывать проект, чтобы был один DataSet в глобальном хранище, и все формы обращались к нему? Огребу ли я, если пойду таким путем?


C>>Можно легко огрести в будущем если база будет использоваться из нескольких процессов.


L>А как вы представляете работу с одним датасетом из нескольких процессов?


Я её не представляю, поэтому и не советую его исползовать, чтобы потом не расстраиваться.
"Не морочьте мне голову. Полыхаев" ©
Re[2]: Структура проекта с БД
От: Павел А.Ануфриков Россия  
Дата: 14.10.10 13:45
Оценка:
Здравствуйте, chocho, Вы писали:

ПАА>>Есть ли смысл переделывать проект, чтобы был один DataSet в глобальном хранище, и все формы обращались к нему? Огребу ли я, если пойду таким путем?


C>Можно легко огрести в будущем если база будет использоваться из нескольких процессов.


Расшифруйте, пожалуйста, мысль, я тоже её не понял. Процессов м.б. несколько, но у каждого будет свой датасет в глобальных данных.
Re: Структура проекта с БД
От: victor_kr Украина  
Дата: 15.10.10 07:46
Оценка: 2 (1)
Лучше уходить от DataSet-ов. Почитайте об ORM, например, NHibernate или Entity Framework. В интернете много примеров и пошаговых инструкций.
Re[2]: Структура проекта с БД
От: Павел А.Ануфриков Россия  
Дата: 17.10.10 17:55
Оценка:
Здравствуйте, victor_kr, Вы писали:

_>Лучше уходить от DataSet-ов. Почитайте об ORM, например, NHibernate или Entity Framework. В интернете много примеров и пошаговых инструкций.


Спасибо. А я правильно понял, что технология не приемлема для БД на MS Access?
Re[3]: Структура проекта с БД
От: victor_kr Украина  
Дата: 17.10.10 18:59
Оценка: 2 (1)
Сведения о базах данных поддерживаемых NHibernate. В списке есть MS Access.

По Entity Framework не могу найти ссылок, но думаю, что тоже можно настроить подключение.

По моему мнению, в любом случае, даже если бы не было возможности использовать ORM библиотеку (специфические режимы работы с базой данных, специфическая база данных), лучше работать со своими классами, чем с DataSet. ORM всего лишь помогает, так как предлагает готовую модель работы с базой данных. Можно реализовать свою модель. Если база данных простая, то получится быстрее чем с ORM.
Re: Структура проекта с БД
От: GlebZ Россия  
Дата: 17.10.10 19:01
Оценка: 2 (1) +2
Здравствуйте, Павел А.Ануфриков, Вы писали:

ПАА>Есть ли смысл переделывать проект, чтобы был один DataSet в глобальном хранище, и все формы обращались к нему? Огребу ли я, если пойду таким путем?

Мерять логику инструментами неверный подход ведущий в постоянный нетрадиционный секс. Для того чтобы тебе понять нужен или не нужен тебе кэш, нужно сначало посчитать действия пользователя, как должны реагировать остальные формы на то или иное действие. И только потом можно сказать подходит или не подходит тот, или иной инструмент. Постоить кэш легко. Но в многих случаях, обеспечивать его когерентность — мудизъм. Тут ошибка может стоить дорого.
Re[3]: Структура проекта с БД
От: hardcase Пират http://nemerle.org
Дата: 18.10.10 08:55
Оценка:
Здравствуйте, Павел А.Ануфриков, Вы писали:

ПАА>Расшифруйте, пожалуйста, мысль, я тоже её не понял. Процессов м.б. несколько, но у каждого будет свой датасет в глобальных данных.


Процессов несколько, а БД на MS Access — одна?
Вот тут вы точно можете огрести.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[4]: Структура проекта с БД
От: Lloyd Россия  
Дата: 18.10.10 08:58
Оценка:
Здравствуйте, hardcase, Вы писали:

H>Процессов несколько, а БД на MS Access — одна?

H>Вот тут вы точно можете огрести.

С чего бы это? Access прекрасно работает даже на сетевых дисках, не говоря уж о локальном доступе.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.