powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Iclude в NHibernate
25 сообщений из 110, страница 2 из 5
Iclude в NHibernate
    #37774020
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
using (var db = new DataBaseContext())
{
 IQueryable<MyEnitity> query = db.MyEnititys.AsQueryable();
 var result query.Where(e => ...).ToList();
 ...
}



и это в сотнях и тысячах мест xD
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774039
besserebrenik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Нуу.. я может вас не так понял, но я думал, что вы покажете или фрагмент кода или скажите какие-то соображения относительно использования презентеров. Например, вот скрин программы и вот здесь вот я использовал MVP подход, а вот для этой въюшки - нет, потому-что здесь это нафиг не надо (это уже что-то)

А вы выложили скрины программы, которая создает сущности на основании их метаданных )

Мне ничего не оставалось, как ответить - "Впечатляет!" :)
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774077
besserebrenik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, он гибче
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774166
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
besserebrenik,

да я не про тебя :) ты то все уловил на корню
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774494
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
public interface IFoodRepository
{
     Dinner GetDinner();
}


Если этот интерфейс имеет реализует холодильник - проблем нет. Захотели пообедать - сходили к холодильнику. А теперь представьте себе, что в арктической экспедиции, и IFoodRepository реализует корабль, который приплывает к вам раз в полгода. Сможете ли вы игнорировать этот факт?

Поэтому могу лишь еще раз повторить свою точку зрения - при наличии хорошей ORM или развитого механизма доступа к данным - репозиторий зло.
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774498
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

если что - то меня не впечатляет.
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774545
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

почему?
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774655
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
17-77внезапно появляется элементарное требование - сделать пейджинг на страницах, чтобы не 1000 записей, а по 10,20,... SQL Compact 3.5 не умеет этого в нативном sql..."Просчёты одних рождают героизм других" (с)

Архитектору стоит почуствовать себя виноватым.

17-77Репозиторий скрывает контекст БД, вы его предлагаете убрать (по ссылкам кстати его не убирают, а заменяют выход от готового списка на гибкий IQueryable<T>), т.е. вы с вашим подходом будете писать везде, нечто такое:
Код: c#
1.
2.
3.
4.
5.
6.
using (var db = new DataBaseContext())
{
 IQueryable<MyEnitity> query = db.MyEnititys.AsQueryable();
 var result query.Where(e => ...).ToList();
 ...
}



и это в сотнях и тысячах мест xDЧто вместо этого предлагается писать в "сотнях и тысячах мест"?

Вроде как в представленном примере весь код направлен на решение чисто прикладной задачи:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
using (var db = new DataBaseContext()) // управление временем жизни соединения с БД
{

 // прикладная логика
 IQueryable<MyEnitity> query = db.MyEnititys.AsQueryable();
 var result query.Where(e => ...).ToList();
 ...
}
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774702
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosпочему?Потому что проще воспользоваться тем же WPF + нормальный бизнес-фреймворк, чем вводить метаданные + править ядро ВипРоса в случае нетиповых ситуаций.
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774818
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRosпочему?
Алексей КПотому что проще воспользоваться тем же WPF + нормальный бизнес-фреймворк, чем вводить метаданные + править ядро ВипРоса в случае нетиповых ситуаций.

Отвечу сразу обоим. Дело даже не в WPF как таковом, дело глобальнее. Программистов (и тех кто рядом) уже давно волнуют некоторые больные вопросы софтостроения, удачное решения для которых бередит умы опытных и неопытных программистов. Одну из них - доступ к данным - мы сейчас активно мусолим. Но единого победоносного варианта нет. Всегда приходится искать способы сгладить углы на мультиугольнике. Серебряных пуль не подвезли.

Еще одна особо голубая мечта человечества - писать программы без программистов. Уже не одно поколение средств померло в попытках родить нечто, что может выкинуть дорогих программистов из процесса создания ПО. Всякие case-средства, нонче вот народ любит с BPL баловаться. Но у этих попыток есть две большие проблемы:
1. Создание средства, которое позволяло бы моделировать что-либо на достойном уровне очень-очень невероятно сложно само по себе, и требует миллионы человеко-лет труда. Далеко не всем конторам это под силу. Но даже решение этой проблемы бессмысленно, из-за второй проблемы.
2. Программирование сложно само по себе. Малое количество пользователей может формализовать проблему. А уж запрограммировать (пусть мышкой) - это высший пилотаж. Приходится нанимать консультантов, чтобы они могли настроить систему . Это уже не говоря про другие вопросы: как управлять конфигурацией, как класть изменения в контроль версий и управлять изменениями, как проводить аудит, как тестировать, как отлаживать, как решать вопросы производительности и т.д. и т.п. Даже более простая задача - конфигурация приложения - это тоже программирование, и требует для своего обслуживания высококвалифицированный персонал. Всё это сводит на нет все теоретические плюсы мышкопрограммируемых систем. С их помощью можно родить только очень простой CRUD-софт.
Это эдакий вечный двигатель в разрезе программирования.

С помощью языков программирования общего назначения можно получить продукт, лучше удовлетворяющий интересам заказчика, и лучше и проще расширяемый с помощью простой системы плагинов.
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774912
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КАрхитектору стоит почуствовать себя виноватым.
в ваших ситуациях архитекторы были экстрасенсами?

Алексей КЧто вместо этого предлагается писать в "сотнях и тысячах мест"?
абстракцию IRepository.GetMyEnitities()
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774924
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КViPRosпочему?Потому что проще воспользоваться тем же WPF + нормальный бизнес-фреймворк, чем вводить метаданные + править ядро ВипРоса в случае нетиповых ситуаций.
ядро випрос сильнее чем ООП + ОРМ вместе взятые
а рожи можно генерить и на ХАМЛ
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37774931
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtorОтвечу сразу обоим. ....
очень простой CRUD-софт.

это тебе кажется
в випрос например смоделировано промышленное предприятия
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775064
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

ппц, ядро випрос сильнее парадигмы программирования (ООП) и технологии программирования (ORM). В мемориз однозначно.

P.S. Походу випрос еще сильнее Microsoft, президента России и силы притяжения Солнца...
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775068
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchViPRos,

ппц, ядро випрос сильнее парадигмы программирования (ООП) и технологии программирования (ORM). В мемориз однозначно.

P.S. Походу випрос еще сильнее Microsoft, президента России и силы притяжения Солнца...
да в випрос заложены более мощные парадигмы чем ООП и ОРМ
ОРМ не технология программиирования, а технология проектирования
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775071
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

Википедия с вами не согласится, http://ru.wikipedia.org/wiki/ORM

ВипРос это мало кому нужное непойми-что, если честно))

P.S. И Вы совершенно не поняли смысла моего поста, программа не может быть сильнее парадигмы.
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775074
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, и судя по сайту www.vipros.ru Вы пока что смоделировали только ведение договоров с заказчиками)) Может хотя бы хватит кричать о универсальности?)
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775075
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchViPRos,

Википедия с вами не согласится, http://ru.wikipedia.org/wiki/ORM

ВипРос это мало кому нужное непойми-что, если честно))

P.S. И Вы совершенно не поняли смысла моего поста, программа не может быть сильнее парадигмы.
ты наверное пропустил имоушей
ORM также может означать: англ. Object Role Model, рус. Модель ролей объекта — методика концептуального проектирования информационных систем, включающая собственную графическую нотацию.
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775076
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchА, и судя по сайту www.vipros.ru Вы пока что смоделировали только ведение договоров с заказчиками)) Может хотя бы хватит кричать о универсальности?)
да срать мне на сайт
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775077
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

да вам на все "срать", если критикуется ваша система))
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775078
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну, вот давай и сделаем, что бы хотя б тебе было известно :)
да какие нафиг договоры
ВИП.Производство (а не ВИПРОС) описывает Промышленое предприятия структурно и процессно, строит оптимальное (минимизирует рсесурсный потенциал для достижения целей по заданным критериям в при ограничениях, а так же рекомендует действия для реструктрузации ограничений ) расписание работы для всех производствено логистических структурных элементов предприятия(групп предприятияй), диспетчирует расписание и перепланирует в реалтайм
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775081
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LelouchViPRos,

да вам на все "срать", если критикуется ваша система))
ты еще ничего не критиковал :)
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775082
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

если Vipros может смоделировать документооборот например то почему у нее 2! внедрения судя по сайту, по сравнению с "Евфрат" ( http://www.evfrat.ru, единственная о которой я слышал (стоит у заказчика))(4500+ внедрений) ?)

Вывода 2:
1) VipRos не способна его смоделировать
2) VipRos делает это гораздо хуже специализированной системы документооборота )
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775083
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

ну для начала вы так и не ответили как можно сравнить программу и парадигму)
Критиковал, в споре ORM vs SQL.
...
Рейтинг: 0 / 0
Iclude в NHibernate
    #37775085
Lelouch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ViPRos,

То есть в топике, посвященном доступу к данным вы подразумевали Роли объекта? которое никак к доступу к данным не относится.
...
Рейтинг: 0 / 0
25 сообщений из 110, страница 2 из 5
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Iclude в NHibernate
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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