|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
У меня давно в голове крутится идея, которая касается взаимодействия объектной модели и реляционной. Больше всего я занимался сайтами (на php), но с Winforms тоже такая проблема возникает. А именно: почитал я Фаулера, который советует кучу разных вариантов - шлюзы данных, активные записи и т.п. Но беда в том, что если у сущности много полей, то запрограммировать это дело еще не так сложно, а вот потом вносить изменения - сущий кошмар. Например, просят добавить еще 2 поля, значит изменения нужно внести: - в таблицу в базе данных - в классе: метод загрузки себя из базы, записи себя, обновления - еще в классе, если дело касается веба: загрузка значений из HTTP-запроса, их фильтрация, сохранение/чтение в сессии и т.п. - в отображении: всевозможные формы отображения, редактирования и т.п. (коих довольно много обычно). Забыть где-то внести изменения очень легко :) Я думаю сделать так, чтобы класс автоматически сам везде все обновлял, через рефлексию. Ну т.е. добавляю я новый атрибут, а все методы работы с БД и т.п. автоматически это распознают, и добавляют необходимую логику в запросы. Сделать какой-то контрол отображения, который тоже создает формы ввода, редактирования и т.п. на основе существующих атрибутов класса, т.е. динамически. В php я такую штуку для себя сделал и пока доволен - значительно упростил себе жизнь. Каково ваше мнение о таком подходе? Или он уже далеко не нов? Понятно, что там пока много неясных вопросов (как быть с зависимыми объектами и т.п.), но это уже второй вопрос :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2008, 15:22 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
возьми уже объектную БД и не мучайся (т.к. бесполезно отговаривать :) ) ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2008, 16:18 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Sanchez911Каково ваше мнение о таком подходе? - изобретение велосипеда :) ORM (прекрасно отображает объекты на РСУБД и допускает наследование объектов), EJB (удобная технология создания масштабируемых систем на Java с использованием ORM), JSF и ASP.NET (генерация форм на основе списка полей объекта и автоматическая обработка этих форм - я, честно говоря, не фанат этих технологий, но просто ключевые слова по теме) и т. д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2008, 17:20 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Идея красивая, только не работает на сложных системах, с большим количеством взаимосвязей. Здесь предполагается, что изменение в структуре данных автоматом ведет за собой изменение в интерфейсах, представлениях, отчетах и проч, что далеко не всегда так. imho, для надежности лучше явно прописать по всей цепочке, чем потом мучится и пытаться объяснить откуда взялись какие-то новые суммы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2008, 18:05 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
А какие есть ORM под .NET? И как они сохраняют объекты в базе данных, сериализуя, или же приводя в соответствие реляционную структуру? авторASP.NET (генерация форм на основе списка полей объекта и автоматическая обработка этих форм А можно поподробнее, как эта технология называется в асп.нет? И что есть объектная БД? :) СергейТТТ, наверное в разных ситуациях по-разному, но у меня каждый раз куча мороки и ошибок от того, что заказчик просит добавить новое поле, а я где-то забываю это сделать. Поэтому мне нужно добавить 1 раз и забыть :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2008, 21:22 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Sanchez911А какие есть ORM под .NET? тынц Sanchez911 И как они сохраняют объекты в базе данных, сериализуя, или же приводя в соответствие реляционную структуру? - лень в гугле покопаться? само собой переводят объектные данные в естественную для РСУБД форму Sanchez911А можно поподробнее, как эта технология называется в асп.нет? Да все там на этом построено :) ASP.NET (посмотрите рекламный ролик) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2008, 23:47 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
В гугле уже покопался :) Остается вопрос с АСП.нет: я не знаю, как там сделать автоматическую генерацию формы по полям. Ну можно накидать контролов на страницу, но это же нифига не автоматически. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 00:18 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Sanchez911Ну можно накидать контролов на страницу, но это же нифига не автоматически. - уже и мышкой лень кликать ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 00:28 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Sanchez911это же нифига не автоматически. - на крайняк, старый добрый XSLT: Object в XML, XML+XSLT в HTML ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 00:31 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Такие велосипеды давно изобретены во многих учетных системах, например SAP. Именно добавление новых полей в сущность посредством UI и автоматическое отображение этих новых полей в формах редактирования этой сущности. Хранится такое в EAV (обычно), в интерфейсном слое реализуется большим объемом кода и гибкими средствами UI. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 00:47 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Почитал про готовые решения: либо надо платить деньги и получить избыточную библиотеку, а в следствие притянутой универсальности - еще и не самую оптималную генерацию для СУБД, либо брать сырое, недокументированное, в чем сложно разобраться. Между тем, задача - именно в поставленном объеме совсем не велика. Генерировать классический SQL на основе заданных связей - задачка вполне тривиальная. Добавить фильтрацию - тоже не проблема. Что касается интерфейса, то конечно, размещение полей на форме - это вроде как процес творческий. Но, тут зависит от объема дополнительной информации которая будет сообщена генератору, чтобы получить красивое размешение. Вообщем, на мой взгляд, генерация кода классов для представлеия интерфейса+взаимодействие с базой данных - на основе описания сущностей - разработчику задача на 2 недели. Примерно столько же придется разбираться с чужим продкутом Зато свой будешь знать как свои пять пальцев и будешь уверен в специфичности для выбранной СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 04:00 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Alexsalog Между тем, задача - именно в поставленном объеме совсем не велика. Генерировать классический SQL на основе заданных связей - задачка вполне тривиальная. Скорее всего, авторы уже найденных тобой решений (либо изыточных либо сырых) поначалу тоже так думали... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 09:25 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Sanchez911А какие есть ORM под .NET? И как они сохраняют объекты в базе данных, сериализуя, или же приводя в соответствие реляционную структуру? авторASP.NET (генерация форм на основе списка полей объекта и автоматическая обработка этих форм А можно поподробнее, как эта технология называется в асп.нет? И что есть объектная БД? :) СергейТТТ, наверное в разных ситуациях по-разному, но у меня каждый раз куча мороки и ошибок от того, что заказчик просит добавить новое поле, а я где-то забываю это сделать. Поэтому мне нужно добавить 1 раз и забыть :) Рановато имхо ты взялся Фаулера читать ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 09:28 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 09:32 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
pirovindos Alexsalog Между тем, задача - именно в поставленном объеме совсем не велика. Генерировать классический SQL на основе заданных связей - задачка вполне тривиальная. Скорее всего, авторы уже найденных тобой решений (либо изыточных либо сырых) поначалу тоже так думали... ну от чего же, я например налабал такую библиотечку год назад. хотя конечно, там, есть что поправить... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 09:49 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Ну и у нас тоже что-то есть, и тоже напильника требует :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 09:55 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
Alexsalog Зато свой будешь знать как свои пять пальцев и будешь уверен в специфичности для выбранной СУБД. ты для СЕБЯ пишешь или для заказчика? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 13:12 |
|
Вопрос-предложение по архитектуре
|
|||
---|---|---|---|
#18+
УРановато имхо ты взялся Фаулера читать Не думаю, в целом там все понятно, только просто ужасно написана книга. Структурированность ужасная, постоянно ссылки на то, что будет рассказано потом, очень тяжело читается, и еще почему-то в ней преобладает жирный шрифт :) Решения других разработчиков, которые открытые, посмотрю, интересно кто как делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.06.2008, 14:13 |
|
|
start [/forum/topic.php?fid=33&fpage=44&tid=1548766]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 435ms |
0 / 0 |