|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
SolYUtorЗачем страдать фигнёй исходя из ложного предположения? И ссылки почитайте, полезно будет. ссылки я почитал и в связи с этим задал вопрос, если у вас не было такой ситуации, это не значит что их вообще не существует, а история следующая: проект, прототип, первая версия, MS SQL Compact 3.5 + LINQ-to-SQL, внезапно появляется элементарное требование - сделать пейджинг на страницах, чтобы не 1000 записей, а по 10,20,... SQL Compact 3.5 не умеет этого в нативном sql, сменили версию на 4.0, только вот LINQ-to-SQL не умеет с ней, пришлось менять ORM, на EF, было около 20-30 выделенных репозитеориев (интерфейс + реализация для LINQ + реализация для MOCK), сколько было мест использований - не считал, на все ушло полдня-день, плюс еще сделали дженерик для пейджинг-коллекций со свойствами TotalCount / PageCount / PageSize Репозиторий скрывает контекст БД, вы его предлагаете убрать (по ссылкам кстати его не убирают, а заменяют выход от готового списка на гибкий IQueryable<T>), т.е. вы с вашим подходом будете писать везде, нечто такое: Код: c# 1. 2. 3. 4. 5. 6.
и это в сотнях и тысячах мест xD ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 12:59 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRos, Нуу.. я может вас не так понял, но я думал, что вы покажете или фрагмент кода или скажите какие-то соображения относительно использования презентеров. Например, вот скрин программы и вот здесь вот я использовал MVP подход, а вот для этой въюшки - нет, потому-что здесь это нафиг не надо (это уже что-то) А вы выложили скрины программы, которая создает сущности на основании их метаданных ) Мне ничего не оставалось, как ответить - "Впечатляет!" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 13:05 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
besserebrenik, Насчет обуждения Repository, возращающего готовые списки и IQueryable<T> , рекомендую почитать (вместе с комментариями) Из комментариев первой статьи появляется уже вторая статья. http://blog.byndyu.ru/2011/01/domain-driven-design-repository.html http://blog.byndyu.ru/2011/08/repository.html Мне, честно говоря нравится более второй подход, как было отмечено 17-77, он гибче ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 13:16 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
besserebrenik, да я не про тебя :) ты то все уловил на корню ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 13:52 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77ссылки я почитал и в связи с этим задал вопрос, если у вас не было такой ситуации, это не значит что их вообще не существует, а история следующая: проект, прототип, первая версия, MS SQL Compact 3.5 + LINQ-to-SQL, внезапно появляется элементарное требование - сделать пейджинг на страницах, чтобы не 1000 записей, а по 10,20,... SQL Compact 3.5 не умеет этого в нативном sql, сменили версию на 4.0, только вот LINQ-to-SQL не умеет с ней, пришлось менять ORM, на EF, было около 20-30 выделенных репозитеориев (интерфейс + реализация для LINQ + реализация для MOCK), сколько было мест использований - не считал, на все ушло полдня-день, плюс еще сделали дженерик для пейджинг-коллекций со свойствами TotalCount / PageCount / PageSize Сочувствую. Вы выбрали убогую технологию. С ней невозможно построить сколь-нибудь приличное приложение. Вот и занялись заменой того-сего. Пробовали выйти за пределы microsof echo chamber? Там много всего интересного! Честно-честно. Насчёт IQueryable - его по-настоящему поддерживает только linq-to-object. Все остальные провайдеры лишь небольшую его часть, причем все по разному. Работая с ним вы используете дырявую абстракцию, т.к. ориентируетесь на конкретный механизм доступа к данным. Подробнее . Для сложных приложений всегда приходится ориентироваться на конкретный тип доступа к данным из соображений эффективности. Поэтому хороший построить репозиторий, который действительно легко заменить можно только ценой потери эффективности (гибкое управление ленивой загрузкой, количеством запросов к бд, количеством загружаемых записей и т.д.). Это плата не для меня. besserebrenikМне, честно говоря нравится более второй подход, как было отмечено 17-77, он гибче Каждая абстракция отрезает низкоуровневые возможности, вы сознательно их игнорируете. Иногда это хорошо, иногда не очень. С данными это всегда не очень. Представьте себе, что есть интерфейс: Код: c# 1. 2. 3. 4.
Если этот интерфейс имеет реализует холодильник - проблем нет. Захотели пообедать - сходили к холодильнику. А теперь представьте себе, что в арктической экспедиции, и IFoodRepository реализует корабль, который приплывает к вам раз в полгода. Сможете ли вы игнорировать этот факт? Поэтому могу лишь еще раз повторить свою точку зрения - при наличии хорошей ORM или развитого механизма доступа к данным - репозиторий зло. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 15:47 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRos, если что - то меня не впечатляет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 15:48 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
SolYUtor, почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 15:59 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
17-77внезапно появляется элементарное требование - сделать пейджинг на страницах, чтобы не 1000 записей, а по 10,20,... SQL Compact 3.5 не умеет этого в нативном sql..."Просчёты одних рождают героизм других" (с) Архитектору стоит почуствовать себя виноватым. 17-77Репозиторий скрывает контекст БД, вы его предлагаете убрать (по ссылкам кстати его не убирают, а заменяют выход от готового списка на гибкий IQueryable<T>), т.е. вы с вашим подходом будете писать везде, нечто такое: Код: c# 1. 2. 3. 4. 5. 6.
и это в сотнях и тысячах мест xDЧто вместо этого предлагается писать в "сотнях и тысячах мест"? Вроде как в представленном примере весь код направлен на решение чисто прикладной задачи: Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 16:26 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRosпочему?Потому что проще воспользоваться тем же WPF + нормальный бизнес-фреймворк, чем вводить метаданные + править ядро ВипРоса в случае нетиповых ситуаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 16:40 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRosпочему? Алексей КПотому что проще воспользоваться тем же WPF + нормальный бизнес-фреймворк, чем вводить метаданные + править ядро ВипРоса в случае нетиповых ситуаций. Отвечу сразу обоим. Дело даже не в WPF как таковом, дело глобальнее. Программистов (и тех кто рядом) уже давно волнуют некоторые больные вопросы софтостроения, удачное решения для которых бередит умы опытных и неопытных программистов. Одну из них - доступ к данным - мы сейчас активно мусолим. Но единого победоносного варианта нет. Всегда приходится искать способы сгладить углы на мультиугольнике. Серебряных пуль не подвезли. Еще одна особо голубая мечта человечества - писать программы без программистов. Уже не одно поколение средств померло в попытках родить нечто, что может выкинуть дорогих программистов из процесса создания ПО. Всякие case-средства, нонче вот народ любит с BPL баловаться. Но у этих попыток есть две большие проблемы: 1. Создание средства, которое позволяло бы моделировать что-либо на достойном уровне очень-очень невероятно сложно само по себе, и требует миллионы человеко-лет труда. Далеко не всем конторам это под силу. Но даже решение этой проблемы бессмысленно, из-за второй проблемы. 2. Программирование сложно само по себе. Малое количество пользователей может формализовать проблему. А уж запрограммировать (пусть мышкой) - это высший пилотаж. Приходится нанимать консультантов, чтобы они могли настроить систему . Это уже не говоря про другие вопросы: как управлять конфигурацией, как класть изменения в контроль версий и управлять изменениями, как проводить аудит, как тестировать, как отлаживать, как решать вопросы производительности и т.д. и т.п. Даже более простая задача - конфигурация приложения - это тоже программирование, и требует для своего обслуживания высококвалифицированный персонал. Всё это сводит на нет все теоретические плюсы мышкопрограммируемых систем. С их помощью можно родить только очень простой CRUD-софт. Это эдакий вечный двигатель в разрезе программирования. С помощью языков программирования общего назначения можно получить продукт, лучше удовлетворяющий интересам заказчика, и лучше и проще расширяемый с помощью простой системы плагинов. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 17:17 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
Алексей КАрхитектору стоит почуствовать себя виноватым. в ваших ситуациях архитекторы были экстрасенсами? Алексей КЧто вместо этого предлагается писать в "сотнях и тысячах мест"? абстракцию IRepository.GetMyEnitities() ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 17:53 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
Алексей КViPRosпочему?Потому что проще воспользоваться тем же WPF + нормальный бизнес-фреймворк, чем вводить метаданные + править ядро ВипРоса в случае нетиповых ситуаций. ядро випрос сильнее чем ООП + ОРМ вместе взятые а рожи можно генерить и на ХАМЛ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 17:58 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
SolYUtorОтвечу сразу обоим. .... очень простой CRUD-софт. это тебе кажется в випрос например смоделировано промышленное предприятия ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 18:00 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRos, ппц, ядро випрос сильнее парадигмы программирования (ООП) и технологии программирования (ORM). В мемориз однозначно. P.S. Походу випрос еще сильнее Microsoft, президента России и силы притяжения Солнца... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 20:34 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
LelouchViPRos, ппц, ядро випрос сильнее парадигмы программирования (ООП) и технологии программирования (ORM). В мемориз однозначно. P.S. Походу випрос еще сильнее Microsoft, президента России и силы притяжения Солнца... да в випрос заложены более мощные парадигмы чем ООП и ОРМ ОРМ не технология программиирования, а технология проектирования ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 20:41 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRos, Википедия с вами не согласится, http://ru.wikipedia.org/wiki/ORM ВипРос это мало кому нужное непойми-что, если честно)) P.S. И Вы совершенно не поняли смысла моего поста, программа не может быть сильнее парадигмы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 20:45 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
А, и судя по сайту www.vipros.ru Вы пока что смоделировали только ведение договоров с заказчиками)) Может хотя бы хватит кричать о универсальности?) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 20:57 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
LelouchViPRos, Википедия с вами не согласится, http://ru.wikipedia.org/wiki/ORM ВипРос это мало кому нужное непойми-что, если честно)) P.S. И Вы совершенно не поняли смысла моего поста, программа не может быть сильнее парадигмы. ты наверное пропустил имоушей ORM также может означать: англ. Object Role Model, рус. Модель ролей объекта — методика концептуального проектирования информационных систем, включающая собственную графическую нотацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 21:00 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
LelouchА, и судя по сайту www.vipros.ru Вы пока что смоделировали только ведение договоров с заказчиками)) Может хотя бы хватит кричать о универсальности?) да срать мне на сайт ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 21:01 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRos, да вам на все "срать", если критикуется ваша система)) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 21:04 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ну, вот давай и сделаем, что бы хотя б тебе было известно :) да какие нафиг договоры ВИП.Производство (а не ВИПРОС) описывает Промышленое предприятия структурно и процессно, строит оптимальное (минимизирует рсесурсный потенциал для достижения целей по заданным критериям в при ограничениях, а так же рекомендует действия для реструктрузации ограничений ) расписание работы для всех производствено логистических структурных элементов предприятия(групп предприятияй), диспетчирует расписание и перепланирует в реалтайм ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 21:06 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
LelouchViPRos, да вам на все "срать", если критикуется ваша система)) ты еще ничего не критиковал :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 21:06 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRos, если Vipros может смоделировать документооборот например то почему у нее 2! внедрения судя по сайту, по сравнению с "Евфрат" ( http://www.evfrat.ru, единственная о которой я слышал (стоит у заказчика))(4500+ внедрений) ?) Вывода 2: 1) VipRos не способна его смоделировать 2) VipRos делает это гораздо хуже специализированной системы документооборота ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 21:07 |
|
Iclude в NHibernate
|
|||
---|---|---|---|
#18+
ViPRos, ну для начала вы так и не ответили как можно сравнить программу и парадигму) Критиковал, в споре ORM vs SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2012, 21:08 |
|
|
start [/forum/topic.php?fid=17&msg=37774702&tid=1350360]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 150ms |
0 / 0 |