powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / IRepository как пользоваться
25 сообщений из 238, страница 9 из 10
IRepository как пользоваться
    #38416722
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУЯ говорю о том, что нужно разделять бизнес-логику и взаимодействие с БД (или любым источником) + объединять все операции доступа к данным в одной области, что значительно упрощает создание и обслуживание данных.А зачем там что-то отделять. EF прекрасно всё отделяет и даёт возможность работать с данными средствами, встроенными в сам язык (C#). Что ещё может быть надо?
МСУP.S. Какой итог? )Очевидно, я молодец!
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416723
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAРепозитоий я могу использовать повторно в рамках одного проекта. В разных проектах.
А метод GetMessageTaskView как мне использовать, кроме как в сервисе? Копипастить содержимое?Сделать его public и получить к нему доступ из других классов?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416726
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Иногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416733
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, ладно, Лёшу одного товарища попинали за IQueryable в репозитории. Оказалось, что у него репозиториев вообще нет и он имел ввиду (о боже!) про нужность репозитория как класс :) Таким образом, все поняли, что у Алексея нет никаких IQueryable реп и хорошо.

Но остаётся у нас на повестке дня вопрос с hVostt

hVosttя понял. речь идёт о необъяснимых вещах.
вы так не переживайте, я видел достаточно серьезные проекты
давайте хоть одну реальную проблему, к которой может привести выдача репой IQueryable<T>. по вашей же ссылке на каждую проблему есть решение.

hVosttМСУhVostt, были озвучены 3 главные причины, почему IQueryable в репозитории это плохо:

1. Нужно держать живым дата контекст на протяжении более длительного времени. Это плохая практика.
2. "Крутить базу может кто как хочет" (с) Это сеет хаос и демократию прикладного кода, в отличие от строго специфицированных репозиториев.
3. И самая главная причина: зависимость от MSSQL + EF. Изменится источник или хранилище данных - приплыли.

Всё это: жесткие архитектурные ограничения. Нравится прибивать на каждый чих себя гвоздями? Я не против. У меня все репозитории (сервисы данных) возвращают коллекции через IEnumerable<T>. А что там спрятано за методом репозитория - никому знать об этом не нужно.
3 главные причины, с которыми я полностью согласен.

Так я не понял, наш очень опытный и замечательный hVostt использует IQueryable репозитории или он просто вышел опять посмердить на форуме?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416740
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА зачем там что-то отделять. EF прекрасно всё отделяет и даёт возможность работать с данными средствами, встроенными в сам язык (C#). Что ещё может быть надо?
Ну если тебе ничего не надо отделять, нах тебе нужен WCF как третий уровень, пиши двузвенку и дергай БД прямо из своих впф клиентов. Ась?

Алексей КМСУP.S. Какой итог? )Очевидно, я молодец!
С этим никто не спорит :)
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416746
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAРепозитоий я могу использовать повторно в рамках одного проекта. В разных проектах.
А метод GetMessageTaskView как мне использовать, кроме как в сервисе? Копипастить содержимое?Сделать его public и получить к нему доступ из других классов?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416749
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КА зачем там что-то отделять. EF прекрасно всё отделяет и даёт возможность работать с данными средствами, встроенными в сам язык (C#). Что ещё может быть надо?
Ну если тебе ничего не надо отделять, нах тебе нужен WCF как третий уровень, пиши двузвенку и дергай БД прямо из своих впф клиентов. Ась?На Делфи ещё предложи, ага...

МСУАлексей Кпропущено...
Очевидно, я молодец!
С этим никто не спорит :)Это главное.
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416752
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.
Расскажи нам про базовые принципы рефакторинга?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416758
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУАлексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.
Расскажи нам про базовые принципы рефакторинга? А про ООП почему не надо?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416761
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КА про ООП почему не надо?
:)
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416770
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAРепозитоий я могу использовать повторно в рамках одного проекта. В разных проектах.
А метод GetMessageTaskView как мне использовать, кроме как в сервисе? Копипастить содержимое?Сделать его public и получить к нему доступ из других классов?Дак он итак паблик
То есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса?
Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте.

А если мне к примеру в голову придёт такая идея: подключить морду WPF напрямую к БД? Ну к примеру к локальной тестовой базе?
Опять тянуть сборку WCF сервиса?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416774
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.Хм. Ну вот они: SOLID . Разберём Ваш код?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416782
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAОпять тянуть сборку WCF сервиса?
Алексей очень много и красиво писал на форуме про слабосвязность кода (IoC и DI), но как мы видим по его wcf сервису всё не так эпично, как давече представлялось
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416785
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANA, ладно, Лёшу одного товарища попинали за IQueryable в репозитории.Дак у него нет репозитория, он ему и не нужен. Я вообще не понимаю о чём он рассуждает. О том что с IQueryable нет проблем, если база одна, раотает с ней только один сервис и повторное использование кода на фиг не нужно.
Ну дак то, что в частном конкретном случае с IQueryable нет проблем, ни о чём не говорит, кроме как о том, что в частном конкретном случае с IQueryable нет проблем.

Мне интересно, что это за продукт и под какой нагрузкой работает сервис?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416787
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Сделать его public и получить к нему доступ из других классов?Дак он итак паблик Таки нет. :-)
skyANAТо есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса?
Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте.
Ну сделать для него обёртку?
Код: c#
1.
2.
3.
public IQueryable<C> P1 { get { ... } }

public C[] P2 { get { return P1.ToArray(); } }


skyANAА если мне к примеру в голову придёт такая идея: подключить морду WPF напрямую к БД? Ну к примеру к локальной тестовой базе?
Опять тянуть сборку WCF сервиса?Задачу надо ставить жосче: "А если WPF-морда захочет читать данные напрямую из файлов, в которых хранит MSSQL свои базы". :-)
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416791
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.Хм. Ну вот они: SOLID . Разберём Ваш код? Я убегаю. Может завтра...

Всем приятных выходных!
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416793
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУskyANAОпять тянуть сборку WCF сервиса?
Алексей очень много и красиво писал на форуме про слабосвязность кода (IoC и DI), но как мы видим по его wcf сервису всё не так эпично, как давече представлялось Я всегда был противником повсеместного IoC и DI. У меня до сих пор смешанные чувства по этому поводу. :-)
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416794
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA, да хрен его знает, что там реально за архитектура. В "IQueryable-слое" по большому счету смысла особого не вижу, т.к. его дата контекст и так таблицы и вьюхи в IQueryable возвращает. Разве что писать линейную генерик-обертку над дата контекстом? Вот это точно бред. Короче, всё туманно...
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38416805
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Дак он итак паблик Таки нет. :-)Точно! Класс паблик, а метод нет. :)
Алексей КskyANAТо есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса?
Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте.
Ну сделать для него обёртку?
Код: c#
1.
2.
3.
public IQueryable<C> P1 { get { ... } }

public C[] P2 { get { return P1.ToArray(); } }

Какую ещё обёртку? Над чем? Куда обёртка собирается, как её использовать?
Алексей КskyANAА если мне к примеру в голову придёт такая идея: подключить морду WPF напрямую к БД? Ну к примеру к локальной тестовой базе?
Опять тянуть сборку WCF сервиса?Задачу надо ставить жосче: "А если WPF-морда захочет читать данные напрямую из файлов, в которых хранит MSSQL свои базы". :-)А ну да. Вы с таким не сталкивались, значит и идея сама по себе бредовая.
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38417788
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Таки нет. :-)Точно! Класс паблик, а метод нет. :)
Алексей Кпропущено...

Ну сделать для него обёртку?
Код: c#
1.
2.
3.
public IQueryable<C> P1 { get { ... } }

public C[] P2 { get { return P1.ToArray(); } }

Какую ещё обёртку? Над чем? Куда обёртка собирается, как её использовать?Обёртку в виде свойства P2, чтобы: " То есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса? Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте. "
skyANAАлексей Кпропущено...
Задачу надо ставить жосче: "А если WPF-морда захочет читать данные напрямую из файлов, в которых хранит MSSQL свои базы". :-)А ну да. Вы с таким не сталкивались, значит и идея сама по себе бредовая. С чем я не сталкивался? С необходимостью иметь в фабрике контекстов свойство ConnectionString, чтобы иметь возможность настраивать подключение, в том числе и к тестовой БД?
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38417792
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей КИногда мне кажется, что из-за всех этих "паттернов" некоторые забывают базовые принципы ООП и рефакторинга.Хм. Ну вот они: SOLID . Разберём Ваш код? Ну попробуйте. Только обязательно нужна количественная оценка объёма кода, который потребуется написать при добавлении тех или иных возможностей, по сравнению с "правильным" вариантом решения. Голые ссылки на теорию не интересны.
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38417796
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДак у него нет репозитория, он ему и не нужен. Я вообще не понимаю о чём он рассуждает. О том что с IQueryable нет проблем, если база одна, раотает с ней только один сервис и повторное использование кода на фиг не нужно.А меж тем, всё это делается ради расширения возможностей повторного использования.
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38417798
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУВ "IQueryable-слое" по большому счету смысла особого не вижуЗря. Сам же говорил, что чем больше слоёв - тем лучше. :-)
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38417857
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Точно! Класс паблик, а метод нет. :)
пропущено...
Какую ещё обёртку? Над чем? Куда обёртка собирается, как её использовать?Обёртку в виде свойства P2, чтобы: " То есть к примеру нужен он мне в проекте Windows сервиса-а, я тупо добавляю референс на сборку WCF сервиса? Не, ну так можно, кто же спорит. Я к примеру видел как цепляли сборки WinForms в Windows сервисе, чтобы по расписанию формировать отчёт в Excel и отправлять по почте. "Можете написать пример кода, чтобы было понятно к какому классу принадлежит свойство, как оборачивается нужный метод и как этой обёрткой пользоваться?
Алексей КskyANAпропущено...
А ну да. Вы с таким не сталкивались, значит и идея сама по себе бредовая. С чем я не сталкивался? С необходимостью иметь в фабрике контекстов свойство ConnectionString, чтобы иметь возможность настраивать подключение, в том числе и к тестовой БД?С тем, что морду надо подключить напрямую к БД, а не через сервер приложений. Я же вроде ясно написал, будьте внимательнее.
...
Рейтинг: 0 / 0
IRepository как пользоваться
    #38417858
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КМСУВ "IQueryable-слое" по большому счету смысла особого не вижуЗря. Сам же говорил, что чем больше слоёв - тем лучше. :-)
А смысл? Этот слой с легкостью покрывает универсальный репозиторий. Нафига мне IQueryable лохмотья? :)
...
Рейтинг: 0 / 0
25 сообщений из 238, страница 9 из 10
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / IRepository как пользоваться
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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